Modern Color Functions — CSS

rgb() dan hsl() dirancang untuk CRT monitor tahun 1990. Layar modern (OLED, wide-gamut) bisa menampilkan warna jauh lebih kaya — CSS modern menambah fungsi warn

rgb() dan hsl() dirancang untuk CRT monitor tahun 1990. Layar modern (OLED, wide-gamut) bisa menampilkan warna jauh lebih kaya — CSS modern menambah fungsi warna yang sesuai dengan kemampuan itu dan dengan cara kerja persepsi mata manusia.

oklch() — warna "persepsi-seragam":

.brand {
  /* Lightness, Chroma, Hue */
  background: oklch(70% 0.15 200);
}

oklch() dirancang agar perubahan Lightness yang sama menghasilkan perubahan kecerahan yang sama di mata. Gradient oklch jauh lebih halus dari rgb/hsl.

color() — pilih gamut warna eksplisit:

.foto {
  /* Pakai gamut Display P3 (iPhone, Mac modern) */
  background: color(display-p3 1 0 0);  /* merah lebih jenuh dari sRGB */
}

color-mix() — mencampur dua warna:

:root {
  --brand: oklch(60% 0.2 240);
}

.hover {
  /* 80% brand + 20% putih — versi lebih terang */
  background: color-mix(in oklch, var(--brand), white 20%);
}

light-dark() — satu property untuk dua mode:

body {
  color-scheme: light dark;
  background: light-dark(white, black);
  color: light-dark(black, white);
}

Fallback pattern (pakai @supports):

.card {
  background: #4f9cf9; /* fallback untuk browser lama */
}
@supports (color: oklch(0% 0 0)) {
  .card { background: oklch(65% 0.14 240); }
}

Rekomendasi praktis:

🎭 Analogi sehari-hari

Bandingin TV jadul jaman 90-an sama TV OLED modern. TV jadul cuma bisa nampilin spektrum warna terbatas — warna ungu deep keliatan kayak hitam buram. TV modern bisa nampilin warna jauh lebih kaya, lebih natural, gradasi mulus tanpa garis-garis. Format warna CSS lama (rgb, hsl) dirancang buat layar CRT 1990. Format modern (oklch, color-mix, light-dark) dirancang buat era OLED — gradient lebih halus, warna lebih akurat, tools lebih powerful buat rebrand cepat.

⚠️ Jebakan yang sering ditemui

Yang akan kamu pelajari