Zum Farbwähler springen

Tailwind-CSS-Farben: die v4-Palette in OKLCH, eigene Farben und Abstufungen

Tailwind CSS v4 bringt 26 Farbskalen mit je 11 Abstufungen von 50 bis 950 mit, insgesamt 286 Farben, definiert in OKLCH als CSS-Variablen wie --color-blue-500. Eigene Farben fügst du mit @theme { --color-brand-500: oklch(...) } hinzu. Dieselbe Stufennummer bedeutet nicht dieselbe Helligkeit: blue-600 ist das hellste Blau, das auf Weiß 4.5:1 erreicht, Gelb braucht dafür 700.

Lesezeit: 6 Min.

So ist die Tailwind-Farbpalette aufgebaut

Die Standardpalette in Tailwind v4.3 hat 26 benannte Skalen. Siebzehn davon sind bunt: red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink und rose. Neun sind neutral: slate, gray, zinc, neutral und stone aus v3 sowie mauve, olive, mist und taupe, die im Lauf von v4 dazukamen. Dazu kommen black und white.

Jede Skala hat dieselben 11 Stufen: 50, 100, 200 bis 900 und 950. 50 ist fast Weiß, 950 fast Schwarz. Eine Klasse besteht aus Utility, Farbe und Stufe: bg-blue-500, text-rose-700, border-zinc-200.

Die Stufennummer ist eine Position in der Skala, kein Helligkeitswert. Stufe 500 reicht von 55.1 % OKLCH-Helligkeit bei gray bis 79.5 % bei yellow. Deshalb verhalten sich yellow-500 und blue-500 als Textfarben sehr unterschiedlich.

KlasseOKLCH-WertHex-FallbackKontrast auf Weiß
yellow-500oklch(79.5% 0.184 86.047)#efb1001.92:1
amber-500oklch(76.9% 0.188 70.08)#fd9a002.14:1
green-500oklch(72.3% 0.219 149.579)#00c9502.22:1
cyan-500oklch(71.5% 0.143 215.221)#00b8db2.37:1
orange-500oklch(70.5% 0.213 47.604)#ff69002.89:1
red-500oklch(63.7% 0.237 25.331)#fb2c363.81:1
blue-500oklch(62.3% 0.214 259.815)#2b7fff3.76:1
indigo-500oklch(58.5% 0.233 277.117)#615fff4.58:1
gray-500oklch(55.1% 0.027 264.364)#6a72824.84:1

Tailwind Blau: alle Abstufungen mit OKLCH, Hex und Kontrast

Hier die komplette Blau-Skala, wie Tailwind v4 sie definiert. Die Hex-Spalte zeigt die nächstgelegene sRGB-Farbe, gefunden durch Absenken des Chromas bei gleicher Helligkeit und gleichem Farbton. Die Kontrastwerte sind WCAG-2-Werte, gemessen an diesem Hex.

Blue-600 ist die erste Stufe, die auf Weiß 4.5:1 für Fließtext erreicht. Blue-500 besteht auf Schwarz mit 5.58:1, scheitert aber auf Weiß mit 3.76:1. Keine Blau-Stufe schafft 4.5:1 auf beiden, helles und dunkles Theme brauchen also verschiedene Stufen.

KlasseOKLCH-WertHex-FallbackAuf WeißAuf Schwarz
blue-50oklch(97% 0.014 254.604)#eff6ff1.09:119.30:1
blue-100oklch(93.2% 0.032 255.585)#dbeafe1.22:117.21:1
blue-200oklch(88.2% 0.059 254.128)#bedbff1.42:114.77:1
blue-300oklch(80.9% 0.105 251.813)#8ec5ff1.81:111.58:1
blue-400oklch(70.7% 0.165 254.624)#51a2ff2.64:17.96:1
blue-500oklch(62.3% 0.214 259.815)#2b7fff3.76:15.58:1
blue-600oklch(54.6% 0.245 262.881)#155dfc5.25:14.00:1
blue-700oklch(48.8% 0.243 264.376)#1447e66.83:13.07:1
blue-800oklch(42.4% 0.199 265.638)#193cb88.82:12.38:1
blue-900oklch(37.9% 0.146 265.522)#1c398e10.37:12.03:1
blue-950oklch(28.2% 0.091 267.935)#16245614.78:11.42:1

