Skip to content
Playground Grid CSS
Tools

Playground Grid CSS

Baru

Atur kolom, gap, dan perataan grid dengan pratinjau langsung dan CSS.

Layout
Columns 3
Rows 3

Identical neighbouring tracks collapse into repeat() automatically.

Spacing & alignment
Preview

Runs entirely in your browser. Nothing is uploaded.

CSS Grid generator dan playground yang interaktif

CSS Grid generator ini mengubah sintaks grid yang abstrak menjadi sesuatu yang bisa Anda lihat dan seret. Atur kolom dan baris Anda, lihat pratinjau langsung menyusun ulang, lalu salin CSS, Tailwind, atau HTML yang bersih setelah tampilannya pas. Tidak ada yang perlu diinstal dan tidak ada akun yang perlu dibuat — seluruh CSS grid playground ini berjalan di browser Anda, sehingga layout yang Anda buat tidak pernah diunggah.

Baik Anda sedang belajar cara kerja grid, membuat prototipe dashboard, atau membangun ulang framework 12-kolom sebagai CSS murni, Anda bisa melakukannya di sini dalam hitungan detik. Berbeda dari Layoutit yang hanya menghasilkan output CSS tanpa pengeditan level item, atau CSS Grid Generator minimal milik Sarah Drasner yang tidak punya Tailwind atau link yang bisa dibagikan, UtiloKit menggabungkan ketiga format output plus dukungan named area dalam satu antarmuka.

Atur track Anda: kolom, baris, dan satuan

Sebuah grid didefinisikan oleh track-nya. Di tab Tracks Anda menambahkan sebanyak mungkin kolom dan baris yang Anda butuhkan dan memilih satuan untuk masing-masing: fr untuk pecahan fleksibel, px atau % untuk ukuran tetap, auto untuk menyesuaikan konten, atau minmax() untuk track yang fleksibel di antara minimum dan maksimum. Track bertetangga yang identik secara otomatis diciutkan dengan repeat(), sehingga tiga kolom yang sama menjadi repeat(3, 1fr) yang rapi alih-alih 1fr 1fr 1fr.

Atur kolom menjadi 12 dan Anda mendapat framework grid bergaya Bootstrap klasik sebagai CSS murni. Atur dua kolom dan dua baris untuk layout 2x2 dengan cepat. Output grid-template-columns dan grid-template-rows diperbarui dengan setiap perubahan sehingga Anda selalu melihat kode persis yang dihasilkan layout Anda.

Buat responsif dengan auto-fit dan minmax()

Mode responsive CSS grid generator menuliskan pola modern bebas media-query untuk Anda: repeat(auto-fit, minmax(200px, 1fr)). Pilih auto-fit atau auto-fill, atur lebar sel minimum, dan pratinjaunya menyusun ulang seiring Anda mengubah ukurannya — menambah kolom di layar lebar dan turun ke satu kolom di mobile. Ini adalah cara tercepat untuk membangun grid kartu yang cair yang bekerja di lebar layar mana pun tanpa menulis satu pun media query.

Perbedaan antara auto-fit dan auto-fill penting ketika grid memiliki lebih sedikit item dibanding yang bisa ditampung container. auto-fit menciutkan track kosong sehingga item yang terisi meregang untuk menutupi ruangnya. auto-fill menjaga track kosong sehingga item mempertahankan ukuran minimumnya. Playground ini membiarkan Anda beralih di antara keduanya dan melihat efeknya secara langsung, sesuatu yang tidak bisa ditunjukkan sumber daya CSS statis.

Tempatkan item dengan menyeret — atau beri nama area Anda

Dalam mode Tracks, pratinjaunya interaktif: seret melintasi sel untuk menjatuhkan item yang menyebar di antaranya, klik sebuah item untuk memilihnya, dan sesuaikan nilai awal serta rentang grid-column dan grid-row-nya di panel item. Ini cara tercepat untuk memahami cara kerja spanning — lebih cepat dari membaca dokumentasi, lebih cepat dari eksperimen di CodePen.

