Warna yang aksesibel
Jangan hanya menggunakan warna untuk menunjukkan keberadaan komponen antarmuka pengguna atau statusnya: Gunakan ikonografi dan/atau bentuk untuk membantu membedakan. Jangan menunjukkan keberhasilan/error HANYA dengan warna. Gunakan ikon atau teks.
<!-- Good: Denotes state without colors alone -->
<div class="error-msg">
<span aria-hidden="true">❌</span>
<span>The password entered was invalid.</span>
</div>
Kontras
- Standar kontras minimum: Pertahankan 4,5:1 untuk teks normal dan 3:1 untuk teks atau ikon besar.
- Pastikan standar kontras non-teks: Pertahankan rasio kontras minimum 3:1 untuk batas dan status komponen antarmuka pengguna.
- Hal ini mencakup elemen visual (batas, latar belakang, bayangan kotak, garis bawah) yang membentuk batas atau menunjukkan keberadaan komponen UI (misalnya, batas kolom input).
- Hal ini juga mencakup elemen visual yang menunjukkan status aktif dalam komponen (misalnya, tanda centang kotak atau tombol beralih).
- Peringatan: Memenuhi kontras non-teks 3:1 dapat menjadi tantangan bagi desain minimalis. Gradien lembut atau bayangan inset/outset yang halus dapat melembutkan batas visual sekaligus memenuhi persyaratan aksesibilitas.
- Gunakan
prefers-contrasthanya jika diperlukan: Gunakan@media (prefers-contrast: more)jika desain menggunakan aksen kontras rendah (misalnya, batas tipis, teks sekunder redup) yang perlu diperkuat; sebagian besar situs yang sudah memenuhi kontras dasar tidak akan memerlukannya.
Skema warna terang dan gelap
- Mendukung skema warna terang dan gelap: Hormati
@media (prefers-color-scheme: dark)dan pasangkan dengan properti CSScolor-schemeagar kontrol formulir, scrollbar, dan platform lain yang dirender UA cocok. Lihat Mode gelap untuk mengetahui detail selengkapnya.
Mode Warna Paksa
- Mendukung Mode Warna Paksa: Dalam Mode Warna Paksa (Kontras Tinggi di Windows), browser mengganti warna penulis dengan kata kunci sistem dan menghapus
background-image,box-shadow, danborder-image. Tentukan penggantian warna sistem untuk token warna menggunakan@media (forced-colors: active). - Gunakan
forced-color-adjust: nonehanya jika warna merupakan informasi penting (penyorot sintaksis, contoh pemilih warna). JANGAN gunakanforced-color-adjust: nonehanya untuk mempertahankan estetika. - Jangan mengandalkan
background-image,box-shadow, atauborder-imageuntuk menyampaikan batas, pemisah, atau status: Elemen ini akan hilang dalam warna paksa (dan sering kali juga dalam cetakan). Jika harus, pastikan ada alternatif dalam mode warna paksa, sepertioutlineatauborderdengan kata kunci warna sistem (CanvasText,LinkText,ButtonText,Highlight,GrayText, dll.).
Membuat tint
Sebelum membuat tint secara dinamis, periksa apakah Anda dapat menggunakan token desain yang sudah ada dan telah ditentukan sebelumnya. Hal ini memungkinkan kontrol desainer yang jauh lebih besar dan memastikan konsistensi.
Jika Anda perlu membuat warna yang lebih terang atau lebih gelap secara dinamis:
- JANGAN hanya menyesuaikan saluran kecerahan di
oklch/oklabataulch/lab, misalnyaoklab(from var(--primary) 0.9 a b). Meskipun secara teoritis itu adalah cara yang benar, browser belum menerapkan pemetaan gamut, sehingga warna yang dihasilkan tidak dapat diprediksi. - Anda dapat menggunakan
color-mix()untuk mencampur dengan warna putih atau hitam (sebaiknya dalamoklab). Hal ini menjaga warna tetap aman dalam gamut, tetapi cenderung mengurangi saturasi warna secara berlebihan dan menghasilkan tint dan shade yang pudar. - Anda DAPAT menggabungkan penyesuaian kecerahan dengan metode lainnya (misalnya,
color-mix(in oklab, oklch(from var(--primary) 0.9 c h), white 30%)) untuk mendapatkan keseimbangan di antara keduanya, tetapi hindari penyesuaian kecerahan di atas 30%.