Welche Tailwind-Abstufungen WCAG AA auf Weiß bestehen

Die hellste bestehende Stufe hängt vom Farbton ab. Orange, Amber, Gelb, Lime sowie die Grün-, Teal-, Cyan- und Himmelblautöne sind bei 500 noch hell und brauchen für Fließtext 700. Red, blue, violet, purple, fuchsia, pink und rose bestehen ab 600, indigo schon ab 500. Gelb ist der Ausreißer: Selbst yellow-600 scheitert mit 2.93:1 an großem Text.

Die Helligkeit sagt das Ergebnis besser voraus als die Stufennummer. Über alle 286 Farben hinweg besteht jede Abstufung mit einer OKLCH-Helligkeit unter 58 % die 4.5:1 auf Weiß, und jede über 59.2 % scheitert. Lies das L im Klassenwert, und du kennst die Antwort, bevor du testest.

FarbeHellste Stufe für 4.5:1HexVerhältnisHellste Stufe für 3:1
red600#e7000b4.77:1500
orange700#ca35005.22:1600
amber700#bb4d005.03:1600
yellow700#a65f004.93:1700
lime700#497d004.98:1600
green700#0082364.95:1600
emerald700#007a555.36:1600
teal700#00786f5.36:1600
cyan700#0075955.28:1600
sky700#0069a85.86:1600
blue600#155dfc5.25:1500
indigo500#615fff4.58:1400
violet600#7f22fe5.89:1500
purple600#9810fa5.54:1500
fuchsia600#c800de4.66:1500
pink600#e600764.54:1500
rose600#ec003f4.53:1500
gray500#6a72824.84:1500
olive600#5b5b4b6.90:1500

Alle neutralen Skalen außer olive bestehen ab 500. Olive-500 liegt bei 58 % Helligkeit mit gelblichem Farbton und erreicht nur 4.25:1. Text in gray-500 und in olive-500 ist also nicht austauschbar.

Tailwind-Farben: v3 und v4 im Vergleich

v3 definierte Farben als Hex-Werte in tailwind.config.js unter theme.extend.colors. v4 verlagert die Konfiguration in CSS: Farben sind Theme-Variablen in @theme, in OKLCH geschrieben und als CSS-Variablen verfügbar. So funktioniert var(--color-blue-500) auch in normalem CSS und in Inline-Styles.