Lebih suka pendekatan yang mudah dibaca? Tab Areas menggunakan grid-template-areas — sketsakan layout Anda sebagai baris bernama seperti 'header header' 'sidebar main' dan generator membangun template-nya plus aturan grid-area untuk setiap region yang Anda beri nama. Sempurna untuk kerangka halaman dengan header, sidebar, main, dan footer. Layoutit punya editor area serupa tetapi tidak menghasilkan output Tailwind untuk layout berbasis area.

Salin CSS, Tailwind, atau HTML — dan bagikan dengan link

Setiap layout diekspor dengan tiga cara. Tab CSS memberi Anda aturan container plus aturan per-item. Tab Tailwind CSS grid generator menuliskan kelas utilitas yang sesuai — grid grid-cols-3 gap-4, col-span-2, dan nilai arbitrary untuk track kustom. Tab HTML memberi markup siap tempel. Link yang bisa dibagikan mengodekan seluruh konfigurasi ke dalam URL sehingga rekan tim membuka grid yang persis sama — tanpa akun, tanpa ekspor, tanpa screenshot yang dibutuhkan.

Gratis, privat, dan instan — tanpa unggah, tanpa akun

Tidak ada yang perlu didaftarkan dan tidak ada yang perlu diunduh. Membangun track, menyeret item, beralih ke auto-fit responsif, dan mengekspor kode semuanya terjadi secara lokal di browser Anda, sehingga pekerjaan Anda tidak pernah meninggalkan perangkat Anda. Berbeda dari tool desain berbasis web seperti Figma yang mengharuskan akun dan menyimpan pekerjaan Anda di server mereka, CSS grid playground ini sepenuhnya privat. Simpan bookmark generator layout grid ini dan gunakan kapan pun Anda perlu membangun, belajar, atau menyalin CSS grid — di perangkat apa pun, termasuk iPhone dan Android.

CSS Grid vs Flexbox: memilih tool yang tepat

CSS Grid secara inheren bersifat dua dimensi — ia menempatkan item melintasi baris dan kolom secara bersamaan dari satu aturan container. Flexbox bersifat satu dimensi: ia menyusun item sepanjang satu sumbu pada satu waktu, baik baris maupun kolom. Panduan klasik — "Grid untuk layout, Flexbox untuk komponen" — adalah titik awal yang berguna, tetapi garis praktisnya adalah ini: gunakan Grid kapan pun kedua dimensi penting sekaligus (dashboard, galeri foto, kerangka halaman), dan gunakan Flexbox ketika Anda hanya peduli pada satu sumbu (navbar, sebaris tombol, daftar tag).

Algoritma auto-placement milik Grid mengisi item ke sel yang tersedia berikutnya secara otomatis, mengalir kiri-ke-kanan dan atas-ke-bawah seperti urutan baca. Tambahkan grid-auto-flow: dense dan browser akan mengisi kembali celah sebelumnya dengan item yang lebih kecil — berguna untuk galeri bergaya masonry di mana Anda tidak ingin ada ruang kosong yang terbuang. Grid juga membedakan antara explicit grid (track yang Anda definisikan dengan grid-template-columns dan grid-template-rows) dan implicit grid (track tambahan yang dibuat browser secara otomatis ketika item melebihi definisi eksplisit). Anda mengontrol ukuran track implisit dengan grid-auto-columns dan grid-auto-rows.

Flexbox unggul ketika jumlah item tidak diketahui atau bervariasi, karena ia secara alami membungkus dan menyusun ulang tanpa perlu jumlah kolom yang dideklarasikan. Awan tag, daftar kartu yang di-flex-wrap, atau toolbar yang item-itemnya muncul dan menghilang saat runtime semuanya cocok secara alami dengan display: flex; flex-wrap: wrap. Kedua sistem ini juga dirancang untuk digabungkan: sebuah container CSS Grid bisa menampung sel-sel yang anaknya adalah container Flexbox, menggabungkan presisi struktural Grid dengan distribusi level-item Flexbox.

