Cara mengubah warna teks di HTML
Pakai property CSS color. Property ini mengatur warna teks sebuah elemen, dan setiap elemen di dalamnya mewarisi warna yang sama kecuali elemen itu mengatur warnanya sendiri.
Nama property-nya adalah color, bukan font-color atau text-color. Nama-nama itu tidak ada di CSS dan diabaikan tanpa pemberitahuan.
Kenapa jangan pakai tag font
Tutorial lama menunjukkan <font color="red">. Tag itu sudah dihapus dari HTML bertahun-tahun yang lalu: validator menandainya sebagai error, dan tag ini mencampur styling ke dalam markup, jadi mengubah sebuah warna berarti mengedit setiap tag secara manual. Browser masih menggambarnya demi kompatibilitas, dan hanya karena itulah tag ini terlihat masih berfungsi.
<!-- obsolete -->
<font color="red">Warning</font>
<!-- use this -->
<span style="color: red;">Warning</span>
<!-- or better, a class you can change in one place -->
<span class="warning">Warning</span>
Cara menulis warna
color menerima semua format warna CSS. Empat yang paling umum:
| Format | Contoh | Catatan |
|---|---|---|
| Nama | color: tomato; | 148 nama warna, praktis untuk uji coba cepat |
| Hex | color: #2563eb; | Paling umum di file desain |
| rgb() | color: rgb(37 99 235); | Merah, hijau, dan biru dari 0 sampai 255 |
| hsl() | color: hsl(221 83% 53%); | Hue, saturasi, kecerahan: mudah dibuat lebih terang atau lebih gelap |
Hex, rgb(), dan hsl() bisa menerima channel alpha untuk teks semi-transparan, misalnya #2563eb80 atau rgb(37 99 235 / 50%). Halaman CSS colors menjelaskan setiap formatnya.
Mewarnai seluruh halaman, judul, atau sebuah bagian
Atur warnanya satu kali di body dan biarkan pewarisan mengurus sisanya, lalu timpa di tempat yang perlu:
Hitam lembut seperti #111827 atau #374151 di atas putih lebih nyaman di mata daripada #000000 murni, dan tetap terbaca sebagai hitam.
Warna link
Link adalah pengecualian dari pewarisan: browser memberinya warna biru sendiri (dan ungu setelah dikunjungi), jadi warna di elemen induk tidak sampai ke link. Atur warnanya di link, atau suruh link mewarisinya:
:hover, :visited, dan :focus-visible memungkinkanmu mengubah warna per state. Halaman hover membahasnya. Kalau warna link sama dengan teks di sekitarnya, pertahankan garis bawahnya supaya link itu tetap dikenali sebagai link.
Buat teks mudah dibaca: kontras
Warna teks hanyalah separuh dari pasangannya, separuh lainnya adalah background. WCAG meminta rasio kontras minimal 4,5:1 untuk teks normal dan 3:1 untuk teks besar (sekitar 24px, atau 19px tebal).
Teks abu-abu muda bergaya placeholder adalah kegagalan yang paling umum. Developer tools di Chrome dan Firefox menampilkan rasio kontras saat kamu memeriksa warna teks.
currentColor: memakai ulang warna teks
currentColor adalah kata kunci yang nilainya sama dengan color milik elemen. Border, outline, dan ikon SVG inline bisa memakainya, jadi satu perubahan color mewarnai ulang teks sekaligus hiasannya:
Kesalahan yang sering terjadi
- Menulis
font-coloratautext-color. Property-nya adalahcolor. - Memakai tag
<font>. Tag ini sudah usang, jadi pakai CSS. - Mengira link ikut mewarisi warna. Atur
a { color: ... }ataucolor: inherit. - Warna sebagai satu-satunya penanda. "Kolom berwarna merah wajib diisi" tidak berfungsi bagi pembaca yang tidak bisa membedakan warna merah. Tambahkan teks atau ikon.
- Teks abu-abu dengan kontras rendah. Periksa rasionya: 4,5:1 atau lebih untuk teks paragraf.
- Memakai
opacityuntuk mencerahkan teks. Opacity memudarkan seluruh elemen, termasuk background dan child-nya. Pakai warna yang lebih terang atau warna dengan alpha.
Pertanyaan yang sering diajukan
Bagaimana cara mengubah warna font di HTML?
Pakai property CSS color, di stylesheet atau atribut style: <p style="color: #2563eb;">Blue text</p>. Tag lama <font color> sudah usang.
Apakah tag <font> masih didukung?
Browser masih menggambarnya supaya halaman yang sangat lama tetap berfungsi, tetapi tag ini sudah usang di HTML dan validator melaporkannya sebagai error. Pakai CSS color sebagai gantinya.
Bagaimana cara mengubah warna satu kata saja?
Bungkus kata itu dengan <span> lalu beri warna: This is <span style="color: #dc2626;">red</span>. Pakai <strong> atau <em>, bukan <span>, kalau kata itu juga penting atau perlu ditekankan.
Kenapa warna link-ku tidak berubah saat aku mengatur color di elemen induknya?
Link punya warna sendiri dari stylesheet bawaan browser, jadi link tidak mewarisi warna elemen induknya. Atur warnanya di link itu sendiri (a { color: #2563eb; }) atau pakai a { color: inherit; } supaya mengikuti elemen induk.
Di CSS yang benar font-color atau color?
Yang benar color. Tidak ada property font-color atau text-color, dan browser mengabaikannya.