Design System: Pengertian sampai Praktik Frontend

Design System: Pengertian sampai Praktik Frontend

Design system adalah kumpulan prinsip, aturan, design token, komponen, pola, dan dokumentasi reusable yang menjadi sumber acuan bersama agar UI produk digital tetap konsisten. Di frontend, ia menentukan apa yang Anda pakai, bagaimana Anda memakainya, kapan Anda memakainya, dan mengapa Anda memilih keputusan desain itu.

Banyak website punya tombol “primary” dengan biru, padding, radius, dan ukuran font yang sedikit beda di tiap halaman. Developer terus mengambil keputusan desain dari nol. Jadi UI terlihat mirip, tetapi tidak seragam. Di situ design system bekerja sebagai kontrak bersama antara desain dan kode.

Fokusnya praktikal. Berikut yang akan Anda lihat: struktur isinya, alur token ke komponen, contoh CSS variables, serta langkah membuat mini system untuk website company profile atau landing page UMKM.

Highlight

Design System: Pengertian sampai Praktik Frontend

  • Design system lebih dari UI kit; ia mengikat prinsip, token, komponen, pola, dan dokumentasi.
  • Design token menjembatani nilai visual (warna, spacing) ke CSS variables yang frontend memakai ulang.
  • Setiap komponen butuh variant, size, dan state agar perilaku UI ikut terdokumentasi.
  • CSS library seperti Bootstrap atau Tailwind bisa jadi fondasi teknis, tetapi belum otomatis jadi design system.
  • Audit UI yang sudah ada dulu, konsolidasikan nilai mirip, lalu bangun token dan komponen inti.

Apa Itu Design System dalam Frontend

diagram lapisan design system dari brand ke tokens components patterns dan pages untuk frontend
diagram lapisan design system dari brand ke tokens components patterns dan pages untuk frontend

Dalam kerja frontend, design system menjadi kontrak yang Anda jalankan lewat kode. Warna primary tidak lagi “biru yang kira-kira cocok”. Spacing tidak lagi 18px di satu file dan 22px di file lain. Button primary punya satu sumber kebenaran: token, class, atau komponen yang sama.

Padanan Bahasa Indonesia yang paling dekat adalah sistem desain. Jangan menukarnya dengan “desain sistem” atau system design. Sedangkan istilah terakhir lebih sering merujuk ke arsitektur software, throughput, dan batas skalabilitas layanan.

Mengapa orang menyebutnya “system”? Lantaran warna, tipografi, spacing, button, form, card, dan layout saling tergantung. Ubah warna brand tanpa menyentuh token semantik, dan komponen ikut drift. Ubah radius tanpa aturan elevation, dan kartu serta modal terasa dari “produk berbeda”.

Brand
↓
Design Principles
↓
Design Tokens
↓
Components
↓
Patterns
↓
Pages

Menurut kami, design system yang berguna untuk frontend adalah yang bisa diuji di kode dalam seminggu, bukan dokumen Figma yang indah tetapi tidak pernah masuk ke CSS.

Masalah Frontend yang Diselesaikan Design System

Meski terdengar sepele, tanpa design system inkonsistensi tumbuh pelan. Satu sprint menambah satu “hampir sama”. Setelah tiga bulan, halaman baru terasa asing dibanding halaman lama. Banyak tim menyebut fenomena ini design drift.

Ternyata warna “primary blue” yang muncul sebagai hex hampir kembar adalah gejala klasik:

#2563eb
#2465e9
#2864e5
#2560df

Sementara spacing ikut kacau. Margin bawah section memakai 18px, 20px, 22px, lalu 24px tanpa alasan. Tipografi membengkak jadi puluhan ukuran font padahal skala 6–8 step sudah cukup untuk website bisnis.

Komponen juga beranak tanpa kontrol. Tim punya button-primary, primary-button, btn-blue, cta-button. Fungsinya sama. Namanya beda. Saat brand ganti warna, refactor jadi kerjaan berantai.

Trade-off jujur: membangun design system butuh waktu di awal. Anda menunda “langsung coding halaman”. Namun setelah fondasi ada, fitur baru lebih cepat dan Anda mengubahnya dengan risiko lebih rendah.

Struktur Isi di Dalam Design System

struktur isi design system principles foundations tokens components patterns documentation governance
struktur isi design system principles foundations tokens components patterns documentation governance

Berikut isi design system yang bisa digambarkan:

Design System
├── Principles
├── Foundations
├── Design Tokens
├── Components
├── Patterns
├── Documentation
└── Governance