Named grid area: layout yang semantik dan mudah dirawat

Properti grid-template-areas memungkinkan Anda mendeskripsikan sebuah layout sebagai peta ASCII di dalam sebuah aturan CSS. Setiap string berkutip adalah satu baris, setiap kata di dalamnya adalah satu sel, dan mengulang kata yang sama di sel-sel yang bersebelahan menggabungkannya menjadi satu area. Kerangka halaman klasik terlihat seperti ini: "header header" "sidebar main" "footer footer". Beri nama setiap anak dengan grid-area: header, grid-area: sidebar, dan seterusnya, dan browser menghubungkannya ke region yang sesuai secara otomatis — tanpa nomor baris, tanpa aritmetika span.

Named area jauh lebih mudah dirawat dibanding penempatan berbasis nomor baris untuk layout yang akan disentuh oleh seluruh tim. Ketika desainer meminta sidebar dipindah ke kanan, Anda cukup mengubah satu string di grid-template-areas dan urutan DOM tetap persis sama — tanpa mengurutkan ulang markup, tanpa menghitung ulang indeks kolom. Ini juga memisahkan urutan visual dari urutan sumber, yang penting untuk aksesibilitas: pembaca layar mengikuti DOM, pengguna yang bisa melihat melihat susunan grid.

Named area adalah tool paling ampuh untuk desain ulang responsif tanpa perubahan DOM. Di dalam media query, Anda mendefinisikan ulang grid-template-areas ke string layout yang sama sekali berbeda — mengubah kerangka desktop tiga kolom menjadi satu kolom bertumpuk untuk mobile — dan setiap anak yang diberi nama memposisikan ulang dirinya sendiri tanpa JavaScript sama sekali. Digabungkan dengan perubahan grid-template-columns pada breakpoint yang sama, satu blok CSS bisa mengubah seluruh struktur halaman dari desktop ke tablet ke ponsel.

Satuan fr, keyword ukuran intrinsik, dan pola RAM

Satuan fr (fraction) mendistribusikan ruang yang tersisa setelah track berukuran tetap dan konten diselesaikan. 1fr 1fr 1fr membagi lebar yang tersisa menjadi tiga bagian yang sama. Yang krusial, fr memperhitungkan gap secara otomatis — gap dikurangkan sebelum pecahannya dihitung — sedangkan lebar persentase adalah dari total lebar induk dan mengabaikan gap, menyebabkan item meluber jika Anda tidak berhati-hati. Shorthand repeat(3, 1fr) persis setara tetapi skalanya tanpa pengulangan.

Selain fr, CSS Grid mendukung tiga keyword ukuran intrinsik. min-content membuat track sesempit kata terpanjang yang tidak bisa dipecah — berguna untuk kolom ikon atau track label yang seharusnya mengikuti kontennya. max-content membiarkan track tumbuh ke lebar alaminya yang paling lebar, mengabaikan container-nya. fit-content(value) adalah klamp pintar: ia berperilaku seperti max-content hingga maksimum yang diberikan, lalu berhenti tumbuh — berguna untuk sidebar yang seharusnya meregang mengikuti kontennya tetapi tidak boleh melebihi, katakanlah, 300px.

Teknik grid responsif paling ampuh adalah pola RAMRepeat, Auto, Minmax: repeat(auto-fill, minmax(200px, 1fr)). Tidak perlu media query. Browser memasukkan sebanyak mungkin kolom minimum 200px yang bisa ditampung container; pada container 800px Anda mendapat empat kolom, pada container 480px Anda mendapat dua, pada container 300px Anda mendapat satu. Ganti auto-fill menjadi auto-fit dan track kosong menciut sehingga item yang terisi meregang mengisi barisnya. Satu baris CSS ini menggantikan blok media query tiga-breakpoint khas untuk grid kartu, galeri gambar, dan daftar produk.

