Tailwind CSS renkleri: v4 OKLCH paleti, özel renkler ve kademeler
Tailwind CSS v4, her biri 50’den 950’ye 11 kademeli 26 renk skalasıyla gelir; toplam 286 renk OKLCH ile, --color-blue-500 gibi CSS değişkenleri olarak tanımlanmıştır. Kendi renklerinizi @theme { --color-brand-500: oklch(...) } ile eklersiniz. Aynı kademe numarası aynı açıklık anlamına gelmez: blue-600 beyaz üzerinde 4,5:1’i geçen en açık mavidir, yellow ise 700’e ihtiyaç duyar.
6 dk okuma
Tailwind renk paleti nasıl yapılandırılmıştır
Tailwind v4.3’teki varsayılan palette 26 adlandırılmış skala var. On yedisi kromatik: red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink ve rose. Dokuzu nötr: v3’ten gelen slate, gray, zinc, neutral ve stone ile v4 sürecinde eklenen mauve, olive, mist ve taupe. Bunlara siyah ve beyaz da eklenir.
Her skalada aynı 11 kademe bulunur: 50, 100, 200’den 900’e kadar ve 950. 50 neredeyse beyaz, 950 neredeyse siyahtır. Bir sınıf utility, renk ve kademeden oluşur: bg-blue-500, text-rose-700, border-zinc-200.
Kademe numarası bir açıklık değeri değil, skaladaki bir konumdur. 500 kademesi gray’de %55,1 OKLCH açıklığından yellow’da %79,5’e kadar değişir; bu yüzden yellow-500 ve blue-500 metin rengi olarak çok farklı davranır.
| Sınıf | OKLCH değeri | Hex yedeği | Beyaz üzerinde kontrast |
|---|---|---|---|
| yellow-500 | oklch(79.5% 0.184 86.047) | #efb100 | 1.92:1 |
| amber-500 | oklch(76.9% 0.188 70.08) | #fd9a00 | 2.14:1 |
| green-500 | oklch(72.3% 0.219 149.579) | #00c950 | 2.22:1 |
| cyan-500 | oklch(71.5% 0.143 215.221) | #00b8db | 2.37:1 |
| orange-500 | oklch(70.5% 0.213 47.604) | #ff6900 | 2.89:1 |
| red-500 | oklch(63.7% 0.237 25.331) | #fb2c36 | 3.81:1 |
| blue-500 | oklch(62.3% 0.214 259.815) | #2b7fff | 3.76:1 |
| indigo-500 | oklch(58.5% 0.233 277.117) | #615fff | 4.58:1 |
| gray-500 | oklch(55.1% 0.027 264.364) | #6a7282 | 4.84:1 |
Tailwind mavisi: OKLCH, hex ve kontrastla her kademe
Aşağıda Tailwind v4’ün tanımladığı haliyle tam mavi skala var. Hex sütunu, açıklık ve ton korunup kroma düşürülerek bulunan en yakın sRGB rengidir. Kontrast oranları bu hex üzerinden ölçülmüş WCAG 2 değerleridir.
Blue-600, beyaz üzerinde gövde metni için 4,5:1’i geçen ilk kademedir. Blue-500 siyah üzerinde 5,58:1 ile geçer, ama beyaz üzerinde 3,76:1 ile kalır. Hiçbir mavi kademe ikisinde birden 4,5:1’i geçmez, bu yüzden açık ve koyu temalar farklı kademeler ister.
| Sınıf | OKLCH değeri | Hex yedeği | Beyaz üzerinde | Siyah üzerinde |
|---|---|---|---|---|
| blue-50 | oklch(97% 0.014 254.604) | #eff6ff | 1.09:1 | 19.30:1 |
| blue-100 | oklch(93.2% 0.032 255.585) | #dbeafe | 1.22:1 | 17.21:1 |
| blue-200 | oklch(88.2% 0.059 254.128) | #bedbff | 1.42:1 | 14.77:1 |
| blue-300 | oklch(80.9% 0.105 251.813) | #8ec5ff | 1.81:1 | 11.58:1 |
| blue-400 | oklch(70.7% 0.165 254.624) | #51a2ff | 2.64:1 | 7.96:1 |
| blue-500 | oklch(62.3% 0.214 259.815) | #2b7fff | 3.76:1 | 5.58:1 |
| blue-600 | oklch(54.6% 0.245 262.881) | #155dfc | 5.25:1 | 4.00:1 |
| blue-700 | oklch(48.8% 0.243 264.376) | #1447e6 | 6.83:1 | 3.07:1 |
| blue-800 | oklch(42.4% 0.199 265.638) | #193cb8 | 8.82:1 | 2.38:1 |
| blue-900 | oklch(37.9% 0.146 265.522) | #1c398e | 10.37:1 | 2.03:1 |
| blue-950 | oklch(28.2% 0.091 267.935) | #162456 | 14.78:1 | 1.42:1 |
Hangi Tailwind kademeleri beyaz üzerinde WCAG AA’yı geçer
Geçen en açık kademe tona bağlıdır. Orange, amber, yellow, lime ile green, emerald, teal, cyan ve sky tonları 500’de hâlâ açıktır, bu yüzden gövde metni için 700 gerekir. Red, blue, violet, purple, fuchsia, pink ve rose 600’de, indigo ise daha 500’de geçer. Yellow istisnadır: yellow-600 bile 2,93:1 ile büyük metinde kalır.
Açıklık, sonucu kademe numarasından daha iyi tahmin eder. 286 rengin tamamında OKLCH açıklığı %58’in altındaki her kademe beyaz üzerinde 4,5:1’i geçer, %59,2’nin üzerindeki her kademe kalır. Sınıf değerindeki L’yi okuyun, test etmeden cevabı bilirsiniz.
| Renk | 4.5:1 için en açık kademe | Hex | Oran | 3:1 için en açık kademe |
|---|---|---|---|---|
| red | 600 | #e7000b | 4.77:1 | 500 |
| orange | 700 | #ca3500 | 5.22:1 | 600 |
| amber | 700 | #bb4d00 | 5.03:1 | 600 |
| yellow | 700 | #a65f00 | 4.93:1 | 700 |
| lime | 700 | #497d00 | 4.98:1 | 600 |
| green | 700 | #008236 | 4.95:1 | 600 |
| emerald | 700 | #007a55 | 5.36:1 | 600 |
| teal | 700 | #00786f | 5.36:1 | 600 |
| cyan | 700 | #007595 | 5.28:1 | 600 |
| sky | 700 | #0069a8 | 5.86:1 | 600 |
| blue | 600 | #155dfc | 5.25:1 | 500 |
| indigo | 500 | #615fff | 4.58:1 | 400 |
| violet | 600 | #7f22fe | 5.89:1 | 500 |
| purple | 600 | #9810fa | 5.54:1 | 500 |
| fuchsia | 600 | #c800de | 4.66:1 | 500 |
| pink | 600 | #e60076 | 4.54:1 | 500 |
| rose | 600 | #ec003f | 4.53:1 | 500 |
| gray | 500 | #6a7282 | 4.84:1 | 500 |
| olive | 600 | #5b5b4b | 6.90:1 | 500 |
Olive dışındaki tüm nötrler 500’de geçer. Olive-500 sarımsı bir tonla %58 açıklıktadır ve yalnızca 4,25:1’e ulaşır, bu yüzden gray-500 ve olive-500 metinler birbirinin yerine kullanılamaz.
Tailwind v3 ile v4 renkleri
v3, renkleri tailwind.config.js içinde theme.extend.colors altında hex değerleri olarak tanımlıyordu. v4 yapılandırmayı CSS’e taşır: renkler @theme içinde OKLCH ile yazılmış tema değişkenleridir ve CSS değişkenleri olarak sunulur, böylece var(--color-blue-500) düz CSS’te ve satır içi stillerde çalışır.
Paletin kendisi yeniden çizilmedi, yalnızca ince ayar yapıldı. OKLCH’ye çevrildiğinde v3 blue-500 (#3b82f6), v4 blue-500 ile tam olarak aynı açıklık ve tona sahiptir. Yalnızca kroma 0,188’den 0,214’e yükseldi. Mavi skalanın geri kalanı da aynı düzeni izler; tek istisna 0,7 puan daha koyulaşan blue-400’dür. Renkler daha canlı görünürken kontrast neredeyse hiç değişmez.
Bu ek kroma sRGB’nin ötesine uzanır. v4’ün 286 renginden 94’ü sRGB dışında ve Display P3 içindedir, hepsi de kromatiktir. Orange’ın 11 kademesinden 9’u dışarıda, blue’nun 4’ü (200’den 500’e). P3 ekranda rengin tamamını görürsünüz, sRGB ekranda ise tarayıcı yakın bir renk gösterir. v4, Safari 16.4, Chrome 111 ve Firefox 128 veya daha yenisini hedefler; hepsi oklch() anlar.
| Sınıf | v3 hex | v4 hex yedeği | Kroma v3 → v4 | Beyaz üzerinde v3 → v4 |
|---|---|---|---|---|
| blue-400 | #60a5fa | #51a2ff | 0.143 → 0.165 | 2.54 → 2.64 |
| blue-500 | #3b82f6 | #2b7fff | 0.188 → 0.214 | 3.68 → 3.76 |
| blue-600 | #2563eb | #155dfc | 0.215 → 0.245 | 5.17 → 5.25 |
| blue-700 | #1d4ed8 | #1447e6 | 0.217 → 0.243 | 6.70 → 6.83 |
CSS
@theme {
--color-blue-500: oklch(62.3% 0.214 259.815);
}
.card {
border-color: var(--color-blue-500);
}Tailwind v4’te özel renkler nasıl eklenir
@theme içinde --color- ad alanında bir değişken tanımlayın. --color- sonrasındaki kısım sınıf adı olur; --color-brand size bg-brand, text-brand, border-brand, ring-brand ve diğer tüm renk utility’lerini, ayrıca CSS’te var(--color-brand) değerini verir. Hex, rgb(), hsl() ve oklch() değerlerinin hepsi kabul edilir.
Varsayılan paleti genişletmek yerine değiştirmek için önce ad alanını --color-*: initial ile sıfırlayın, sonra yalnızca istediğiniz renkleri tanımlayın. Utility’ler yalnızca gerçekten kullandığınız sınıflar için üretilir, bu yüzden çoğu proje varsayılanları korur.
CSS
@import 'tailwindcss';
@theme {
--color-brand: #e4572e;
--color-ink: oklch(21% 0.02 260);
}Tek bir vurgu rengi için tek bir --color-brand yeterlidir. Hover durumlarına, renklendirilmiş arka planlara ya da koyu moda ihtiyaç duyduğunuz anda numaralı kademelerle tam bir skala tanımlayın.
50’den 950’ye tam bir özel skala nasıl oluşturulur
Aşağıdaki skala #e4572e’den üretildi. Bu rengin %63,7’lik açıklığı 500 kademesine denk geldiği için marka rengi tam olarak 500’de kalır. Diğer kademeler Tailwind’in açıklık eğrisini izler ve aynı tonu korur; kroma 500 ve 600’de zirve yapıp iki uca doğru azalır. Hepsi sRGB içine sığdığı için hex değerleri kesindir.
Tailwind’in kendi sıcak tonları gibi bu skala da beyaz üzerinde gövde metni için 600 ister. Brand-500 3,68:1 verir; bu yalnızca büyük metin ve ikonlar için yeterlidir.
| Sınıf | Hex | Beyaz üzerinde |
|---|---|---|
| brand-50 | #fcf3f0 | 1.09:1 |
| brand-100 | #fae4de | 1.22:1 |
| brand-200 | #f8cec3 | 1.44:1 |
| brand-300 | #f3ae9a | 1.85:1 |
| brand-400 | #ed7d5e | 2.73:1 |
| brand-500 | #e4572e | 3.68:1 |
| brand-600 | #ce3a00 | 4.97:1 |
| brand-700 | #ae3000 | 6.52:1 |
| brand-800 | #912600 | 8.46:1 |
| brand-900 | #77260e | 10.15:1 |
| brand-950 | #441508 | 15.48:1 |
CSS
@theme {
--color-brand-50: oklch(97% 0.01103 36.478);
--color-brand-100: oklch(93.477% 0.02574 36.478);
--color-brand-200: oklch(88.485% 0.04964 36.478);
--color-brand-300: oklch(81.145% 0.08641 36.478);
--color-brand-400: oklch(71.064% 0.14524 36.478);
--color-brand-500: oklch(63.723% 0.18385 36.478);
--color-brand-600: oklch(56.583% 0.19167 36.478);
--color-brand-700: oklch(49.952% 0.16921 36.478);
--color-brand-800: oklch(43.729% 0.14814 36.478);
--color-brand-900: oklch(38.935% 0.11766 36.478);
--color-brand-950: oklch(27% 0.07538 36.478);
}Yapıştırırken tam hassasiyeti koruyun. Açıklığı %0,1’e ve kromayı üç ondalığa yuvarlamak brand-600’ü sRGB’nin hemen dışına iter; bu zararsızdır ama artık hex ile birebir eşleşmez.
bg-blue-500/50 gibi opaklık değiştiricileri nasıl çalışır
Renkten sonra gelen eğik çizgi alfasını belirler: bg-blue-500/50, %50 opaklıktaki blue-500’dür. v3 bunu rgb(59 130 246 / 0.5) olarak derliyordu ve bu yalnızca Tailwind’in kanallara ayırabildiği renklerde çalışıyordu. CSS değişkeni olarak tanımlanan özel renkler için özel bir rgb(var(--brand) / <alpha-value>) biçimi gerekiyordu.
v4, değiştiriciyi Oklab’da color-mix() olarak derler ve rengi transparent ile karıştırır. Bu her renkle çalışır: tema değişkenleri, bg-[#e4572e]/50 gibi keyfi değerler ve kendi CSS değişkenleriniz.
Opaklık kontrastı değiştirir. Beyaz üzerinde blue-500/50 #95bfff, blue-500/10 ise #eaf2ff olarak görünür. blue-600 metin 5,25:1 ile okunur, ama text-blue-600/60 2,62:1’e düşer ve büyük metinde bile kalır.
- blue-500#2b7fff
- Beyaz üzerinde blue-500/50#95bfff
- Beyaz üzerinde blue-500/20#d5e5ff
- Beyaz üzerinde blue-500/10#eaf2ff
CSS
.bg-blue-500\/50 {
background-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
}Herhangi bir hex için en yakın Tailwind sınıfı nasıl bulunur
Hex değerini 286 kademenin hepsiyle Oklab’daki algısal mesafeye (ΔEOK) göre karşılaştırın. Yaklaşık 0,02’nin altında fark yan yana bile zor görülür, bu yüzden Tailwind sınıfı renginizin yerini alabilir. Yaklaşık 0,04’ün üzerinde ise özel bir renk ekleyin.
Tablo gerçek eşleşmeleri gösteriyor. Eski v3 hex değerleri aynı v4 sınıfına geri eşlenirken, #ff5733 gibi tipik bir marka turuncusu orange-600 ile red-400 arasına düşer. PickShade Tailwind sayfası bu aramayı her renk için yapar ve en yakın üç sınıfı gösterir.
| Renginiz | En yakın v4 sınıfı | Sınıfın hex yedeği | ΔEOK |
|---|---|---|---|
| #635bff | indigo-500 | #615fff | 0.008 |
| #1da1f2 | sky-500 | #00a6f4 | 0.020 |
| #10b981 | emerald-500 | #00bc7d | 0.021 |
| #3b82f6 | blue-500 | #2b7fff | 0.026 |
| #e4572e | orange-600 | #f54900 | 0.042 |
| #ff5733 | orange-600 | #f54900 | 0.046 |
Sorular ve yanıtlar
Tailwind CSS’te kaç renk var?
Tailwind CSS v4.3’te her biri 50’den 950’ye 11 kademeli 26 renk skalası bulunur; bu da siyah ve beyaza ek olarak 286 renk eder. Skalaların on yedisi kromatik, dokuzu nötrdür: slate, gray, zinc, neutral, stone, mauve, olive, mist ve taupe.
Tailwind blue-500’ün hex kodu nedir?
Tailwind v4’te blue-500, sRGB’nin biraz dışında kalan oklch(62.3% 0.214 259.815) değeridir; en yakın hex karşılığı #2b7fff’tir. Tailwind v3’te blue-500 #3b82f6 idi: açıklığı ve tonu aynı, kroması daha düşüktü.
Tailwind v4’te özel renkler nasıl eklenir?
CSS dosyanızda @theme içine --color- ad alanında bir değişken ekleyin, örneğin @theme { --color-brand-500: oklch(63.7% 0.184 36.48); }. Tailwind ardından bg-brand-500, text-brand-500 ve diğer tüm renk utility’lerini üretir; değer var(--color-brand-500) olarak da kullanılabilir.
Hangi Tailwind renkleri beyaz arka planda erişilebilirdir?
Beyaz üzerinde 4,5:1 gövde metni için red, blue, violet, purple, fuchsia, pink ve rose’da 600; orange, amber, yellow, lime, green, emerald, teal, cyan ve sky’da 700; indigo ve çoğu nötrde 500 kullanın. Nötrler arasında istisna olive’dir ve 600 gerektirir.
Tailwind v4 renkleri neden v3’ten daha doygun görünüyor?
Tailwind v4 renkleri OKLCH ile tanımlar ve kromalarını artırdı. Örneğin mavi skalada açıklık ve ton neredeyse tamamen v3’teki gibi kaldı, orta kademelerin kroması ise 0,02 ile 0,03 arasında arttı. 286 rengin 94’ü artık sRGB dışında ve daha geniş Display P3 gamutunu kullanıyor, bu yüzden yeni iPhone ve Mac’ler gibi P3 ekranlarda daha canlı görünür.
Tailwind v4 @theme içinde hex renkler kullanabilir miyim?
Evet. Tema değişkenleri hex, rgb(), hsl() ve oklch() dahil her CSS rengini kabul eder. Opaklık değiştiricileri hepsiyle çalışır, çünkü v4 onları color-mix() ile oluşturur.