Cara menulis warna di CSS
Setiap properti yang menerima warna (color, background-color, border-color, bayangan, fill SVG) menerima format yang sama. Empat contoh warna pertama adalah biru yang sama yang ditulis dengan empat cara, dan yang kelima adalah nama warna yang hampir sama:
| Format | Contoh | Paling cocok untuk |
|---|---|---|
| Nama | tomato, rebeccapurple | Uji cepat dan prototipe |
| Hex | #2563eb, #25e | Menyalin dari alat desain |
rgb() | rgb(37 99 235) | Menambahkan transparansi, bekerja dari nilai RGB |
hsl() | hsl(221 83% 53%) | Membuat versi gelap dan terang dari satu warna |
oklch() | oklch(55% 0.2 262) | Palet dengan kecerahan yang terlihat merata |
| Kata kunci | transparent, currentColor | Lihat bagian di bawah |
Warna hex
Warna hex adalah # yang diikuti merah, hijau, dan biru, masing-masing sebagai dua digit heksadesimal, dari 00 sampai ff. Tiga bentuk berikut adalah singkatan atau perluasannya:
#rgb: setiap digit digandakan, jadi#25esama dengan#2255ee.#rrggbbaa: pasangan terakhir adalah alpha, jadi#2563eb80kira-kira 50% tidak transparan.#rgba: bentuk singkat dengan alpha.
Hex tidak peka huruf besar kecil: #2563EB dan #2563eb adalah warna yang sama.
rgb() dan rgba()
rgb() menerima merah, hijau, dan biru dari 0 sampai 255 (atau 0% sampai 100%). Nilai keempat yang opsional setelah garis miring adalah alpha, dari 0 (tidak terlihat) sampai 1, atau 0% sampai 100%.
color: rgb(37 99 235); /* modern space syntax */
color: rgb(37 99 235 / 50%); /* half transparent */
color: rgba(37, 99, 235, 0.5); /* older comma syntax, same result */
rgba() dan rgb() sekarang adalah fungsi yang sama: keduanya menerima kedua sintaks dan alpha yang opsional. Kode lama memakai rgba() saat butuh transparansi, dan kode itu tetap berfungsi.
hsl(): format yang paling mudah disesuaikan
hsl() menjelaskan warna seperti cara orang memikirkannya: hue dari roda warna, saturation, dan lightness. Pertahankan hue dan ubah lightness untuk mendapatkan satu skala lengkap:
Baris pertama mempertahankan hue 221 dan saturation 83% lalu hanya mengubah lightness. Baris kedua berkeliling roda warna dengan saturation dan lightness yang sama.
Transparansi: alpha vs opacity
Alpha channel membuat satu warna tembus pandang. opacity membuat seluruh elemen tembus pandang, termasuk teks dan anak-anaknya:
transparent adalah kata kunci untuk hitam yang sepenuhnya transparan, rgb(0 0 0 / 0). Ini adalah background default sebagian besar elemen.
currentColor
currentColor sama dengan color milik elemen itu sendiri. Tombol yang border, ikon, dan teksnya semua memakai nilai ini bisa mengubah semuanya dengan satu deklarasi:
.button {
color: #16a34a;
border: 2px solid currentColor;
}
.button svg { fill: currentColor; }
Border sudah memakai currentColor secara default, itulah sebabnya border: 2px solid tanpa warna akan sama dengan warna teks.
Coba warna apa saja
Ketik warna dalam format apa pun. Browser membacanya dan menampilkan hasil hitungannya; warna yang tidak valid membuat contoh warnanya tidak berubah.
Coba tomato, #0f0, #2563eb80, rgb(0 0 0 / 25%), oklch(70% 0.15 150), dan color-mix(in srgb, #2563eb, white 50%).
Fungsi warna yang lebih baru
oklch(L C H): lightness, chroma, dan hue dalam ruang warna yang dirancang agar kecerahan yang sama terlihat sama terangnya. Palet yang dibuat dengannya punya lebih sedikit langkah tengah yang kusam dibanding palet HSL.color-mix(in srgb, A, B 30%): mencampur dua warna. Denganwhiteataublack, fungsi ini membuat versi terang dan gelap dari satu warna brand, dan berfungsi dengan variabel CSS:color-mix(in srgb, var(--brand), white 80%).
Keduanya berfungsi di Chrome, Firefox, dan Safari versi saat ini. Simpan warna brand di variabel CSS supaya format yang kamu pilih ada di satu tempat.
Kesalahan umum
- Lupa
#pada warna hex.color: 2563ebtidak valid dan diabaikan. - Memakai
opacityuntuk membuat background transparan. Teksnya ikut memudar. Pakai warna dengan alpha. - Mencampur pemisah di sintaks modern.
rgb(37 99, 235)tidak valid: pakai spasi semua atau koma semua. - Menganggap nama warna sama dengan desainmu.
royalbluebukan#2563eb. Salin kode yang persis. - Menilai kontras dengan mata. Periksa warna teks terhadap background-nya dengan contrast checker; 4.5:1 adalah batas minimum untuk teks isi.
Pertanyaan yang sering diajukan
Format warna apa saja yang didukung CSS?
Nama warna (red), hex (#ff0000), rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch(), dan color(), ditambah kata kunci transparent dan currentColor. Hex, rgb, dan hsl sudah mencakup hampir semua kebutuhan sehari-hari.
Apa perbedaan rgb dan rgba?
Sekarang sudah tidak ada. rgba() adalah alias lama: CSS saat ini membolehkan rgb() menerima nilai alpha (rgb(37 99 235 / 50%)), dan kedua fungsi menerima argumen yang sama di semua browser saat ini.
Bagaimana cara membuat warna transparan di CSS?
Tambahkan alpha channel: rgb(0 0 0 / 50%), hsl(221 83% 53% / 0.5), atau hex 8 digit seperti #2563eb80. Berbeda dengan opacity, cara ini hanya memudarkan satu warna itu, bukan seluruh elemen.
Apa itu HSL di CSS?
Hue, saturation, lightness. Hue adalah sudut pada roda warna (0 merah, 120 hijau, 240 biru), saturation menunjukkan seberapa pekat warnanya, dan lightness dari 0% hitam sampai 100% putih. Format ini memudahkan membuat versi yang lebih terang dan lebih gelap: cukup ubah angka terakhir.
Apa arti currentColor?
currentColor adalah nilai dari properti color milik elemen. Memakainya untuk border atau fill SVG membuat keduanya otomatis mengikuti warna teks.