Die Palette selbst wurde nachjustiert, nicht neu gezeichnet. In OKLCH umgerechnet hat blue-500 aus v3 (#3b82f6) exakt dieselbe Helligkeit und denselben Farbton wie blue-500 aus v4. Nur das Chroma stieg, von 0.188 auf 0.214. Der Rest der Blau-Skala folgt demselben Muster, außer blue-400, das zusätzlich 0.7 Punkte dunkler wurde. Der Kontrast ändert sich kaum, die Farben wirken aber kräftiger.

Dieses zusätzliche Chroma reicht über sRGB hinaus. 94 der 286 v4-Farben liegen außerhalb von sRGB und innerhalb von Display P3, alle davon bunt. Bei Orange liegen 9 von 11 Stufen außerhalb, bei Blau 4 (200 bis 500). Auf einem P3-Bildschirm siehst du die volle Farbe, auf einem sRGB-Bildschirm zeigt der Browser eine nahe Farbe. v4 setzt Safari 16.4, Chrome 111 und Firefox 128 oder neuer voraus, die alle oklch() verstehen.

KlasseHex v3Hex-Fallback v4Chroma v3 zu v4Auf Weiß v3 zu v4
blue-400#60a5fa#51a2ff0.143 zu 0.1652.54 zu 2.64
blue-500#3b82f6#2b7fff0.188 zu 0.2143.68 zu 3.76
blue-600#2563eb#155dfc0.215 zu 0.2455.17 zu 5.25
blue-700#1d4ed8#1447e60.217 zu 0.2436.70 zu 6.83

CSS

@theme {
    --color-blue-500: oklch(62.3% 0.214 259.815);
}

.card {
    border-color: var(--color-blue-500);
}

So fügst du in Tailwind v4 eigene Farben hinzu

Deklariere in @theme eine Variable im Namensraum --color-. Der Teil nach --color- wird zum Klassennamen: --color-brand liefert bg-brand, text-brand, border-brand, ring-brand und jede andere Farb-Utility, dazu var(--color-brand) in CSS. Hex, rgb(), hsl() und oklch() werden alle akzeptiert.

Um die Standardpalette zu ersetzen statt zu erweitern, setzt du den Namensraum zuerst mit --color-*: initial zurück und definieren dann nur die gewünschten Farben. Utilities entstehen nur für Klassen, die du tatsächlich verwendest, deshalb behalten die meisten Projekte die Standardfarben.

CSS

@import 'tailwindcss';

@theme {
    --color-brand: #e4572e;
    --color-ink: oklch(21% 0.02 260);
}

Ein einzelnes --color-brand reicht für eine Akzentfarbe. Sobald du Hover-Zustände, getönte Hintergründe oder einen Dark Mode brauchst, definierst du eine vollständige Skala mit nummerierten Stufen.

So baust du eine eigene Skala von 50 bis 950

Die Skala unten wurde aus #e4572e erzeugt. Ihre Helligkeit von 63.7 % passt zu Stufe 500, die Markenfarbe bleibt also exakt bei 500. Die übrigen Stufen folgen der Helligkeitskurve von Tailwind und behalten den Farbton, das Chroma erreicht bei 500 und 600 seinen Höchstwert und nimmt zu beiden Enden hin ab. Alle Stufen passen in sRGB, die Hex-Werte sind also exakt.

Wie die warmen Farbtöne von Tailwind selbst braucht diese Skala für Fließtext auf Weiß die Stufe 600. Brand-500 kommt auf 3.68:1 und reicht damit nur für großen Text und Icons.

KlasseHexAuf Weiß
brand-50#fcf3f01.09:1
brand-100#fae4de1.22:1
brand-200#f8cec31.44:1
brand-300#f3ae9a1.85:1
brand-400#ed7d5e2.73:1
brand-500#e4572e3.68:1
brand-600#ce3a004.97:1
brand-700#ae30006.52:1
brand-800#9126008.46:1
brand-900#77260e10.15:1
brand-950#44150815.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);
}

Übernimm beim Einfügen die volle Genauigkeit. Wer die Helligkeit auf 0.1 % und das Chroma auf drei Nachkommastellen rundet, schiebt brand-600 knapp aus sRGB heraus. Das schadet nicht, passt aber nicht mehr exakt zum Hex-Wert.

So funktionieren Deckkraft-Modifier wie bg-blue-500/50

Ein Schrägstrich nach der Farbe setzt ihren Alphawert: bg-blue-500/50 ist blue-500 mit 50 %. v3 kompilierte das zu rgb(59 130 246 / 0.5), was nur bei Farben funktionierte, die Tailwind in Kanäle zerlegen konnte. Eigene Farben als CSS-Variablen brauchten ein spezielles Format rgb(var(--brand) / <alpha-value>).

