Color and Spacing Tokens
Membuat color dan spacing tokens dengan CSS custom properties lalu mengganti nilai visual yang berulang pada UI course.
Tujuan belajar
- Mendefinisikan color dan spacing tokens pada scope yang sesuai
- Menggunakan var() untuk mengganti nilai mentah yang berulang
- Membedakan background, text, border, dan action color berdasarkan peran UI
- Membuat spacing scale kecil yang lebih konsisten daripada margin satu kali pakai
Isi lesson
6 blok- 1.Color dan spacing harus menjelaskan hubungan antarelemenBelum selesaiWajib
- 2.Token color dan spacing untuk course panelBelum selesaiWajib
- 3.Coding practiceBelum selesaiWajib
- 4.Cek pemahamanBelum selesaiWajib
- 5.Token tidak menjamin contrast secara otomatisBelum selesaiOpsional
- 6.RingkasanBelum selesaiWajib
Color dan spacing harus menjelaskan hubungan antarelemen
WajibColor token bukan sekadar mengganti #0f172a menjadi variabel. UI biasanya memiliki peran berbeda: surface, text utama, text muted, border, action primary, dan text di atas action. Memberi nama berdasarkan peran membantu kamu mengubah action color tanpa tidak sengaja mengubah semua text gelap. Hal yang sama berlaku untuk spacing. Ketika gap, padding, dan section spacing memakai beberapa ukuran yang berulang, scale kecil membuat rhythm layout lebih mudah dijaga.
CSS custom properties dideklarasikan dengan prefix -- dan dipakai melalui var(). Scope :root cocok untuk token yang dipakai banyak component; scope component cocok untuk token lokal pattern yang tidak ingin dijadikan aturan halaman. Jangan membuat semua component mendefinisikan --space-4 sendiri dengan nilai berbeda. Pilih beberapa ukuran yang telah muncul di UI dan gunakan secara konsisten, lalu review visual serta contrast setelah refactor.
Bagian ini memengaruhi progres lesson.
Token color dan spacing untuk course panel
Wajib:root {
--color-surface: #ffffff;
--color-text: #172033;
--color-text-muted: #536176;
--color-border-subtle: #d8dee9;
--color-action-primary: #0f6fda;
--color-on-action: #ffffff;
--space-2: 0.5rem;
--space-4: 1rem;
--space-6: 1.5rem;
}
.course-panel {
background: var(--color-surface);
border: 1px solid var(--color-border-subtle);
color: var(--color-text);
padding: var(--space-6);
}
.course-panel p {
color: var(--color-text-muted);
margin-top: var(--space-2);
}
.course-panel a {
background: var(--color-action-primary);
color: var(--color-on-action);
display: inline-block;
margin-top: var(--space-4);
padding: var(--space-2) var(--space-4);
}Token action memiliki pasangan --color-on-action agar foreground dan background dapat direview sebagai satu keputusan contrast. Spacing kecil --space-2, --space-4, dan --space-6 memberi pilihan yang cukup untuk panel ini tanpa membuat setiap pixel menjadi token. Saat value berubah, semua consumer yang memakai role yang sama berubah bersama; periksa apakah itu memang dampak yang diinginkan sebelum mengubah token global.
Bagian ini memengaruhi progres lesson.
Coding practice
WajibDibuka di workspace khususCreate course color and spacing tokens
Buat color dan spacing tokens untuk course panel, lalu gunakan var() pada surface, text, paragraph, dan action link.
Tujuan awal: Fokus di tab CSS.
Practice ini dibuka di workspace khusus. Buka practice untuk memakai editor, preview, dan cek otomatis.
Tombol selesai aktif setelah semua validasi wajib lolos.
Cek pemahaman
WajibJawab duluCek pemahaman singkat
Mengapa --color-on-action lebih baik daripada memakai --white langsung di semua Button primary?
Progres lesson naik setelah jawaban benar.
Catatan penting
OpsionalToken tidak menjamin contrast secara otomatis
Mengganti color literal dengan token tidak otomatis membuat text dapat dibaca. Periksa pasangan foreground/background pada state default, hover, focus, disabled, dan theme yang tersedia. Jangan hanya mengandalkan warna untuk menyampaikan error atau destructive state; copy, icon, dan semantic structure tetap dapat diperlukan sesuai konteks UI.
Opsional, tidak menghambat penyelesaian lesson.
Ringkasan
Wajib- Color token diberi nama berdasarkan peran seperti surface, text, border, dan action.
- Spacing scale kecil mengurangi margin serta padding satu kali pakai yang tidak konsisten.
- CSS custom properties memakai -- saat deklarasi dan var() saat dipakai.
- Token global perlu diubah dengan hati-hati karena beberapa consumer dapat ikut berubah.
- Berikutnya, radius dan typography tokens melengkapi visual rhythm tanpa menambah nilai acak pada setiap component.
Bagian ini memengaruhi progres lesson.
Langkah berikutnya
Selesaikan bagian penting lesson ini
Lanjutkan blok wajib berikutnya: Color dan spacing harus menjelaskan hubungan antarelemen.