OKLCH nedir: gözünüzün gördüğüyle sonunda örtüşen renk formatı
OKLCH bir rengi ne kadar açık göründüğüyle, ne kadar canlı olduğuyla ve hangi tonda olduğuyla tanımlar. HSL’den farklı olarak aynı açıklık değeri her tonda gerçekten aynı açıklıkta görünür. Bu da paletleri, hover durumlarını ve erişilebilir kontrastı öngörülebilir kılar.
3 dk okuma
OKLCH nedir
OKLCH, Björn Ottosson’un 2020’de yayımladığı algısal renk uzayı Oklab’ın kutupsal biçimidir. Üç sayıdan oluşur. L algılanan açıklıktır: 0 (siyah) ile 1 ya da %100 (beyaz) arasında değişir. C kromadır, yani rengin miktarı: 0 (gri) ile ekranların gösterebildiği en canlı renkler için yaklaşık 0,37 arasındadır. H ise 0 ile 360 derece arasındaki ton açısıdır.
Aynı renk farklı formatlarda şöyle yazılır. Aşağıdaki tüm değerleri PickShade anlık olarak hesaplar, bu yüzden olduğu gibi kopyalayabilirsiniz.
| Format | Değer |
|---|---|
| HEX | |
| RGB | |
| HSL | |
| OKLCH | |
| OKLab |
OKLCH neden HSL’den iyidir
HSL’deki açıklık bir algı değil, bir formüldür. hsl(60 100% 50%) parlak bir sarı, hsl(240 100% 50%) ise koyu bir mavidir, ama ikisi de %50 açıklıkta olduğunu iddia eder. Paleti HSL üzerine kurarsanız her tonu elle düzeltmeniz gerekir.
OKLCH’de L değeri aynı olan renkler aynı açıklıkta görünür. L ve C’yi sabit tutup H’yi döndürerek dengeli duran bir ton seti elde edebilir, H ve C’yi sabit tutup L’yi adım adım değiştirerek temiz bir kademe skalası kurabilirsiniz. Tailwind CSS v4’ün tüm varsayılan paletini OKLCH ile tanımlamasının nedeni budur.
Açıklık kontrastı da öngörür. Arka planıyla arasındaki L farkı yaklaşık 0,4 veya daha fazla olan metin genellikle okunaklıdır. Bu da erişilebilir renk seçimlerini çok daha kolay değerlendirilebilir kılar.
CSS’te sözdizimi
Açıklık yüzde olarak ya da 0 ile 1 arasında bir sayı olarak yazılabilir. Kroma bir sayıdır. Ton, derece cinsinden bir açıdır. Şeffaflık eğik çizgiden sonra gelir.
CSS
color: oklch(62.8% 0.258 29.23);
background: oklch(0.7 0.15 250 / 50%);
border-color: oklch(from var(--brand) calc(l - 0.1) c h);Tarayıcı desteği
oklch() tüm güncel tarayıcılarda çalışır: Safari 15.4’ten, Chrome ve Edge 111’den, Firefox 113’ten beri. Bu, kullanıcıların %90’ından fazlasını rahatlıkla kapsar. Çok eski tarayıcılar için OKLCH değerinin bir üst satırına HEX yedeği ekleyin.
CSS
color: #ff5733;
color: oklch(68% 0.21 33.7);Kroma sınırları ve renk gamı
OKLCH hiçbir ekranın gösteremeyeceği renkleri de tanımlayabilir. Ulaşılabilecek en yüksek kroma açıklığa ve tona bağlıdır: canlı bir sarı yalnızca yüksek açıklıkta, canlı bir mavi yalnızca düşük açıklıkta mümkündür. Bir değer sRGB ya da Display P3 renk gamının dışında kaldığında tarayıcı onu gamın içine geri eşler ve bu, rengi kaydırabilir.
PickShade sRGB dışında kalan renkleri işaretler ve size gama sığan en yakın rengi verir. Bu renk, açıklık ve ton korunup kroma düşürülerek bulunur. CSS Color 4’ün önerdiği yöntem de budur.
HEX’i OKLCH’ye nasıl dönüştürürsünüz
Dönüşüm şu adımlarla ilerler: HEX’ten sRGB’ye, sRGB’den doğrusal ışığa, doğrusal sRGB’den LMS koni uzayına, ardından küp kök, Oklab’a götüren bir matris ve son olarak Oklab’dan kutupsal koordinatlara. Bunu elle yapmak hataya açıktır. Herhangi bir rengi dönüştürücüye yapıştırın ve sonucu kopyalayın.
Sorular ve yanıtlar
OKLCH tüm tarayıcılarda destekleniyor mu?
Evet, tüm güncel tarayıcılarda: Safari 15.4 ve üzeri, Chrome ve Edge 111 ve üzeri, Firefox 113 ve üzeri. Eski tarayıcıları desteklemeniz gerekiyorsa önüne bir HEX satırı ekleyin.
OKLCH ile LCH arasındaki fark nedir?
İkisi de açıklığı, kromayı ve tonu tanımlar. CSS lch() CIELAB’a dayanır ve açıklığı değiştirdiğinizde maviler mora kayar. OKLCH ise tonu sabit tutan Oklab’a dayanır, bu yüzden mavinin kademeleri mavi kalır.
OKLCH rengim neden yazdığımdan farklı görünüyor?
Kroma büyük olasılıkla ekranınızın o açıklık ve tonda gösterebileceğinden yüksek. Tarayıcı rengi ekranın renk gamına eşler. PickShade rengi gam dışı olarak işaretlemeyi bırakana kadar kromayı düşürün.
OKLCH’yi Tailwind CSS ile kullanabilir miyim?
Evet. Tailwind CSS v4 varsayılan paletinde zaten OKLCH kullanır ve @theme içindeki özel renkler doğrudan OKLCH ile yazılabilir.