Fondasi
Warna
Peran warna semantik, warna status dengan kata dan ikon, state layer, aturan mode gelap, palet primitif, dan hasil kontras langsung untuk 72 pasangan.
Warna bekerja dalam tiga lapis: primitif (nilai hex mentah), peran semantik (primary, base-100, error), dan ekstensi Citia (--ds-link, --ds-focus). Komponen hanya memakai dua lapis terakhir. Setiap peran punya nilai di tema terang dan gelap, dan swatch di bawah dirender langsung dari tokens.json, jadi selalu mutakhir.
Sumbernya tokens/tokens.json. Jangan mengedit Styles/generated/tokens.css dengan tangan; jalankan dotnet run tools/tokens.cs.
Peran semantik
Peran bawaan daisyUI 5. Tiap swatch menampilkan terang di kiri dan gelap di kanan. Pakai sebagai var(--color-primary) atau utilitas Tailwind (bg-primary, text-base-content).
--color-base-100#f9f9f6#151c25
Permukaan: kartu, tabel, input, sidebar dokumen.--color-base-200#f1f2ee#0e141b
Latar halaman, header tabel, field readonly.--color-base-300#dfe3dd#253040
Border dan pemisah.--color-base-content#0f172a#e6edf3
Teks utama.--color-primary#00838f#00a4b2
Aksi utama, navigasi aktif, fokus merek.--color-primary-content#ffffff#0e141b
--color-secondary#00767f#05666f
Latar sidebar aplikasi.--color-secondary-content#ffffff#ffffff
--color-accent#00a4b2#00d4df
Cincin fokus, penanda rail aktif, grafik.--color-accent-content#0f172a#0e141b
--color-neutral#0f172a#e6edf3
--color-neutral-content#f6f8fa#0e141b
--color-info#3b6fd4#7aa2f7
--color-info-content#ffffff#0e141b
--color-success#047857#34d399
--color-success-content#ffffff#0e141b
--color-warning#c2410c#f59e0b
--color-warning-content#ffffff#0e141b
--color-error#dc2626#f87171
--color-error-content#ffffff#0e141b
| Peran | Dipakai untuk |
|---|---|
base-100 |
Permukaan: kartu, tabel, input, menu. |
base-200 |
Latar halaman, header tabel, isian tenang. |
base-300 |
Border tipis dan pemisah (1px). |
base-content |
Teks isi dan ikon di atas permukaan dasar. |
primary, primary-content |
Satu aksi utama, seleksi, fokus; teks di atasnya. |
secondary, accent |
Permukaan sidebar dan penanda aktif. Bukan focus ring. |
info, success, warning, error |
Isian dan border status (lihat di bawah). |
Permukaan netral dan hangat. Teal muncul pada aksi utama, item navigasi saat ini, seleksi, dan focus ring, dan secara bawaan tidak di tempat lain.
Ekstensi Citia
Peran yang tidak ada di daisyUI. Nama CSS-nya --ds-<nama>; Tailwind membaca --color-<nama> (text-link, bg-popover, border-control).
--ds-control-border#7b8a94#74848f
Border input, select, tombol sekunder (≥ 3:1).--ds-quiet#006a73--color-primary
Teks teal tenang: tombol ghost, eyebrow, ikon kosong.--ds-link#2b5cc4--color-info
Tautan identitas (.ds-link-ref). Biru hanya untuk tautan.--ds-error-text#b91c1c--color-error
--ds-warning-text#9a3412--color-warning
--ds-popover--color-base-100campuran
Permukaan lapisan melayang (dropdown, kalender, combobox).--ds-popover-border--ds-control-border--ds-control-border
--ds-popover-hovercampurancampuran
--ds-subtlecampurancampuran
Teks sekunder: bantuan field, keterangan, label meta.--ds-mutedcampurancampuran
Teks tersier yang tetap lolos AA di base-100 (.text-muted).--ds-focus#00838f#00d4df
Cincin fokus. Versi lama memakai accent (#00a4b2 = 2.86:1 di base-100); DS memakai primary agar ≥ 3:1 (WCAG 1.4.11).--ds-scrimrgb(8 18 28 / .4)rgb(8 18 28 / .4)
Latar belakang modal (::backdrop).--ds-excel#1d6f42#1d6f42
--ds-excel-hover#185c37#185c37
--ds-pdf#b30b00#b30b00
--ds-pdf-hover#8f0900#8f0900
--ds-syntax-tag#006780#66d9e8
Tag XML/HTML.--ds-syntax-attr#8c3a17#edba82
Atribut XML/HTML.--ds-primary-softcampurancampuran
Isian tonal primary untuk permukaan status (alert, pill, chip, baris terpilih). Pasangkan dengan --ds-primary-text atau teks dasar.--ds-info-softcampurancampuran
Isian tonal info untuk permukaan status (alert, pill, chip, baris terpilih). Pasangkan dengan --ds-info-text atau teks dasar.--ds-success-softcampurancampuran
Isian tonal success untuk permukaan status (alert, pill, chip, baris terpilih). Pasangkan dengan --ds-success-text atau teks dasar.--ds-warning-softcampurancampuran
Isian tonal warning untuk permukaan status (alert, pill, chip, baris terpilih). Pasangkan dengan --ds-warning-text atau teks dasar.--ds-error-softcampurancampuran
Isian tonal error untuk permukaan status (alert, pill, chip, baris terpilih). Pasangkan dengan --ds-error-text atau teks dasar.--ds-neutral-softcampurancampuran
Isian tonal netral: tag, pill nonaktif, latar kode inline.--ds-info-text#2b5cc4--color-info
Teks dan ikon info di permukaan terang (≥ 4.5:1).--ds-success-text#047857--color-success
Teks dan ikon sukses di permukaan terang (≥ 4.5:1).--ds-primary-text#006a73--color-primary
Teks berwarna primary di permukaan terang (≥ 4.5:1).--ds-chart-1--color-primary--color-primary
Seri grafik kategorikal 1. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-2#3a61c4#86a9f7
Seri grafik kategorikal 2. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-3#c26300#f0a646
Seri grafik kategorikal 3. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-4#c72c53#f6838e
Seri grafik kategorikal 4. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-5#137738#6cd092
Seri grafik kategorikal 5. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-6#8048b6#be95ec
Seri grafik kategorikal 6. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-7#576574#a0b0c1
Seri grafik kategorikal 7. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).--ds-chart-8#857d0b#c9c261
Seri grafik kategorikal 8. Kontras grafis di base-100 (≥ 3.9:1); pakai sesuai urutan, jangan jadi satu-satunya penanda (beri label atau legenda).| Token | Dipakai untuk |
|---|---|
--ds-subtle |
Teks sekunder: bantuan, keterangan, metadata (8.7:1 di terang). |
--ds-muted |
Teks tersier yang tetap lolos AA (6.04:1). Jangan untuk informasi penting. |
--ds-control-border |
Border input, select, tombol sekunder. Minimal 3:1 terhadap permukaan (3.37:1 terang, 4.44:1 gelap). |
--ds-link |
Tautan di teks dan tabel. Selalu bergaris bawah atau ditandai lain. |
--ds-error-text, --ds-warning-text |
Teks di atas tint galat atau peringatan; warna dasarnya terlalu terang untuk teks kecil di tema terang. |
--ds-focus |
Focus ring 2px. Satu-satunya warna fokus. |
--ds-popover, --ds-popover-border, --ds-popover-hover |
Lapisan melayang: solid, bukan transparan. |
--ds-scrim |
Latar belakang modal. |
Penting
Biru untuk tautan. Teal untuk aksi utama, seleksi, dan fokus. Jangan pakai warna tautan pada tombol atau status.
Warna status
Status memakai empat rona dengan arti tetap. Isian tonal (pucat) mengisi area; warna jenuh hanya muncul sebagai border 1px, ikon, atau titik. Status selalu disertai kata, dan bentuk ikon berbeda per nada, sehingga tetap terbaca bagi buta warna dan dalam skala abu-abu.
| Nada | Arti | Ikon | Contoh kata |
|---|---|---|---|
info |
Kabar netral, sedang berjalan | info |
Terjadwal |
success |
Selesai, sehat | check-circle |
Lunas |
warning |
Perlu perhatian, belum gagal | alert-triangle |
Menunggu pembayaran |
error |
Gagal atau destruktif | x-circle |
Terlambat |
Lihat kode HTML
<div class="flex flex-wrap gap-3">
<span class="ds-pill is-info">Terjadwal</span>
<span class="ds-pill is-success">Lunas</span>
<span class="ds-pill is-warning">Menunggu pembayaran</span>
<span class="ds-pill is-error">Terlambat</span>
<span class="ds-pill is-neutral">Draf</span>
</div>Aturan:
- Tulis status sebagai kata. Warna dan titik hanya mendukung.
- Teks di atas tint memakai
base-contentatau peran-text, bukan warna dasar status di tema terang. - Jangan menandai galat hanya dengan merah: tambahkan pesan di dekat field, dihubungkan dengan
aria-describedby. - Jangan mengubah arti demi merek. Merek boleh menyesuaikan nada, bukan arti.
State layer
Hover, tekan, seleksi, dan drag diungkapkan sebagai lapisan translusen warna konten di atas permukaan, bukan warna baru. Token:
| Token | Nilai | Dipakai untuk |
|---|---|---|
--ds-opacity-state-hover |
0.06 | Hover pada baris, tombol ghost, item menu |
--ds-opacity-state-pressed |
0.10 | Saat pointer ditekan |
--ds-opacity-state-selected |
0.12 | Baris terpilih, item saat ini, opsi terpilih (dengan warna primer) |
--ds-opacity-state-drag |
0.16 | Target drop dan item yang diseret |
.app-row:hover {
background: color-mix(in oklab, var(--color-base-content) calc(var(--ds-opacity-state-hover) * 100%), var(--color-base-100));
}
.app-row[aria-selected="true"] {
background: color-mix(in oklab, var(--color-primary) calc(var(--ds-opacity-state-selected) * 100%), var(--color-base-100));
}Karena lapisan dicampur dari token, ia menyesuaikan tema apa pun tanpa hex baru. Tint dijaga 16% atau kurang agar teks di atasnya tetap 4.5:1.
Resep tint dan border
| Tujuan | Rentang | Contoh |
|---|---|---|
| Isian lembut di permukaan | 6 sampai 12% | color-mix(in oklab, var(--color-error) 10%, var(--color-base-100)) |
| Isian lembut tanpa dasar | 4 sampai 16% | color-mix(in oklab, var(--color-primary) 10%, transparent) |
| Border nada | 22 sampai 45% | color-mix(in oklab, var(--color-info) 35%, var(--color-base-300)) |
| Seleksi teks | 24% | color-mix(in oklab, var(--color-primary) 24%, transparent) |
Mode gelap
Tema gelap dirancang, bukan dibalik.
- Permukaan berwarna hitam kebiruan (
base-100#151c25, halaman#0e141b), bukan hitam murni, supaya bayangan dan garis tipis tetap terbaca. primarymenjadi#00a4b2dengan teks gelap#0e141b; terang memakai#00838fdengan putih.--ds-focusmenjadi aqua#00d4df(9.38:1) karena warna fokus tema terang terlalu gelap di halaman gelap.--ds-linkpindah ke biruinfo#7aa2f7(6.81:1).- Warna status lebih terang (
success#34d399,error#f87171) dan peran-text-nya sama dengan warna dasar, yang sudah lolos 4.5:1. - Popover diangkat dengan sedikit putih (
color-mixdengan 6% putih) agar lapisan terpisah dari halaman tanpa bergantung pada bayangan; bayangan lebih pekat (.36) karena halamannya sudah gelap. - Hindari teks putih murni (
base-contentadalah#e6edf3) dan area jenuh yang besar, yang menyilaukan di gelap.
Pilih tema di markup dengan data-theme="light" atau "dark"; lihat Tema.
Palet primitif
Nilai mentah di balik peran. Arahkan kursor ke chip untuk melihat catatannya.
white
white#ffffffteal
teal.500#00a4b2teal.600#00838fteal.700#00767fteal.750#006a73teal.800#05666faqua
aqua.400#00d4dfpaper
paper.50#f9f9f6paper.100#f1f2eepaper.200#dfe3ddsteel
steel.400#7b8a94steel.450#74848fslate
slate.900#0f172afrost
frost.50#f6f8fafrost.100#e6edf3night
night.700#253040night.800#151c25night.900#0e141bblue
blue.400#7aa2f7blue.500#3b6fd4blue.600#2b5cc4emerald
emerald.400#34d399emerald.700#047857amber
amber.500#f59e0borange
orange.700#c2410corange.800#9a3412red
red.400#f87171red.600#dc2626red.700#b91c1cexcel
excel.600#1d6f42excel.700#185c37pdf.600#b30b00pdf.700#8f0900avatar
avatar.c0#00838favatar.c1#2b5cc4avatar.c2#7c3aedavatar.c3#c2410cavatar.c4#047857avatar.c5#be185davatar.c6#4d7c0favatar.c7#0e7490brand
brand.deep#04222abrand.ink#0b1720brand.amber#ffb938Peringatan
Komponen tidak pernah memakai primitif. Tulis var(--color-primary), bukan #00838f atau teal.600. Saat tema berubah, hanya peran semantik yang dipetakan ulang; komponen yang memakai primitif akan tertinggal.
Hasil kontras
dotnet run tools/tokens.cs menghitung rasio WCAG 2.2 untuk 72 pasangan di kedua tema dan menulis wwwroot/tokens/contrast.json. Pasangan wajib di bawah 4.5:1 (teks) atau 3:1 (batas, focus ring, ikon) menggagalkan build. Pasangan berlabel informasional tidak menentukan hasil.
| Tema | Pasangan | Contoh | Rasio | Minimum | Hasil |
|---|---|---|---|---|---|
light | base-content Teks utama di permukaan | Aa 12 #0f172a / #f9f9f6 | 16,93:1 | 4,5:1 | Lolos |
light | base-content / base-200 Teks utama di latar halaman | Aa 12 #0f172a / #f1f2ee | 15,88:1 | 4,5:1 | Lolos |
light | subtle Teks sekunder (bantuan field) | Aa 12 #404858 / #f9f9f6 | 8,70:1 | 4,5:1 | Lolos |
light | subtle / base-200 Teks sekunder di latar | Aa 12 #404858 / #f1f2ee | 8,16:1 | 4,5:1 | Lolos |
light | muted Teks redup di permukaan | Aa 12 #5a5f6b / #f9f9f6 | 6,04:1 | 4,5:1 | Lolos |
light | muted / base-200 Teks redup di latar | Aa 12 #575d69 / #f1f2ee | 5,87:1 | 4,5:1 | Lolos |
light | primary-content Label tombol utama | Aa 12 #ffffff / #00838f | 4,52:1 | 4,5:1 | Lolos |
light | secondary-content Item sidebar | Aa 12 #ffffff / #00767f | 5,39:1 | 4,5:1 | Lolos |
light | sidebar active Item sidebar aktif | Aa 12 #ffffff / #005056 | 9,24:1 | 4,5:1 | Lolos |
light | sidebar group Kepala grup sidebar 11 px | Aa 12 #e6f1f2 / #00767f | 4,68:1 | 4,5:1 | Lolos |
light | accent-content Teks di atas accent | Aa 12 #0f172a / #00a4b2 | 5,91:1 | 4,5:1 | Lolos |
light | info-content Alert/badge info terisi | Aa 12 #ffffff / #3b6fd4 | 4,76:1 | 4,5:1 | Lolos |
light | success-content Badge sukses terisi | Aa 12 #ffffff / #047857 | 5,48:1 | 4,5:1 | Lolos |
light | warning-content Badge peringatan terisi | Aa 12 #ffffff / #c2410c | 5,18:1 | 4,5:1 | Lolos |
light | error-content Tombol destruktif | Aa 12 #ffffff / #dc2626 | 4,83:1 | 4,5:1 | Lolos |
light | link Tautan di permukaan | Aa 12 #2b5cc4 / #f9f9f6 | 5,80:1 | 4,5:1 | Lolos |
light | link / base-200 Tautan di latar | Aa 12 #2b5cc4 / #f1f2ee | 5,44:1 | 4,5:1 | Lolos |
light | link / row hover Tautan di baris yang di-hover | Aa 12 #2b5cc4 / #eeefed | 5,30:1 | 4,5:1 | Lolos |
light | quiet Label tombol ghost | Aa 12 #006a73 / #f9f9f6 | 6,02:1 | 4,5:1 | Lolos |
light | quiet / ghost hover Tombol ghost saat hover | Aa 12 #006a73 / #dae4e3 | 4,89:1 | 4,5:1 | Lolos |
light | error-text Pesan galat, badge galat soft | Aa 12 #b91c1c / #f9f9f6 | 6,13:1 | 4,5:1 | Lolos |
light | warning-text Badge/alert peringatan soft | Aa 12 #9a3412 / #f9f9f6 | 6,93:1 | 4,5:1 | Lolos |
light | success text Status Aktif (teks di tint) | Aa 12 #047857 / #e8eee8 | 4,66:1 | 4,5:1 | Lolos |
light | error text (raw) Pesan validasi memakai --color-error | Aa 12 #dc2626 / #f9f9f6 | 4,58:1 | 4,5:1 | Lolos |
light | popover text Teks di lapisan melayang | Aa 12 #0f172a / #f9f9f6 | 16,93:1 | 4,5:1 | Lolos |
light | excel Tombol Excel | Aa 12 #ffffff / #1d6f42 | 6,17:1 | 4,5:1 | Lolos |
light | pdf Tombol PDF | Aa 12 #ffffff / #b30b00 | 7,08:1 | 4,5:1 | Lolos |
light | control-border Border input/tombol sekunder (non-teks) | Aa 12 #7b8a94 / #f9f9f6 | 3,37:1 | 3:1 | Lolos |
light | focus ring Cincin fokus (non-teks) | Aa 12 #00838f / #f9f9f6 | 4,29:1 | 3:1 | Lolos |
light | focus ring / base-200 Cincin fokus di latar | Aa 12 #00838f / #f1f2ee | 4,02:1 | 3:1 | Lolos |
light | accent ring (v1) Cincin fokus versi 1 — informasi | Aa 12 #00a4b2 / #f9f9f6 | 2,86:1 | 3:1 | Info |
light | primary edge Batas kontrol aktif (chip/segmen) | Aa 12 #00838f / #f9f9f6 | 4,29:1 | 3:1 | Lolos |
* | avatar-c0 Inisial putih di avatar | Aa 12 #ffffff / #00838f | 4,52:1 | 4,5:1 | Lolos |
* | avatar-c1 Inisial putih di avatar | Aa 12 #ffffff / #2b5cc4 | 6,12:1 | 4,5:1 | Lolos |
* | avatar-c2 Inisial putih di avatar | Aa 12 #ffffff / #7c3aed | 5,70:1 | 4,5:1 | Lolos |
* | avatar-c3 Inisial putih di avatar | Aa 12 #ffffff / #c2410c | 5,18:1 | 4,5:1 | Lolos |
* | avatar-c4 Inisial putih di avatar | Aa 12 #ffffff / #047857 | 5,48:1 | 4,5:1 | Lolos |
* | avatar-c5 Inisial putih di avatar | Aa 12 #ffffff / #be185d | 6,04:1 | 4,5:1 | Lolos |
* | avatar-c6 Inisial putih di avatar | Aa 12 #ffffff / #4d7c0f | 4,99:1 | 4,5:1 | Lolos |
* | avatar-c7 Inisial putih di avatar | Aa 12 #ffffff / #0e7490 | 5,36:1 | 4,5:1 | Lolos |
dark | base-content Teks utama di permukaan | Aa 12 #e6edf3 / #151c25 | 14,51:1 | 4,5:1 | Lolos |
dark | base-content / base-200 Teks utama di latar halaman | Aa 12 #e6edf3 / #0e141b | 15,66:1 | 4,5:1 | Lolos |
dark | subtle Teks sekunder (bantuan field) | Aa 12 #acb3ba / #151c25 | 8,08:1 | 4,5:1 | Lolos |
dark | subtle / base-200 Teks sekunder di latar | Aa 12 #acb3ba / #0e141b | 8,72:1 | 4,5:1 | Lolos |
dark | muted Teks redup di permukaan | Aa 12 #a3aab1 / #151c25 | 7,31:1 | 4,5:1 | Lolos |
dark | muted / base-200 Teks redup di latar | Aa 12 #a1a8ae / #0e141b | 7,66:1 | 4,5:1 | Lolos |
dark | primary-content Label tombol utama | Aa 12 #0e141b / #00a4b2 | 6,13:1 | 4,5:1 | Lolos |
dark | secondary-content Item sidebar | Aa 12 #ffffff / #05666f | 6,70:1 | 4,5:1 | Lolos |
dark | sidebar active Item sidebar aktif | Aa 12 #ffffff / #02444b | 10,84:1 | 4,5:1 | Lolos |
dark | sidebar group Kepala grup sidebar 11 px | Aa 12 #e6f0f1 / #05666f | 5,76:1 | 4,5:1 | Lolos |
dark | accent-content Teks di atas accent | Aa 12 #0e141b / #00d4df | 10,12:1 | 4,5:1 | Lolos |
dark | info-content Alert/badge info terisi | Aa 12 #0e141b / #7aa2f7 | 7,35:1 | 4,5:1 | Lolos |
dark | success-content Badge sukses terisi | Aa 12 #0e141b / #34d399 | 9,63:1 | 4,5:1 | Lolos |
dark | warning-content Badge peringatan terisi | Aa 12 #0e141b / #f59e0b | 8,62:1 | 4,5:1 | Lolos |
dark | error-content Tombol destruktif | Aa 12 #0e141b / #f87171 | 6,69:1 | 4,5:1 | Lolos |
dark | link Tautan di permukaan | Aa 12 #7aa2f7 / #151c25 | 6,81:1 | 4,5:1 | Lolos |
dark | link / base-200 Tautan di latar | Aa 12 #7aa2f7 / #0e141b | 7,35:1 | 4,5:1 | Lolos |
dark | link / row hover Tautan di baris yang di-hover | Aa 12 #7aa2f7 / #1c232c | 6,30:1 | 4,5:1 | Lolos |
dark | quiet Label tombol ghost | Aa 12 #00a4b2 / #151c25 | 5,68:1 | 4,5:1 | Lolos |
dark | quiet / ghost hover Tombol ghost saat hover | Aa 12 #00a4b2 / #1a2d36 | 4,74:1 | 4,5:1 | Lolos |
dark | error-text Pesan galat, badge galat soft | Aa 12 #f87171 / #151c25 | 6,20:1 | 4,5:1 | Lolos |
dark | warning-text Badge/alert peringatan soft | Aa 12 #f59e0b / #151c25 | 7,98:1 | 4,5:1 | Lolos |
dark | success text Status Aktif (teks di tint) | Aa 12 #34d399 / #1a282e | 7,85:1 | 4,5:1 | Lolos |
dark | error text (raw) Pesan validasi memakai --color-error | Aa 12 #f87171 / #151c25 | 6,20:1 | 4,5:1 | Lolos |
dark | popover text Teks di lapisan melayang | Aa 12 #e6edf3 / #202730 | 12,73:1 | 4,5:1 | Lolos |
dark | excel Tombol Excel | Aa 12 #ffffff / #1d6f42 | 6,17:1 | 4,5:1 | Lolos |
dark | pdf Tombol PDF | Aa 12 #ffffff / #b30b00 | 7,08:1 | 4,5:1 | Lolos |
dark | control-border Border input/tombol sekunder (non-teks) | Aa 12 #74848f / #151c25 | 4,44:1 | 3:1 | Lolos |
dark | focus ring Cincin fokus (non-teks) | Aa 12 #00d4df / #151c25 | 9,38:1 | 3:1 | Lolos |
dark | focus ring / base-200 Cincin fokus di latar | Aa 12 #00d4df / #0e141b | 10,12:1 | 3:1 | Lolos |
dark | accent ring (v1) Cincin fokus versi 1 — informasi | Aa 12 #00d4df / #151c25 | 9,38:1 | 3:1 | Lolos |
dark | primary edge Batas kontrol aktif (chip/segmen) | Aa 12 #00a4b2 / #151c25 | 5,68:1 | 3:1 | Lolos |
Lakukan dan jangan
- Lakukan: pakai peran lewat variabel:
color: var(--ds-subtle),border-color: var(--ds-control-border). - Lakukan: pasangkan setiap warna status dengan kata dan ikon.
- Lakukan: jaga satu
btn-primaryper area; teal menandainya. - Lakukan: periksa pasangan teks-di-atas-warna yang baru dan tambahkan ke
tools/tokens.cs. - Jangan: pakai hex, primitif, atau kelas palet Tailwind (
bg-red-500) di komponen. - Jangan: memberi tint di atas 16% di belakang teks, atau memakai gradien, glow, dan blok jenuh yang besar.
- Jangan: memakai warna saja untuk state: baris terpilih juga mendapat centang, bilah, atau perubahan bobot.
- Jangan: memakai biru untuk tombol atau teal untuk tautan.
.app-ref { color: var(--ds-link); text-decoration: underline; }
.app-hint { color: var(--ds-subtle); }
.app-field { border: 1px solid var(--ds-control-border); background: var(--color-base-100); }<a asp-page="Details" asp-route-id="@Model.Id" class="text-link underline underline-offset-2">INV-2026-0418</a>
<p class="text-subtle">Format INV-TTTT-NNNN</p>
<input class="input border-control" />Utilitas itu berasal dari generated/tailwind-theme.css dan di-resolve per elemen, sehingga data-theme bersarang tetap memakai warnanya sendiri.