Principles adalah aturan perilaku sebelum Anda menggambar UI: sederhana, konsisten, accessible, responsive, reusable, predictable. Prinsip “accessible” memaksa Anda mengecek kontras token warna sebelum publish tombol. Prinsip “predictable” menolak hover yang mengubah makna aksi.

Selanjutnya, Foundations menutup fondasi visual: color system, typography, spacing, radius, shadow, grid/container, dan breakpoints. Color system memisahkan brand, neutral, success, warning, danger, info, surface, text, dan border. Spacing memakai skala tetap seperti 4, 8, 12, 16, 24, 32, 48, 64 agar ritme layout terasa stabil.

Setidaknya documentation dan governance tidak boleh luput di proyek kecil. Tanpa keduanya, token baru masuk tanpa review. Kemudian chaos yang ingin Anda hindari kembali muncul.

Design Token: Menghubungkan Desain dengan Kode

alur design token dari raw value ke primitive semantic component token sampai UI component
alur design token dari raw value ke primitive semantic component token sampai UI component

Design token adalah nilai desain yang Anda beri nama bermakna agar banyak lapisan bisa memakai ulang nilai itu. Di frontend modern, token paling alami hidup sebagai CSS custom properties. Referensi teknis yang solid ada di dokumentasi MDN tentang CSS custom properties.

Lapisan token yang kami pakai di lapangan:

Lapisan Contoh Fungsi
Raw value #2563eb Nilai mentah tanpa makna produk
Primitive token --blue-600 Nama berdasarkan nilai/palette
Semantic token --clr-pri Nama berdasarkan peran di UI
Component token --btn-bg Nama khusus untuk satu komponen
:root {
  --blue-600: #2563eb;
  --clr-pri: var(--blue-600);
  --btn-bg: var(--clr-pri);
}

.btn-primary {
  background: var(--btn-bg);
}

Walau begitu, keuntungan semantic naming jelas: saat brand ganti primary dari biru ke hijau, Anda mengganti mapping --clr-pri, bukan memburu semua #2563eb di repo. Token primitif tetap ada sebagai palette. Komponen membaca makna, bukan hex.

Di proyek website Indonesia yang desainer Figma dan developer remote kerjakan bersama, token menjadi bahasa bersama. Desainer bilang “pakai color/primary”. Frontend menulis var(--clr-pri). Debat “biru yang mana?” berhenti.

Components, Variant, State, dan Pattern

Token adalah bahan. Components adalah implementasi yang Anda pasang di halaman. Inventaris umum: Button, Input, Select, Checkbox, Card, Badge, Alert, Modal, Navbar.

Button saja perlu tiga sumbu:

  • Variant: Primary, Secondary, Ghost, Danger
  • Size: Small, Medium, Large
  • State: Default, Hover, Focus, Active, Disabled, Loading

Design system yang hanya mendefinisikan “warna tombol” tetapi lupa focus ring dan disabled state belum siap production. Keyboard user dan form error state akan menyingkap celah itu cepat.

Agar jelas: bedakan component dengan pattern. Input, Button, Checkbox adalah komponen. Login form, search form, filter bar, dan pagination adalah pattern: beberapa komponen yang digabung untuk menyelesaikan tugas pengguna. Pattern menjawab “kapan Anda memakai bersama”, bukan cuma “bagaimana satu tombol terlihat”.

Setelah fondasi token dan komponen inti jelas, praktik di lapangan sering bertemu kebutuhan website bisnis yang lebih rapi. Di titik itu, tim seperti HardaWeb memakai design system sebagai cara menjaga konsistensi UI saat halaman jasa, blog, dan formulir kontak tumbuh bersamaan.

Design System vs UI Kit, Style Guide, Component Library

Banyak orang mencampur tiga istilah ini. Bedanya krusial agar ekspektasi proyek realistis.

Istilah Fokus utama Cukup sebagai design system?
UI kit Aset visual reusable di Figma/Sketch Belum, bila tanpa aturan pakai & kode
Style guide Aturan warna, tipografi, imagery, brand Belum, bila tanpa komponen & state
Component library Kumpulan komponen reusable di kode Belum, bila tanpa prinsip & governance
Design system Prinsip + token + komponen + pola + docs Ya, bila tim menjalankannya bersama

Jadi CSS library seperti Bootstrap atau Tailwind juga bukan design system otomatis. Ia fondasi teknis. Design system muncul saat tim menetapkan aturan brand, token semantik, state aksesibel, pola form, dan dokumentasi “kapan memakai class X”. Memakai .btn-primary Bootstrap tanpa aturan lokal tetap membuka pintu inkonsistensi.

