Flexbox & CSS Grid: Merancang Tata Letak yang Adaptif
Sub‑CPMK: Menggunakan teknik Flexbox dan CSS Grid untuk menciptakan tata letak yang adaptif di berbagai ukuran layar — dari rancangan di Figma hingga kode yang berjalan di berbagai perangkat.
1. Perbedaan Flexbox dan CSS Grid
Flexbox dan CSS Grid sama-sama modul CSS modern untuk mengatur tata letak (layout), tetapi keduanya lahir untuk menyelesaikan masalah yang berbeda. Secara ringkas, Flexbox dirancang untuk pengaturan elemen dalam satu dimensi — baik itu satu baris (row) atau satu kolom (column) — sedangkan CSS Grid dirancang untuk pengaturan elemen dalam dua dimensi sekaligus, yaitu baris dan kolom secara bersamaan.
Flexbox — Satu Dimensi
CSS Grid — Dua Dimensi
| Aspek | Flexbox | CSS Grid |
|---|---|---|
| Dimensi | Satu dimensi (baris atau kolom) | Dua dimensi (baris dan kolom sekaligus) |
| Cara berpikir | Dari sisi konten — elemen mengalir dan menyesuaikan ruang yang tersedia | Dari sisi layout — kita menentukan kerangka grid dulu, baru menempatkan konten |
| Properti kunci | display:flex, flex-direction, justify-content, align-items, flex-wrap | display:grid, grid-template-columns, grid-template-rows, gap, grid-column |
| Cocok untuk | Navbar, tombol aksi, daftar tag, alignment mikro dalam satu komponen | Galeri produk, dashboard, struktur halaman besar (header–sidebar–konten–footer) |
| Kelemahan | Merepotkan bila butuh kontrol presisi dua dimensi sekaligus | Terasa berlebihan untuk komponen kecil yang hanya butuh satu baris elemen |
Praktik terbaik yang umum dipakai industri: gunakan CSS Grid untuk kerangka besar halaman, lalu gunakan Flexbox di dalam setiap blok/komponen kecil di dalamnya. Keduanya tidak saling menggantikan, melainkan saling melengkapi.
2. Mengimplementasikan Flexbox untuk Navigasi Responsif
Navigasi (navbar) adalah kasus paling klasik untuk Flexbox: logo di kiri, menu di tengah/kanan, dan tombol aksi didorong ke ujung — semua dalam satu baris yang otomatis menyesuaikan lebar layar.
UMKM "Rumah Sulam Bundo" — Bukittinggi. Bundo memiliki usaha sulaman dan songket khas Minang yang baru membuka toko daring. Ia ingin navigasi situsnya menampilkan logo usaha, menu (Beranda, Produk, Tentang Kami, Kontak), dan tombol "Pesan Sekarang" yang selalu terlihat rapi baik di layar laptop admin toko maupun di HP pelanggan saat berbelanja dari pasar atau rumah.
Demo langsung (coba lebarkan/persempit jendela browser untuk melihat perilaku flex-wrap):
Perhatikan: tombol "Pesan Sekarang" otomatis terdorong ke kanan hanya dengan margin-left: auto — tanpa perlu menghitung jumlah kolom, seperti yang dibutuhkan jika memakai Grid.
Contoh tambahan: pusat notifikasi ikon
Flexbox juga ideal untuk baris ikon aksi (keranjang, notifikasi, profil) yang perlu sejajar rapi:
3. Mengimplementasikan CSS Grid untuk Layout Produk
Ketika menampilkan katalog produk — baris dan kolom perlu diatur sekaligus agar rapi dan sejajar — inilah momen CSS Grid unggul dibanding Flexbox.
Katalog "Pasar Digital Jam Gadang" — Kuliner Khas Bukittinggi. Sebuah etalase daring menampilkan produk oleh-oleh khas: Karak Kaliang, Sanjai Balado, Bareh Randang, dan Kipang Kacang. Jumlah produk terus bertambah, dan tampilan harus tetap rapi baik di layar 4 kolom (desktop), 2 kolom (tablet), maupun 1 kolom (HP) — tanpa mengubah kode setiap kali produk baru ditambahkan.
Demo langsung (grid ini otomatis menyesuaikan jumlah kolom sesuai lebar layar):
Contoh tambahan: layout halaman dashboard admin toko
Grid area cocok untuk menyusun kerangka besar seperti dashboard admin UMKM (sidebar, header, konten, footer) dalam satu deklarasi:
Indikator Tambahan: Dari Rancangan Figma ke Kode CSS
Sebelum menulis kode, tata letak biasanya dirancang lebih dulu di Figma menggunakan fitur Auto Layout. Kabar baiknya, konsep Auto Layout di Figma sangat mirip dengan Flexbox — sehingga menerjemahkan desain ke kode menjadi jauh lebih mudah jika kita memahami pemetaannya.
| Fitur di Figma (Auto Layout) | Properti CSS setara |
|---|---|
| Direction: Horizontal / Vertical | flex-direction: row / column |
| Spacing between items | gap |
| Alignment (kiri/tengah/kanan) | justify-content |
| Alignment (atas/tengah/bawah) | align-items |
| Resizing: Fill container | flex: 1 atau width: 100% |
| Frame dengan kolom & baris (grid manual) | display: grid + grid-template-columns/rows |
| Constraints (Left & Right / Scale) | minmax(), unit %/fr, auto-fit |
Latihan Mandiri
Kerjakan bertahap sesuai indikator:
- Rancang wireframe navbar dan grid katalog produk UMKM pilihan Anda di Figma menggunakan Auto Layout.
- Implementasikan navbar tersebut menggunakan Flexbox, pastikan berubah menjadi tumpukan vertikal di layar HP.
- Implementasikan grid katalog produk menggunakan CSS Grid dengan minimal 6 produk dan
auto-fit+minmax(). - Uji tampilan di 3 ukuran layar berbeda (mobile, tablet, desktop) menggunakan DevTools browser.
Referensi & Bacaan Lanjutan
Membahas bagaimana kombinasi CSS Grid Layout dengan media queries mempermudah pengembangan tampilan yang menyesuaikan otomatis ke berbagai ukuran perangkat, dari desktop hingga smartphone.
Pengujian heuristik oleh tiga validator terhadap landing page responsif UMKM menghasilkan skor kelayakan 95,76%, menunjukkan peningkatan signifikan pada kenyamanan navigasi & konsistensi tampilan di berbagai perangkat.
Mengulas penerapan prinsip UI/UX pada perancangan layout web sejak tahap desain di Figma, sebelum diimplementasikan menjadi kode.
Studi kasus perancangan antarmuka situs UMKM menggunakan Figma sebagai alat desain dan prototyping sebelum tahap pengembangan front-end.
Menguji hasil rancangan UI/UX pasar grosir tradisional dengan Figma kepada 15 calon pengguna dan memperoleh skor System Usability Scale kategori "Excellent", menunjukkan pentingnya tahap desain sebelum implementasi kode layout.
Membahas konsep main axis & cross axis pada Flexbox serta bagaimana kombinasinya dengan CSS Grid membentuk fondasi layout web modern.
Membandingkan langsung pembuatan menu navigasi dengan Flexbox dan Grid, menunjukkan Flexbox lebih ringkas untuk mendorong elemen tunggal ke satu sisi menggunakan margin otomatis.
Mengulas fitur, kasus penggunaan, dan kombinasi Flexbox dengan CSS Grid untuk membangun desain web yang dinamis dan responsif secara menyeluruh.



Post a Comment