- Bab 7 dari 11
- 30 menit
- 1 latihan kode
- 4 soal kuis
Styles dan Variables
Di bab ini (8 bagian)
Tujuan bab ini
- Membedakan styles dan variables beserta kegunaan masing-masing.
- Memahami tipe variables dan modes seperti Light dan Dark.
- Menerjemahkan variables menjadi design tokens berupa CSS custom properties.
Kenapa nilai desain perlu diberi nama
Coba hitung berapa kali warna ungu #7C5CFF muncul di sebuah aplikasi: di tombol, tautan, ikon aktif, garis fokus input, dan banyak lagi. Kalau suatu hari brand berganti warna, kamu harus mencari dan mengganti semuanya. Lebih buruk lagi, kalau aplikasimu perlu mode gelap, setiap warna harus punya pasangan yang berbeda.
Solusinya adalah memberi nama pada nilai desain lalu memakai nama itu, bukan nilai mentahnya. Nilai desain yang diberi nama ini disebut design tokens. Di Figma, ada dua alat untuk ini: styles dan variables.
Styles
Styles menyimpan satu set nilai visual yang bisa dipakai ulang. Jenisnya:
- Color: warna atau gradient.
- Text: font, ukuran, line height, dan pengaturan teks lain.
- Effect: bayangan dan blur.
- Layout grid: pengaturan kolom dan baris.
Satu style menyimpan satu set nilai, sehingga styles ideal untuk tipografi dan bayangan. Text style "Heading", misalnya, menyimpan font, ukuran 24, dan line height sekaligus. Effect style "Bayangan kartu" menyimpan warna, jarak, dan blur bayangan dalam satu nama.
Variables
Variables menyimpan satu nilai per mode, dan bisa dipakai di banyak properti. Tipe variables ada empat:
| Tipe | Contoh pemakaian |
|---|---|
| Color | Warna latar, warna teks |
| Number | Jarak, radius, ukuran |
| String | Teks, misalnya label dalam beberapa bahasa |
| Boolean | Benar atau salah, misalnya menampilkan elemen |
Kekuatan utama variables ada pada modes. Satu variable bisa punya nilai berbeda untuk setiap mode, misalnya Light dan Dark, beberapa bahasa, atau beberapa brand. Variables juga bisa dipakai dalam logika prototipe, yang akan kamu temui di bab prototyping.
Contoh: satu nama, nilai berbeda per mode
Deck memakai dua variable sebagai contoh: bg/surface dan text/primary.
| Variable | Mode Light | Mode Dark |
|---|---|---|
| bg/surface | Terang | Gelap |
| text/primary | Gelap | Terang |
Semua layer di layar memakai variable, bukan warna langsung. Saat kamu mengganti mode frame dari Light ke Dark, semua warna yang terikat variable ikut berubah. Tidak ada satu pun warna yang perlu diedit manual.
Kapan memakai styles, kapan variables
| Kebutuhan | Pilihan yang cocok |
|---|---|
| Tipografi lengkap dalam satu nama | Text style |
| Bayangan dengan beberapa nilai | Effect style |
| Warna yang berubah di mode gelap | Color variable |
| Jarak dan radius yang konsisten | Number variable |
| Label dalam beberapa bahasa | String variable |
Aturan praktisnya: kalau nilainya perlu berubah per mode, pakai variable. Kalau yang disimpan adalah gabungan beberapa nilai, pakai style.
Variables di kode: CSS custom properties
Variables di Figma punya padanan yang sangat dekat di CSS, yaitu custom properties. Nama variable menjadi nama properti yang diawali dua tanda minus, dan mode menjadi selector yang mengganti nilainya.
Perhatikan bahwa .kartu hanya ditulis sekali. Kartu di dalam data-mode="dark" otomatis memakai nilai gelap karena custom properties diwariskan ke elemen di dalamnya. Ini persis seperti mengganti mode pada sebuah frame di Figma: semua layer di dalam frame itu ikut berganti.
Garis miring di nama Figma seperti bg/surface biasanya diubah menjadi tanda minus di CSS, --bg-surface, karena garis miring tidak umum dipakai di nama custom property. Yang penting, nama dan strukturnya tetap sama di kedua sisi sehingga designer dan developer bisa saling merujuk.
Contoh kerja: menyiapkan mode gelap
- Buka panel variables dan buat koleksi bernama "Warna".
- Tambahkan mode kedua sehingga koleksi punya mode Light dan Dark.
- Buat variable
bg/surfacedantext/primary, isi nilainya untuk kedua mode. - Pada layar Login, ganti semua fill latar dengan
bg/surfacedan semua warna teks dengantext/primary. - Duplikasi layar, lalu ubah mode frame duplikat menjadi Dark.
Sekarang kamu punya dua versi layar dari satu desain. Kalau besok warna latar terang ingin sedikit lebih hangat, ubah satu nilai di variable dan semua layar ikut berubah.
Hubungan dengan Dev Mode
Saat developer membuka layar di Dev Mode, warna yang terikat variable ditampilkan dengan namanya, bukan hanya kode heksadesimalnya. Developer yang melihat bg/surface langsung tahu harus memakai var(--bg-surface), bukan menyalin #ffffff. Inilah alasan utama design tokens sangat disukai tim: satu nama yang sama berpindah dari file desain ke codebase tanpa diterjemahkan ulang. Kalau tim memutuskan mengganti nilai warna, cukup satu baris di variable Figma dan satu baris di CSS.
Kesalahan umum
- Menempelkan kode warna langsung ke setiap layer. Mode gelap menjadi mustahil dikelola.
- Memberi nama berdasarkan warna, bukan fungsi. Nama seperti
ungu-mudamembingungkan saat di mode gelap warnanya bukan ungu muda lagi. Nama fungsi sepertibg/surfacetetap masuk akal di semua mode. - Membuat variable untuk tipografi lengkap. Satu variable menyimpan satu nilai, jadi gabungan font, ukuran, dan line height lebih cocok menjadi text style.
- Nama berbeda di Figma dan kode. Kalau designer menyebut
bg/surfacetetapi developer menulis--latar-1, komunikasi menjadi sulit.
Rangkuman
- Design tokens adalah nilai desain yang diberi nama agar konsisten dan mudah diubah.
- Styles (color, text, effect, layout grid) menyimpan satu set nilai, ideal untuk tipografi dan bayangan.
- Variables bertipe color, number, string, dan boolean, mendukung modes seperti Light dan Dark, dan bisa dipakai di logika prototipe.
- Mengganti mode pada frame mengubah semua nilai yang terikat variable.
- Di CSS, variables setara dengan custom properties, dan mode setara dengan selector yang mengganti nilainya.
Slide 24 sampai 24 dari deck Menguasai Figma: Desain UI/UX dari Dasar hingga Handoff. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Variables dan mode gelap dengan custom properties
Terjemahkan dua color variables Figma beserta mode-nya ke CSS custom properties.
| Variable | Light | Dark |
|---|---|---|
--bg-surface | #ffffff | #1a1a1a |
--text-primary | #1a1a1a | #ffffff |
- Definisikan nilai Light di
:rootdan nilai Dark di[data-mode="dark"]. .kartuharus memakaivar(--bg-surface)untuk latar danvar(--text-primary)untuk teks, jangan menulis kode warna langsung.
Cek pemahaman
1Tipe variables di Figma adalah
2Variables mendukung modes sehingga satu nama bisa punya nilai berbeda untuk Light dan Dark.
3Untuk menyimpan font, ukuran, dan line height sekaligus, pilihan yang paling cocok adalah
4Warna latar .kartu di dalam elemen data-mode dark adalah
:root { --bg: #ffffff; } [data-mode="dark"] { --bg: #1a1a1a; } .kartu { background: var(--bg); } /* HTML: <div data-mode="dark"><div class="kartu"></div></div> */