Apa itu Container Queries?
Biasanya kita pakai media query untuk mengubah tampilan berdasarkan lebar layar (viewport). Nah, dengan container queries, kamu bisa mengubah tampilan berdasarkan ukuran elemen pembungkus (container) — bukan layar. Ini bikin komponen lebih fleksibel dan bisa digunakan ulang di banyak tempat.
Contoh Dasar
Gunakan @container
di elemen pembungkus, lalu di elemen di dalamnya, pakai varian seperti @md:
untuk menyesuaikan gaya berdasarkan ukuran kontainer.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="flex flex-col @md:flex-row gap-4">
<div class="bg-blue-300 p-4">Item 1</div>
<div class="bg-blue-500 p-4">Item 2</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Max-width Container Queries
Gunakan @max-md:
untuk mengubah gaya jika lebar container lebih kecil dari ukuran tertentu.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="flex flex-row @max-md:flex-col gap-4">
<div class="bg-pink-300 p-4">Item A</div>
<div class="bg-pink-500 p-4">Item B</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Target Range Ukuran Kontainer
Gabungkan dua varian untuk menargetkan ukuran spesifik, misalnya hanya aktif saat ukuran container berada di antara @sm
dan @md
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="flex flex-row @sm:@max-md:flex-col gap-4">
<div class="bg-green-300 p-4">Satu</div>
<div class="bg-green-500 p-4">Dua</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Container yang Diberi Nama
Kalau kamu punya banyak kontainer di dalam satu halaman, kamu bisa beri nama. Jadi styling lebih spesifik ke container tertentu.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container/main border p-4">
<div class="flex flex-row @sm/main:flex-col gap-4">
<div class="bg-yellow-300 p-4">Alpha</div>
<div class="bg-yellow-500 p-4">Beta</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Custom Ukuran Container
Kamu bisa buat ukuran baru, misalnya @8xl
, di app.css
seperti ini:
@import "tailwindcss";
@theme {
--container-8xl: 96rem;
}
Kemudian pakai di HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="flex flex-col @8xl:flex-row gap-4">
<div class="bg-red-300 p-4">Left</div>
<div class="bg-red-500 p-4">Right</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Breakpoint Custom dengan Nilai Arbitrer
Bisa juga pakai @min-[475px]
untuk container query tanpa harus mendefinisikan ukuran di theme.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="flex flex-col @min-[475px]:flex-row gap-4">
<div class="bg-purple-300 p-4">Top</div>
<div class="bg-purple-500 p-4">Bottom</div>
</div>
</div>
</body>
</html>
berikut hasilnya:
Menggunakan Satuan Container (cqw, cqh)
Misalnya w-[50cqw]
artinya lebarnya 50% dari lebar container.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
<div class="@container border p-4">
<div class="bg-gray-200 w-[50cqw] p-4">Lebar 50% dari kontainer</div>
</div>
</body>
</html>
berikut hasilnya:
Daftar Ukuran Default Container Tailwind
Tailwind menyediakan berbagai ukuran default container query, misalnya:
Variant |
Ukuran Minimal |
CSS |
@3xs |
16rem (256px) |
@container (width >= 16rem) |
@sm |
24rem (384px) |
@container (width >= 24rem) |
@5xl |
64rem (1024px) |
@container (width >= 64rem) |
@7xl |
80rem (1280px) |
@container (width >= 80rem) |
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Tailwind CSS #01 Instalasi Tailwind CSS
2. Belajar Tailwind CSS #02 Editor Setup di Tailwind CSS
3. Belajar Tailwind CSS #03 Compatibility di Tailwind CSS
4. Belajar Tailwind CSS #04 Upgrade dari Tailwind CSS v3 ke v4
5. Belajar Tailwind CSS #05 Perubahan di Tailwind CSS v4 dengan v3
6. Belajar Tailwind CSS #06 Styling dengan Utility Classes part 1
7. Belajar Tailwind CSS #07 Styling dengan Utility Classes part 2
8. Belajar Tailwind CSS #08 Hover, fokus dan status lainnya part 1
9. Belajar Tailwind CSS #09 Hover, fokus, dan status lainnya part 2
10. Belajar Tailwind CSS #10 Hover, fokus, dan status lainnya part 3
11. Belajar Tailwind CSS #11 Hover, fokus, dan status lainnya part 4
12. Belajar Tailwind CSS #12 Hover, fokus, dan status lainnya part 5
13. Belajar Tailwind CSS #13 Responsive design part 1
14. Belajar Tailwind CSS #14 Responsive design part 2
15. Belajar tailwind CSS #15 Responsive design part 3
16. Belajar Tailwind CSS #16 Dark Mode di Tailwind
17. Belajar Tailwind CSS #17 Theme Variables part 1
18. Belajar Tailwind CSS #18 Theme Variables part 2
19. Belajar Tailwind CSS #19 Theme Variables part 3
20. Belajar Tailwind CSS #20 Tailwind CSS - Colors part 1
21. Belajar Tailwind CSS #21 Tailwind - Colors part 2
22. Belajar Tailwind CSS #22 Adding custom styles part 1
23. Belajar Tailwind CSS #23 Adding custom styles part 2
24. Belajar Tailwind CSS #24 Adding custom styles part 3
25. Belajar Tailwind CSS #25 Detecting classes in soure files
26. Belajar Tailwind CSS #26 Functions and directives
27. Belajar Tailwind CSS #27 Preflight Tailwind CSS
28. Belajar Tailwind CSS #28 Aspect-Ratio Tailwind CSS
29. Belajar Tailwind CSS #29 Tailwind CSS columns
30. Belajar Tailwind CSS #30 Tailwind CSS Break-After
31. Belajar Tailwind CSS #31 Tailwind CSS Break-Before
32. Belajar Tailwind CSS #32 Break-Inside Tailwind CSS
33. Belajar Tailwind CSS #33 Box Decoration Break Tailwind CSS
34. Belajar Tailwind CSS #34 Box Sizing Tailwind CSS
35. Belajar Tailwind CSS #35 Tailwind CSS Display
36. Belajar Tailwind CSS #36 Tailwind CSS Float
37. Belajar tailwind CSS #37 Tailwind CSS Clear
38. Belajar Tailwind CSS #38 Tailwind CSS Isolation
39. Belajar Tailwind CSS #39 Tailwind CSS Object-fit
40. Belajar Tailwind CSS #40 Tailwind CSS Object-position
41. Belajar Tailwind CSS #41 Overflow Tailwind CSS
42. Belajar Tailwind CSS #42 Tailwind CSS overscroll-behavior
43. Belajar Tailwind CSS #43 Tailwind CSS Position
44. Belajar Tailwind CSS #44 Tailwind CSS top,right,bottom,left
45. Belajar Tailwind CSS #45 Visibility di Tailwind CSS
46. Belajar Tailwind CSS #46 Z-index di Tailwind CSS
47. Belajar Tailwind CSS #47 Tailwind CSS flex-basis
48. Belajar Tailwind CSS #48 Flex-direction Tailwind CSS
49. Belajar Tailwind CSS #49 Flex-wrap Tailwind CSS
50. Belajar Tailwind CSS #50 Flex Tailwind CSS
51. Belajar Tailwind CSS #51 Flex-grow Tailwind CSS
52. Belajar Tailwind CSS #52 Flex-shrink Tailwind CSS
53. Belajar Tailwind CSS #53 Tailwind CSS order
54. Belajar Tailwind CSS #54 Grid-template-columns Tailwind CSS
55. Belajar Tailwind CSS #55 Grid-column Tailwind CSS
56. Belajar Tailwind CSS #56 Grid-template-rows Tailwind CSS
57. Belajar Tailwind CSS #57 Grid-row Tailwind CSS
58. Belajar Tailwind CSS #58 Grid-auto-flow Tailwind CSS
59. Belajar Tailwind CSS #59 Grid-auto-columns Tailwind CSS
60. Belajar Tailwind CSS #60 Grid-auto-rows Tailwind CSS
61. Belajar Tailwind CSS #61 Gap di Tailwind CSS
62. Belajar Tailwind CSS #62 Justify-content di Tailwind CSS
63. Belajar Tailwind CSS #63 Justify-items di Tailwind CSS
64. Belajar Tailwind CSS #64 Justify-self di Tailwind CSS
65. Belajar Tailwind CSS #65 Align-content di Tailwind CSS
66. Belajar Tailwind CSS #66 Align-items di Tailwind CSS
67. Belajar Tailwind CSS #67 Align-self di Tailwind CSS
68. Belajar Tailwind CSS #68 Place-content di Tailwind CSS