Alignment di CSS Grid: sumbu, properti, dan shorthand place-*

CSS Grid memiliki dua sumbu alignment. Sumbu inline berjalan pada arah teks mengalir (kiri ke kanan dalam bahasa Inggris) dan sumbu block berjalan tegak lurus terhadapnya (atas ke bawah). Properti berawalan justify- bekerja pada sumbu inline; properti berawalan align- bekerja pada sumbu block. Perbedaan sumbu ini adalah kunci untuk memahami enam properti alignment tanpa perlu menghafal masing-masing satu per satu.

justify-items dan align-items mengontrol bagaimana setiap item diposisikan di dalam sel-nya sendiri. Default-nya adalah stretch, yang membuat item mengisi sel — itulah mengapa item grid meregang menutupi sel-nya secara default tanpa lebar atau tinggi eksplisit. Menetapkan keduanya ke center memusatkan setiap item di dalam sel-nya. justify-content dan align-content mendistribusikan ruang ekstra di seluruh grid, mirip dengan justify-content milik Flexbox untuk sumbu utama — berguna ketika total ukuran track lebih kecil dari container-nya. justify-self dan align-self adalah override per-item yang membuat sebuah item keluar dari alignment default container tanpa menyentuh item tetangga.

Shorthand place-items, place-content, dan place-self menggabungkan nilai block dan inline dalam satu deklarasi: place-items: center setara dengan align-items: center; justify-items: center. Ini melahirkan CSS yang terkenal ringkas untuk masalah yang dulu membutuhkan tabel dan JavaScript: display: grid; place-items: center — dua baris yang memusatkan satu anak baik secara horizontal maupun vertikal di dalam container-nya, menyelesaikan salah satu masalah layout paling sulit dalam sejarah CSS dengan aturan sesingkat mungkin.

Frequently asked questions

Bagaimana cara kerja CSS grid?

CSS grid mengubah sebuah elemen menjadi layout dua dimensi. Anda mengatur display: grid pada container, mendefinisikan track kolom dan baris dengan grid-template-columns dan grid-template-rows, dan browser menempatkan setiap anak ke dalam sel yang dihasilkan. Misalnya, grid-template-columns: repeat(3, 1fr) membuat tiga kolom yang sama besar, dan anak-anaknya mengalir ke dalamnya dari kiri ke kanan, atas ke bawah. Berbeda dari layout float atau flexbox yang lebih lama, grid menata baris dan kolom secara bersamaan, sehingga Anda mengontrol kedua sumbu dari satu properti container.

Bagaimana cara menggunakan properti grid di CSS?

Tambahkan display: grid ke sebuah container, lalu deskripsikan track-nya. Minimumnya adalah satu baris: display: grid; grid-template-columns: 1fr 1fr; — yang memberi dua kolom yang sama besar. Dari situ Anda menambahkan grid-template-rows untuk baris eksplisit, gap untuk jarak, dan aturan per-item seperti grid-column: span 2 untuk membuat anak meregang melintasi sel. Shorthand grid bisa menggabungkan baris, kolom, dan area dalam satu deklarasi, tetapi kebanyakan developer mengatur grid-template-columns, gap, dan alignment secara terpisah karena lebih mudah dibaca. Generator ini menuliskan aturan-aturan tersebut untuk Anda.

Apa itu grid-template-columns dan grid-template-rows?

Keduanya mendefinisikan ukuran setiap track kolom dan baris. grid-template-columns: 200px 1fr 1fr membuat kolom pertama tetap 200px dan dua kolom fleksibel yang berbagi sisanya. grid-template-rows: auto 1fr mengatur baris pertama menyesuaikan konten dan baris kedua yang mengisi tinggi yang tersisa. Setiap nilai dalam daftar adalah satu track, dan jumlah nilainya menentukan berapa banyak kolom atau baris eksplisit yang dimiliki grid. Generator ini membangun kedua daftar tersebut seiring Anda menambah dan mengedit track, memperbarui pratinjau langsung secara real time.

