Flexbox Utilities — Tailwind CSS

Flexbox di Tailwind sangat intuitif: Kiri Kanan Container: flex, inline-flex Direction: flex-row, flex-col, flex-row-reverse, flex-col-reverse Wrap…

Flexbox di Tailwind itu Flexbox yang sama dengan yang kamu pelajari di CSS, cuma ditulis sebagai class di HTML. Tiap class isinya satu baris CSS: flex artinya display: flex, justify-between artinya justify-content: space-between. Bayangin bumbu sachet: daripada menakar garam, gula, dan merica satu per satu, kamu tinggal sobek satu bungkus yang isinya sudah pas. Class Tailwind itu sachet-nya, dan isinya CSS yang sudah kamu kenal.

🧪 Tebakan cepat: <div class="justify-between"> tanpa class flex. Logo dan Menu di dalamnya mencar ke kiri dan kanan gak? Tebak dulu, jawabannya ada di bagian "Tanpa flex, yang lain diam".

Navbar: Logo di kiri, Menu di kanan

Ini navbar yang sama dengan yang ada di Lab dan di latihan:

<div id="nav" class="flex items-center justify-between h-24 p-4">
  <span>Logo</span>
  <span>Menu</span>
</div>
Class CSS yang dihasilkan Artinya
flex display: flex; Flexbox nyala, Logo dan Menu jadi flex item
items-center align-items: center; rata tengah dari atas ke bawah
justify-between justify-content: space-between; yang pertama nempel kiri, yang terakhir nempel kanan
h-24 height: 6rem; tinggi 96px
p-4 padding: 1rem; jarak dalam 16px di tiap sisi

Hasilnya, Logo nempel di kiri, Menu nempel di kanan, dan keduanya ada di tengah tinggi navbar. Coba di Lab: pilih justify-start, dan Menu langsung pindah ke sebelah Logo.

Tanpa flex, yang lain diam

justify-* dan items-* itu properti milik flex container. Kalau #nav gak punya flex, dia <div> biasa (display: block), dan browser mengabaikan justify-content dan align-items di situ. Jadi <div class="justify-between"> tanpa flex gak bikin apa-apa: Logo dan Menu tetap nempel berdua di kiri, kayak teks biasa. Itu jawaban tebakannya: gak mencar.

Pasangannya selalu begini: flex dulu, baru justify-*, items-*, dan gap-*.

Arah: flex-row dan flex-col

flex-row (flex-direction: row) adalah bawaannya: item berjajar dari kiri ke kanan, jadi gak perlu ditulis. flex-col (flex-direction: column) menumpuk item dari atas ke bawah.

<div id="nav" class="flex flex-col justify-between h-24 p-4">
  <span>Logo</span>
  <span>Menu</span>
</div>

Di flex-col, sumbu utamanya jadi tegak. justify-between sekarang menaruh Logo di atas dan Menu di bawah, dan items-* yang mengatur kiri-kanan. Patokannya: justify-* selalu ikut arah item berjajar (sumbu utama), items-* selalu tegak lurus dengannya (sumbu silang).

Sumbu utama (justify-) CSS Sumbu silang (items-) CSS
justify-start flex-start items-stretch (bawaan) stretch
justify-center center items-start flex-start
justify-end flex-end items-center center
justify-between space-between items-end flex-end
justify-around, justify-evenly space-around, space-evenly items-baseline baseline

Jarak antar item: gap

gap-4 menghasilkan gap: 1rem, jadi ada jarak 16px di antara tiap item, tanpa margin di ujung-ujungnya. gap-2 = 8px, gap-8 = 32px. Dengan justify-between, gap jarang kelihatan, karena sisa ruangnya sudah dibagi ke tengah. Gap baru terasa di justify-start atau justify-center.

📌 Atur item satu per satu

Class tadi dipasang di induk. Ada juga class untuk satu item saja:

⚠️ Jebakan yang sering ketemu

TL;DR: Tiap class Flexbox Tailwind adalah satu baris CSS yang sudah kamu kenal: flex = display: flex, items-center = align-items: center, justify-between = justify-content: space-between, flex-col = flex-direction: column, gap-4 = jarak 16px. Pasang semuanya di induk, dan selalu mulai dengan flex, karena tanpa itu justify-* dan items-* diabaikan. justify-* ikut arah item berjajar, items-* tegak lurus dengannya. Navbar klasik: flex items-center justify-between p-4.

Yang akan kamu pelajari