v4 kompiliert den Modifier zu color-mix() in Oklab und mischt die Farbe mit transparent. Das funktioniert mit jeder Farbe: Theme-Variablen, beliebigen Werten wie bg-[#e4572e]/50 und deinen eigenen CSS-Variablen.

Deckkraft verändert den Kontrast. Über Weiß wird blue-500/50 zu #95bfff und blue-500/10 zu #eaf2ff. Text in blue-600 erreicht 5.25:1, text-blue-600/60 fällt dagegen auf 2.62:1 und scheitert selbst bei großem Text.

CSS

.bg-blue-500\/50 {
    background-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
}

So findest du die nächste Tailwind-Klasse zu jedem Hex-Wert

Vergleiche den Hex-Wert mit allen 286 Abstufungen nach dem wahrgenommenen Abstand in Oklab (ΔEOK). Unter etwa 0.02 ist der Unterschied nebeneinander kaum zu sehen, die Tailwind-Klasse kann deine Farbe also ersetzen. Über etwa 0.04 legst du besser eine eigene Farbe an.

Die Tabelle zeigt echte Treffer. Alte Hex-Werte aus v3 führen zur selben v4-Klasse zurück, während ein typisches Marken-Orange wie #ff5733 zwischen orange-600 und red-400 fällt. Die Tailwind-Seite von PickShade übernimmt diese Suche für jede Farbe und zeigt die drei nächsten Klassen.

Deine FarbeNächste v4-KlasseFallback der KlasseΔEOK
#635bffindigo-500#615fff0.008
#1da1f2sky-500#00a6f40.020
#10b981emerald-500#00bc7d0.021
#3b82f6blue-500#2b7fff0.026
#e4572eorange-600#f549000.042
#ff5733orange-600#f549000.046

Fragen und Antworten

Wie viele Farben hat Tailwind CSS?

Tailwind CSS v4.3 hat 26 Farbskalen mit je 11 Abstufungen von 50 bis 950, also 286 Farben plus Schwarz und Weiß. Siebzehn Skalen sind bunt und neun neutral: slate, gray, zinc, neutral, stone, mauve, olive, mist und taupe.

Welchen Hex-Code hat Tailwind blue-500?

In Tailwind v4 ist blue-500 oklch(62.3% 0.214 259.815) und liegt damit knapp außerhalb von sRGB; der nächste Hex-Wert ist #2b7fff. In Tailwind v3 war blue-500 #3b82f6, mit derselben Helligkeit und demselben Farbton, aber geringerem Chroma.

Wie füge ich in Tailwind v4 eigene Farben hinzu?

Lege in deinem CSS in @theme eine Variable im Namensraum --color- an, zum Beispiel @theme { --color-brand-500: oklch(63.7% 0.184 36.48); }. Tailwind erzeugt dann bg-brand-500, text-brand-500 und jede andere Farb-Utility, und der Wert steht als var(--color-brand-500) zur Verfügung.

Welche Tailwind-Farben sind auf weißem Hintergrund barrierefrei?

Für Fließtext mit 4.5:1 auf Weiß nimmst du 600 bei red, blue, violet, purple, fuchsia, pink und rose, 700 bei orange, amber, yellow, lime, green, emerald, teal, cyan und sky und 500 bei indigo und den meisten neutralen Skalen. Olive ist unter den neutralen die Ausnahme und braucht 600.

Warum wirken Tailwind-v4-Farben gesättigter als in v3?

Tailwind v4 definiert Farben in OKLCH und hat ihr Chroma angehoben. In der Blau-Skala etwa blieben Helligkeit und Farbton fast exakt wie in v3, während das Chroma der mittleren Stufen um 0.02 bis 0.03 stieg. 94 der 286 Farben liegen jetzt außerhalb von sRGB und nutzen den größeren Farbraum Display P3. Auf P3-Bildschirmen wie aktuellen iPhones und Macs wirken sie deshalb kräftiger.

Kann ich in Tailwind v4 @theme Hex-Farben verwenden?

Ja. Theme-Variablen akzeptieren jede CSS-Farbe, auch Hex, rgb(), hsl() und oklch(). Deckkraft-Modifier funktionieren mit allen, weil v4 sie mit color-mix() erzeugt.

In PickShade ausprobieren

Passende Ratgeber