Apa arti fr, repeat(), dan minmax()?

fr adalah satuan 'fraction' — ia membagi ruang yang tersisa, sehingga repeat(3, 1fr) membuat tiga kolom dengan lebar yang sama. repeat(n, value) adalah shorthand yang mengulang pola track n kali, sehingga repeat(4, 1fr) sama dengan 1fr 1fr 1fr 1fr. minmax(min, max) mengatur track yang tidak pernah menyusut di bawah min atau tumbuh melebihi max; minmax(150px, 1fr) menjaga kolom minimal 150px lebar sambil membiarkannya meregang. Gabungkan keduanya — repeat(auto-fit, minmax(150px, 1fr)) — untuk grid yang menambah dan menghapus kolom dengan sendirinya seiring lebar container-nya berubah.

Bagaimana cara membuat CSS grid yang responsif tanpa media query?

Gunakan repeat() dengan auto-fit (atau auto-fill) dan minmax() sehingga grid-nya menyusun ulang secara otomatis: grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)). Setiap kolom tetap minimal 200px lebar dan browser memasukkan sebanyak yang bisa ditampung container, turun ke lebih sedikit kolom di layar sempit dan menambah lebih banyak di layar lebar. Ganti generator ini ke mode Responsive, atur lebar sel minimum, dan salin hasilnya. Ini cara paling sederhana untuk membangun grid kartu yang cair dan menyesuaikan dari mobile ke desktop tanpa menulis satu pun media query.

Apa itu grid-template-areas?

grid-template-areas memungkinkan Anda memberi nama region dan menggambar layout sebagai ASCII art. Anda memberi setiap anak sebuah nama dengan grid-area, lalu memetakan grid seperti grid-template-areas: 'header header' 'sidebar main' 'footer footer'. Mengulang sebuah nama di beberapa sel membuat area tersebut menyebar di sana, dan sebuah titik (.) mengosongkan sebuah sel. Ini cara paling mudah dibaca untuk membangun kerangka halaman klasik — header, sidebar, main, footer — karena template-nya terlihat seperti layout-nya. Tab Areas di sini menuliskan template dan aturan grid-area yang sesuai untuk setiap region yang Anda beri nama.

Bagaimana cara membuat grid 2x2 atau 3-kolom?

Untuk grid 2x2, atur dua kolom dan dua baris: grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; dan tempatkan empat item. Untuk grid 3-kolom, gunakan grid-template-columns: repeat(3, 1fr) dan biarkan item mengalir ke sebanyak baris yang dibutuhkan. Di tool ini Anda cukup mengatur jumlah kolom dan baris dan pratinjaunya langsung diperbarui — tidak perlu mengetik apa pun. Generator ini menangani shorthand repeat() secara otomatis ketika track yang bertetangga berukuran sama.

Apa itu grid 12-kolom?

Grid 12-kolom adalah konvensi desain yang dipopulerkan Bootstrap dan Foundation yang membagi halaman menjadi dua belas kolom yang sama besar. Dua belas bekerja karena bisa dibagi rata menjadi setengah, sepertiga, seperempat, dan seperenam. Sebuah komponen bisa menyebar sejumlah kolom bilangan bulat: 6 untuk setengah, 4 untuk sepertiga, 3 untuk seperempat. Dengan CSS grid Anda membangun ulang ini dalam satu baris: grid-template-columns: repeat(12, 1fr), dan gunakan grid-column: span 4 pada anak untuk mengatur ukurannya. Atur kolom menjadi 12 di sini untuk mendapatkan grid framework klasik sebagai CSS murni tanpa dependensi Bootstrap.

Apa bedanya CSS grid dan flexbox?