Referensi publik yang layak Anda pelajari: Material Design 3 untuk foundations dan komponen, serta GOV.UK Design System untuk ketatnya aksesibilitas dan dokumentasi penggunaan.

CSS Variables: Implementasi Praktis Design System

screenshot CSS variables design system dengan token warna spacing radius dan class button primary
screenshot CSS variables design system dengan token warna spacing radius dan class button primary

Implementasi paling ringan untuk website HTML/CSS atau WordPress custom theme adalah CSS variables di :root.

:root {
  --clr-pri: #2563eb;
  --clr-txt: #172033;
  --clr-surf: #ffffff;
  --spc-sm: 0.5rem;
  --spc-md: 1rem;
  --spc-lg: 1.5rem;
  --rad-md: 0.5rem;
  --shadow-sm: 0 1px 2px rgba(23, 32, 51, 0.08);
}

.btn-primary {
  background: var(--clr-pri);
  color: #fff;
  padding: var(--spc-sm) var(--spc-md);
  border-radius: var(--rad-md);
}

.card {
  background: var(--clr-surf);
  color: var(--clr-txt);
  padding: var(--spc-lg);
  border-radius: var(--rad-md);
  box-shadow: var(--shadow-sm);
}

Dari sini, section hero, kartu layanan, dan CTA memakai token yang sama. Ganti --clr-pri sekali, seluruh aksi primer ikut berubah. Itu bukti design system bekerja di kode, bukan cuma di slide presentasi.

Sebelum Anda menambah tool rumit: untuk scale lebih besar, Anda bisa mengekspor token dari Figma lewat Style Dictionary atau pipeline serupa. Untuk website 10–30 halaman, CSS variables manual sudah cukup bila tim menjaga disiplin penamaan.

Cara Membuat Design System Sederhana untuk Website

mockup website jasa dengan design system konsisten pada header hero CTA dan kartu layanan
mockup website jasa dengan design system konsisten pada header hero CTA dan kartu layanan

Agar tidak langsung “membuat 40 komponen” sebelum fondasi siap, ikuti urutan ini.

  1. Audit website atau file desain: inventarisasi warna, font, spacing, radius, shadow, breakpoint, button, form, card.
  2. Gabungkan nilai hampir sama. Tiga hex biru primary yang mirip jadi satu nilai resmi.
  3. Tulis primitive tokens (palette), lalu semantic tokens (peran UI).
  4. Buat typography scale dan spacing scale yang terbatas.
  5. Tentukan container, grid, dan breakpoint resmi.
  6. Bangun komponen yang paling sering Anda pakai: Button, Input, Card, Alert, Badge, Navigation.
  7. Dokumentasikan variant, state, “kapan Anda memakai”, dan “kapan tidak”.
  8. Uji dengan satu section nyata: hero + kartu layanan + CTA.

Walaupun begitu, mini design system untuk company profile yang sehat sering cukup dengan 1 primary, 1 secondary, 6–8 spacing step, 5–7 font size, dan 6–8 komponen inti. Lebih dari itu, governance belum siap dan token akan mengembang tanpa pemilik.

Accessibility dan responsive ikut masuk di langkah fondasi, bukan sebagai patch akhir. Tentukan kontras minimum, focus-visible, ukuran target klik, label form, serta perilaku navigasi di breakpoint mobile. Bila aturan itu ada di komponen, halaman baru mewarisi perilaku aman tanpa audit manual setiap kali.

Tools membantu, tetapi bukan pengganti sistem. Figma untuk sumber visual. Storybook untuk katalog komponen. CSS variables atau Style Dictionary untuk token. React/Vue/HTML biasa untuk implementasi. Tanpa prinsip dan dokumentasi, tool hanya mempercepat inkonsistensi.

Akhirnya satu catatan lapangan: AI coding justru membuat design system lebih relevan. Prompt “buat pricing card” tanpa token akan menghasilkan radius, warna, dan tipografi baru setiap kali. Beri AI daftar token dan komponen resmi, lalu outputnya lebih patuh. Sistem yang rapi mengikat kreativitas model ke kontrak produk.

Kalau Anda sedang menata ulang UI website bisnis dan ingin fondasi frontend yang lebih tertib, pendekatan design system di atas adalah titik mulai yang paling masuk akal sebelum menambah halaman atau fitur baru.