İçeriğe geç
Cervus Core
Tasarım Sistemi

Hazır bir palet yerine OKLCH ile jeton tasarladım

· 1 dk okuma

  • tasarim-sistemi
  • css
  • erisilebilirlik
OKLCH renk uzayında açıklık, ton ve doygunluk eksenlerini gösteren basit bir şema.

Hazır bir renk paleti seçmek yerine neden kendi jeton sistemimi kurduğumu anlatayım.

Hex neden yetmiyor

#808080 ile #0080ff sayısal olarak aynı "orta" bölgede dursa da gözde aynı koyulukta görünmüyor. Hex, üç kanalı (kırmızı, yeşil, mavi) birlikte kodladığı için "bu rengi biraz daha açık yap" demek üç sayıyı birlikte tahmin etmek anlamına geliyor.

OKLCH'de birinci bileşen algısal açıklıktır: %48 iki farklı renk tonunda da aynı koyulukta görünür. Bu, koyu tema karşılıklarını tahminle değil hesapla üretmeyi mümkün kılıyor.

Jeton adları rolü anlatır

Jetonlarımı surface, ink, brand gibi işlev adlarıyla adlandırdım — bg-amber gibi görünüş adıyla değil. Gerekçesi basit: marka rengi değiştiğinde bg-amber adının kendisi yalan söylemeye başlar, ama bg-brand her zaman doğru kalır.

--surface: oklch(98.8% 0.006 78);
--ink: oklch(22% 0.014 70);
--brand: oklch(52% 0.15 76);

| Jeton adı | Kullanım alanı | Örnek eşleşme | | ------------- | ------------------------ | --------------------------- | | surface | Sayfa arka planı | Açık temada neredeyse beyaz | | ink | Gövde metni ve başlıklar | Koyu, ılık nötr | | brand | Bağlantı, birincil eylem | Amber/ocher | | line-strong | Etkileşimli öge kenarı | Form alanı çevresi |

Kontrastı elle değil betikle doğruluyorum

Kontrast tablosunu elle yazmadım; bir betik jeton değerlerinden hesaplayıp üretiyor. Elle yazılan bir tablo, jetonlar değiştiği anda sessizce yalan söylemeye başlar — betik bunu imkânsız kılıyor.

Açık temada gövde metni

16.7:1

eşik: 4.5:1

Koyu temada gövde metni

15.3:1

eşik: 4.5:1

Kapanış

Bu disiplin "tutarlılığı garanti ediyor, özgünlüğü garanti etmiyor" — ikisi ayrı işler. Jeton sistemi bana renk değiştiğinde her yerin doğru güncellendiğini garanti ediyor; rengin kendisinin "iyi bir seçim" olup olmadığına dair hiçbir şey söylemiyor. O karar ayrı bir yargı, bu yazının konusu değil.

Abdullah Balat

Kurucu ve geliştirici

Bu siteyi kuran, tasarlayan ve içeriğini yazan kişiyim. Hakkımda daha fazlası →

Yorumlar

Yakında

Yorum alanı henüz aktif değil; GitHub Discussions tabanlı bir sistem hazırlanıyor.

Bülten

Yakında

Yeni yazı ve ders yayınlandığında haber vermek için bir bülten hazırlıyorum. Kayıt formu şu an pasif; aktif olduğunda burada duyurulacak.