Grid bersifat dua dimensi — ia mengontrol baris dan kolom secara bersamaan — sementara flexbox bersifat satu dimensi, menata item sepanjang satu baris atau kolom. Gunakan grid saat Anda membangun layout halaman atau kartu keseluruhan dengan baris dan kolom yang sejajar (dashboard, galeri, kerangka halaman). Gunakan flexbox untuk satu strip konten seperti navbar, toolbar, atau sebaris tombol. Keduanya bekerja baik bersama-sama: grid untuk struktur halaman luar, flexbox di dalam sel-sel individual.

Bagaimana cara membuat grid di Tailwind CSS?

Tailwind menyediakan utilitas grid: tambahkan grid plus grid-cols-3 untuk tiga kolom yang sama besar, gap-4 untuk jarak, dan col-span-2 / row-span-2 pada anak untuk membuatnya menyebar. grid-cols-3 dikompilasi menjadi repeat(3, minmax(0, 1fr)). Untuk sesuatu yang kustom — seperti track auto-fit responsif — gunakan nilai arbitrary: grid-cols-[repeat(auto-fit,minmax(150px,1fr))]. Ganti output ke tab Tailwind dan generator ini menuliskan kelas utilitas persis untuk container dan setiap item Anda, siap ditempel ke JSX atau markup HTML Anda.

Bagaimana cara membuat sebuah item menyebar melintasi beberapa kolom atau baris?

Gunakan grid-column dan grid-row pada anaknya. grid-column: span 2 membuat item lebar dua kolom; grid-column: 1 / 3 menempatkannya dari garis 1 ke garis 3 (juga dua kolom). Hal yang sama berlaku secara vertikal dengan grid-row: span 2. Di Tailwind itu adalah col-span-2 dan row-span-2. Di playground ini Anda bisa menyeret melintasi sel di pratinjau untuk membuat item yang menyebar, atau mengetik nilai awal dan rentang yang tepat di panel item. Output CSS dan Tailwind keduanya diperbarui seiring Anda bekerja.

Bagaimana cara mengatur gap antar item grid?

Properti gap menambah jarak antar track: gap: 16px memberi 16px di antara setiap baris dan kolom. Anda bisa mengatur sumbunya secara terpisah dengan gap: 24px 16px (row-gap lalu column-gap), atau menggunakan row-gap dan column-gap secara langsung. Gap hanya memengaruhi jarak antar sel — ia tidak pernah menambah padding di sekeliling tepi luar grid, yang merupakan sumber kebingungan yang umum. Gunakan kontrol row-gap dan column-gap di sini — hubungkan untuk gap yang seragam atau lepaskan untuk menyetel masing-masing sumbu secara independen.

Apakah generator CSS grid ini gratis dan lebih baik dari Layoutit atau CSS Grid Generator by Sarah Drasner?

Sepenuhnya gratis tanpa pendaftaran dan tidak ada yang perlu diinstal. Layoutit Grid adalah titik awal yang solid tetapi tidak punya output Tailwind dan mengharuskan mengeklik tab terpisah untuk menyalin aturan grid-area. CSS Grid Generator milik Sarah Drasner adalah tool edukasi minimal tanpa kontrol level item atau link yang bisa dibagikan. UtiloKit menambahkan output CSS Tailwind, template area bernama, mode auto-fit responsif, link yang bisa dibagikan, dan editor item drag-to-span yang interaktif — semuanya di satu tempat. Semuanya dihasilkan secara lokal di browser Anda sehingga layout Anda tidak pernah diunggah.

Bisakah saya menggunakan generator CSS grid ini di iPhone atau Android?

Ya. Tool ini sepenuhnya responsif dan berfungsi di browser mobile modern mana pun termasuk Safari di iPhone dan Chrome di Android. Bangun layout grid saat bepergian, salin output CSS atau Tailwind-nya, dan tempel ke proyek Anda. Karena semuanya berjalan di sisi klien, tidak ada unggahan, tidak ada akun, dan tidak ada waktu tunggu. Ini bahkan berfungsi secara offline setelah halamannya selesai dimuat. Editor item drag-to-span ramah sentuhan sehingga Anda bisa membangun layout grid yang kompleks tanpa mouse.