Skip to content

HEX-zu-OKLCH-Konverter

Konvertieren Sie HEX in OKLCH für Tailwind-v4-Design-Tokens. Perzeptuell uniforme Live-Ausgabe mit Display-P3-Farbraum-Warnungen. Kostenlos, ausschließlich im Browser.

Kein Tracking Läuft im Browser Kostenlos
Die gesamte Farbkonvertierung erfolgt lokal in Ihrem Browser. Es werden keine Daten an einen Server gesendet.
Farbraum: sRGB Display P3 Rec2020
Kontrast zu:
AA AA-Lg AAA AAA-Lg · APCA Lc
Farbsehschwäche-Simulation (8 Typen)
Protanopie (rotblind)
Deuteranopie (grünblind)
Tritanopie (blaublind)
Achromatopsie (total)
Protanomalie (rotschwach)
Deuteranomalie (grünschwach)
Tritanomalie (blauschwach)
Achromatomalie (partiell)
Helle Tönungen / Dunkle Tönungen / Töne / Harmonien

Helle Tönungen

Dunkle Tönungen

Töne

Harmonien

Als Code kopieren
Referenz gängiger Farben
Geprüft auf CSS-Color-4-§11.2-+-§15.1-Konformität, korrekte Ottosson-2020-OKLAB-Matrizen, Parität zur Tailwind-v4-Palette, Genauigkeit der Display-P3-/Rec2020-Farbraum-Erkennung und Rundlauf-Stabilität zwischen HEX und OKLCH über die Bereiche 0–1 Lightness, 0–0,4 Chroma und 0–360° Hue. — Go Tools Engineering Team · May 27, 2026

Was ist ein HEX-zu-OKLCH-Konverter?

Ein HEX-zu-OKLCH-Konverter ist ein kleines Werkzeug, das einen HEX-Farbcode (`#3b82f6`) in das perzeptuell uniforme Lightness-/Chroma-/Hue-Tripel umwandelt, das dieselbe Farbe im OKLCH-Raum kodiert (`oklch(0.629 0.193 263.4)`). HEX-Codes sind die knappen Hexadezimalzeichenketten zur Basis 16, die Designer und Entwickler zwischen Figma, Sketch, Photoshop, Marken-Richtlinien-PDFs und CSS-Stylesheets hin- und herkopieren — drei 8-Bit-Kanäle, gepackt in eine 6-Zeichen-Form `#RRGGBB`, verankert im sRGB-Farbraum, der 1996 durch IEC 61966-2-1 definiert wurde. OKLCH ist die polare Form von OKLAB, Björn Ottossons perzeptuell uniformem Farbraum von 2020, der über die `oklch()`-Syntax in CSS Color 4 zu CSS hinzugefügt wurde (W3C Candidate Recommendation seit 2022). Die Kanäle sind Lightness (0–1, auch als 0–100 % schreibbar), Chroma (0 bis etwa 0,4 für die gesättigtsten sRGB-Farben, nach oben unbeschränkt für Wide-Gamut-Farben) und Hue (0–360°, dieselbe Winkelachse, die HSL verwendet). Die Browser-Unterstützung kam zwischen März 2022 (Safari 15.4) und Mai 2023 (Firefox 113) bei allen Evergreens an, Chrome 111 in der Mitte (März 2023) — die kombinierte caniuse-Abdeckung liegt über 94 %. Beispiel: Tailwinds blue-500 ist `oklch(0.629 0.193 263.4)`.

**Perzeptuelle Uniformität — warum sie wichtig ist.** In OKLCH (und seinem rechteckigen Verwandten OKLAB) entspricht gleicher numerischer Abstand im L-Kanal gleichem wahrgenommenem Helligkeitsabstand — über jeden Farbton, jede Chroma-Stufe, jeden Bereich des Farbraums. In HSL wirken gleiche L-Werte über Farbtöne hinweg ungleichmäßig hell, weil HSL die Gamma-Eigenheiten von sRGB erbt: Ein Grün bei `hsl(120 100% 50%)` wirkt sichtbar heller als ein Blau bei `hsl(240 100% 50%)`, obwohl beide L=50 % melden. Strukturelle Ursache: HSL leitet L geometrisch ab (Mittelwert aus Kanal-Max und -Min in gamma-codiertem sRGB), während OKLCH L aus einem perzeptuell verankerten Modell ableitet, das zunächst linearisiert und durch einen LMS-Zapfenantwort-Schritt geleitet wird. Das praktische Ergebnis: L über Farbtöne konstant zu halten, erzeugt in OKLCH visuell gleichwertige Helligkeit — ein Grün bei `oklch(0.7 0.2 130)` und ein Blau bei `oklch(0.7 0.2 250)` wirken auf dem Bildschirm gleich hell. Genau deshalb hat Tailwind v4 seine Standardpalette 2025 auf OKLCH-basierte Rampen migriert — jeder Tönungsschritt (50, 100, 200, …, 900, 950) trifft denselben wahrgenommenen Helligkeitsabstand, sodass Markenfarben über alle Farbtöne hinweg konsistent wirken, ohne pro Farbe von Hand nachzustellen.

**Tailwind v4 und die Design-Token-Revolution.** Tailwind v4 (veröffentlicht im Januar 2025) hat seine HSL-basierte Farberzeugung durch ein OKLCH-basiertes System ersetzt. shadcn/ui folgte kurz darauf und übernahm OKLCH für sein CSS-Variablen-Theme; Radix Colors v3 hat es ebenfalls übernommen. Warum jetzt: Designsysteme brauchen Tönungen, die über die gesamte Palette gleichmäßig wirken, und sie brauchen diese Eigenschaft, damit sie sich bei wachsender Palette automatisch fortsetzt. Mit HSL mussten Designer jeden Farbschritt manuell korrigieren — L am dunklen Ende der Blau-Rampe um zusätzliche 5 % anheben, um zum dunklen Ende der Grün-Rampe zu passen, und dann erneut anpassen, wenn sich die Marke entwickelt. Mit OKLCH erzeugt eine einzige Formel (L in Schritten von 0,1, C und H konstant halten) automatisch konsistente Rampen. Reales Beispiel: In Tailwind v3 hatten `red-500` und `blue-500` sichtbar unterschiedliche wahrgenommene Helligkeiten trotz identischer HSL-L-Prozente; in v4 wirken `red-500` und `blue-500` ausgeglichen, weil beide bei demselben OKLCH-L sitzen. Das ist wichtig für Barrierefreiheit (konsistenter Kontrast gegen gemeinsame Hintergründe bedeutet, dass Komponentenzustände über die Palette hinweg einheitlich wirken), Markenkonsistenz (visuelle Hierarchie hält über Paletten — ein `primary`-Button und ein `accent`-Button bei demselben L wirken wie dieselbe Hierarchieebene) und Entwickler-Ergonomie (ein mentales Modell statt dutzender handabgestimmter Ausnahmen, vergraben in der Design-Token-Spezifikation).

**Wide-Gamut-Implikationen.** OKLCH ist unbeschränkt — es kann Farben außerhalb von sRGB darstellen, einschließlich allem, was Display P3 und Rec2020 reproduzieren können. Das macht es zur natürlichen Wahl für moderne Wide-Gamut-Displays. Die meisten Apple-Geräte seit 2017 (iPhone 7 aufwärts, MacBook Pro 2016 aufwärts, jedes iPad Pro) rendern Display P3 nativ, und viele moderne Android-Geräte und Laptop-Bildschirme tun es ebenfalls. Der Kompromiss: Nicht jedes OKLCH-Tripel bildet auf eine gültige sRGB-Farbe ab. Das Tool zeigt drei Farbraum-Badges — sRGB, Display P3, Rec2020 — sodass Sie sofort sehen, ob das aktuelle OKLCH auf einem gegebenen Ziel korrekt angezeigt wird. Ist die Farbe nur in sRGB darstellbar, nutzt der **An sRGB ausrichten**-Knopf binäre Chroma-Reduktion (gemäß dem informativen Farbraum-Mapping-Algorithmus in CSS Color 4 §13), um die Farbe in den Farbraum zu schrumpfen und dabei L und H zu erhalten — Sie erhalten einen HEX-Fallback, den Sie über `@supports not (color: oklch(0 0 0))` neben dem originalen OKLCH-Wert für die Wide-Gamut-Clients ausliefern können.

**Die HEX-→-OKLCH-Konvertierungsmathematik.** Die Pipeline ist wohldefiniert und auf zwei Primärquellen gegründet: W3C CSS Color 4 für die sRGB- und XYZ-Schritte, Ottosson 2020 für den OKLAB-Schritt. Schritt eins: `#RRGGBB` über `parseInt(hex.slice(1, 3), 16)` pro Kanal in drei 8-Bit-ganzzahlige sRGB-Kanäle parsen. Schritt zwei: Jeden Kanal durch Division durch 255 auf 0–1 normalisieren. Schritt drei: Über die stückweise Funktion aus CSS Color 4 §11.2 nach linearem sRGB gamma-dekodieren (`v <= 0.04045 ? v/12.92 : ((v+0.055)/1.055)^2.4`). Schritt vier: Mit der 3×3-Matrix aus §15.1 multiplizieren, um CIE-XYZ-D65-Koordinaten zu erhalten. Schritt fünf: Mit Ottossons LMS-Matrix (aus seiner Referenzimplementierung von 2020) multiplizieren und die Kubikwurzel jedes Kanals nehmen. Schritt sechs: Mit Ottossons OKLAB-Matrix multiplizieren, um L / a / b zu erhalten. Schritt sieben: Kartesisch nach polar — `C = sqrt(a² + b²); H = atan2(b, a) * 180 / π`, H in den Bereich 0–360° wickeln. Die gesamte Pipeline läuft in Mikrosekunden — jeder Tastenanschlag rendert die OKLCH-Ausgabe sofort neu, ohne Debounce.

Der HEX-→-OKLCH-Workflow dieses Tools ist eine Richtung einer 5-Spoke-Familie, die alle denselben zugrundeliegenden vereinheitlichten Farbkonverter nutzen. Der dedizierte vereinheitlichte Farbkonverter ist der Hub — er zeigt alle 9 Formate gleichzeitig bearbeitbar und ist das richtige Werkzeug, wenn Ihr Workflow mehr als nur HEX und OKLCH braucht. Die einseitigen Spokes zielen auf konkrete Google-Suchintents: der HEX-zu-RGB-Konverter für die Canvas-und-Hardware-Richtung, der RGB-zu-HEX-Konverter für die Gegenrichtung, der HEX-zu-HSL-Konverter für den klassischen designerzentrierten zylindrischen Raum, der in vielen Tailwind-v3-Codebasen weiterhin verwendet wird, sowie der HEX-zu-CMYK-Konverter für Druckvorstufen-Näherungen. Alle fünf Spokes und der Hub teilen intern dieselbe OKLCH-Source-of-Truth und dieselben Matrizen von Ottosson 2020, sodass die Ergebnisse in der gesamten Familie garantiert identisch sind. Jede Konvertierung läuft lokal in Ihrem Browser — Ihre HEX-Codes werden niemals hochgeladen, niemals geloggt, und während der Eingabe werden null Netzwerkanfragen abgesetzt. In den DevTools überprüfbar. Für eine tiefere Auseinandersetzung damit, warum OKLCH 2024–2026 zum Designsystem-Standard wurde, lesen Sie unseren begleitenden Leitfaden: OKLCH-Farbraum erklärt — warum Tailwind v4 ihn übernommen hat.

// sRGB hex → OKLCH per W3C CSS Color 4 + Ottosson 2020
// References: https://www.w3.org/TR/css-color-4/#color-conversion-code
//             https://bottosson.github.io/posts/oklab/
// Worked example: #3b82f6 (Tailwind blue-500) → oklch(0.629 0.193 263.4)
function hexToOklch(hex) {
  const h = hex.trim().replace(/^#/, '');
  const srgb = [0, 2, 4].map(i => parseInt(h.slice(i, i + 2), 16) / 255);
  // sRGB → linear-sRGB (CSS Color 4 §11.2 piecewise gamma)
  const lin = srgb.map(v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4));
  const [lr, lg, lb] = lin;
  // linear-sRGB → XYZ D65 (CSS Color 4 §15.1 matrix)
  const x = 0.4124564 * lr + 0.3575761 * lg + 0.1804375 * lb;
  const y = 0.2126729 * lr + 0.7151522 * lg + 0.0721750 * lb;
  const z = 0.0193339 * lr + 0.1191920 * lg + 0.9503041 * lb;
  // XYZ D65 → LMS (Ottosson 2020), cube-root, → OKLAB
  const l_ = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
  const m_ = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
  const s_ = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.6338517070 * z);
  const L = 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_;
  const a = 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_;
  const b = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_;
  // OKLAB → OKLCH (Cartesian to polar)
  const C = Math.sqrt(a * a + b * b);
  const H = (Math.atan2(b, a) * 180 / Math.PI + 360) % 360;
  return `oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`;
}
console.log(hexToOklch('#3b82f6')); // → oklch(0.629 0.193 263.4)

Kernfunktionen

Perzeptuell uniforme Ausgabe über alle Farbtöne

Der L-Kanal von OKLCH ist im perzeptuellen OKLAB-Modell verankert (Ottosson 2020), sodass jeder L-Schritt über alle Farbtöne hinweg wie derselbe Helligkeitswechsel wirkt — ein Grün bei `oklch(0.7 0.2 130)` und ein Blau bei `oklch(0.7 0.2 250)` lesen sich auf dem Bildschirm als gleich hell. Das ist die strukturelle Eigenschaft, mit der Tailwind v4 automatisch visuell gleichmäßige Rampen erzeugt, ohne pro Farbe von Hand nachzustellen — dieselbe Eigenschaft, die die äquivalente HSL-Rampe nicht garantieren kann, weil HSL die Gamma-Eigenheiten von sRGB erbt.

Bereit für Tailwind v4 — direkt in @theme-Blöcke fallen lassen

Die OKLCH-Ausgabe nutzt die leerzeichengetrennte Form von CSS Color 4 (`oklch(0.629 0.193 263.4)`) — genau die Syntax, die Tailwind v4 innerhalb eines `@theme`-Blocks als `--color-primary: oklch(0.629 0.193 263.4);` erwartet. Die L-Präzision entspricht der von Tailwind veröffentlichten Paletten-Präzision (drei Nachkommastellen bei L und C, eine Nachkommastelle in Grad bei H), sodass ein Einfügen-in-die-Konfiguration-Workflow identische Tokens zu denen erzeugt, die Tailwind standardmäßig ausliefert. Kombinieren Sie das mit dem Tailwind-v4-Snippet im Abschnitt Als Code kopieren für die vollständige Token-Zeile.

Display-P3- + Rec2020-Farbraum-Badges

Drei Live-Badges (sRGB, Display P3, Rec2020) markieren, ob das aktuelle OKLCH-Tripel innerhalb des reproduzierbaren Bereichs jedes Raumes liegt. Nützlich, weil OKLCH unbeschränkt ist — viele Farben mit hoher Chroma überschreiten sRGB, passen aber in P3, was die meisten Apple-Geräte seit 2017 nativ rendern können. Die Badges werden bei außerhalb des Farbraums liegenden Werten rot, sodass Sie entscheiden können, ob Sie den Wide-Gamut-Wert für moderne Displays behalten oder für universelle Kompatibilität an sRGB ausrichten. Die Kanal-Bereichsprüfung läuft bei jedem Tastenanschlag.

An sRGB ausrichten für klassische Kompatibilität

Der An sRGB ausrichten-Knopf führt binäre Chroma-Reduktion aus (informatives Verfahren aus CSS Color 4 §13): L und H fixieren, C nach unten suchen, bis die resultierende sRGB-Konvertierung im Farbraum bleibt. Die Suche terminiert in etwa 30 Iterationen mit Sub-Pixel-Präzision. Das Erhalten von L und H bedeutet, dass die ausgerichtete Farbe sich als dieselbe Farbtonfamilie bei derselben Helligkeit liest — sie verliert nur Sättigung, was der visuell unauffälligste Kompromiss ist. Der ausgerichtete HEX paart sich über `@supports not (color: oklch(0 0 0))` mit dem originalen OKLCH für gestaffelten Fallback.

Sofortige Konvertierung pro Tastenanschlag

Es gibt keinen Konvertieren-Knopf. Tippen Sie ein einzelnes Zeichen in das HEX-Feld und das OKLCH-Feld aktualisiert sich im selben Animation-Frame. Die interne kanonische Darstellung ist das OKLCH-Tripel selbst, sodass das direkte Bearbeiten von OKLCH genauso schnell ist — der Cursor bleibt, wo Sie ihn platziert haben, nur die anderen Formatfelder werden neu gerendert. Die Konvertierungsmathematik (sRGB → linear → XYZ → LMS → OKLAB → polar) läuft in Mikrosekunden; kein Debounce, keine Latenz, kein sichtbares Reflow.

Ausgearbeitetes Beispiel über die W3C-+-Ottosson-2020-Pipeline

Der Code-Beispiel-Abschnitt liefert eine funktionierende JavaScript-Implementierung der vollständigen HEX-→-OKLCH-Pipeline mit den exakten Matrizen und der Gammafunktion, die in W3C CSS Color 4 (§11.2 stückweise Gamma, §15.1 lineares-sRGB-→-XYZ-D65-Matrix) und in Björn Ottossons OKLAB-Referenzimplementierung von 2020 veröffentlicht wurden. Fügen Sie es in eine Node-REPL ein und überprüfen Sie, dass `#3b82f6` `oklch(0.629 0.193 263.4)` liefert. Jeder Matrixwert ist aus seiner Primärquelle kopiert — keine Neuableitungen oder Rundungen.

Bidirektional mit HSL / RGB / HEX im vereinheitlichten Hub

Auch wenn dieser Spoke gezielt HEX → OKLCH adressiert, blendet dieselbe Seite die anderen acht Formatfelder ebenfalls ein — RGB für Hardware, HSL für klassisches CSS, OKLAB für Paletten-Mathematik, HSV/HWB für Picker-UIs, CMYK für Druck und der nächstgelegene benannte CSS-Farbname. Die interne OKLCH-Source-of-Truth sorgt dafür, dass jedes Feld über Rundläufe bit-stabil ist: HEX → OKLCH → HSL → HEX stellt den ursprünglichen HEX wieder her. Klicken Sie in ein beliebiges Feld, um es direkt zu bearbeiten, und beobachten Sie, wie die anderen aktualisiert werden.

Inline-Zusammenfassung der Browser-Unterstützung

Das Tool zeigt die kanonischen Datenpunkte zur Browser-Unterstützung, wo relevant: Chrome und Edge 111 (März 2023), Safari 15.4 (März 2022 — der früheste), Firefox 113 (Mai 2023), kombinierte caniuse-Abdeckung über 94 %. Für ältere Clients wickeln Sie Tokens in `@supports (color: oklch(0 0 0))` und liefern Sie im alternativen Zweig einen HEX-Fallback. Die Ausgabe von An sRGB ausrichten ist genau dieser Fallback, automatisch aus dem aktuellen OKLCH-Tripel erzeugt — kein manuelles Chroma-Tuning nötig.

100 % im Browser — kein Upload, kein Tracking

Das gesamte HEX-Parsing, die OKLCH-Konvertierung, die Farbraum-Erkennung, die Kontrastbewertung und die Paletten-Erzeugung laufen lokal in Ihrem Browser. Ihre HEX-Codes werden niemals übertragen, niemals auf einem Server geloggt, niemals analysiert. Null Netzwerkanfragen während der Eingabe — in den DevTools überprüfbar. Sicher für unangekündigte Markenpaletten, interne Design-Tokens für noch nicht veröffentlichte Produkte, NDA-geschützte Mockup-Entwürfe und jede andere vertrauliche Farbarbeit, bei der der Wert nicht leaken darf.

Alternativen zum HEX-zu-OKLCH-Konverter

OKLCH.com

Browser-Tool

Wunderschön gebautes OKLCH-fokussiertes Tool von Andrey Sitnik (Autor des Polyfills postcss-oklab-function und von Autoprefixer). Best-in-Class für reine OKLCH-Erkundung mit einem Wide-Gamut-fähigen Picker, P3-bewusster Visualisierung und Paletten-Erzeugung. Es deckt HEX/RGB/HSL/CMYK nicht als primäre Ausgaben ab — Fokus liegt allein auf OKLCH. Greifen Sie zu OKLCH.com, wenn Sie tiefe OKLCH-Designarbeit machen; greifen Sie zu diesem Tool, wenn Sie zusätzlich Cross-Space-Konvertierung und die Farbraum-/Kontrast-/CVD-Funktionen benötigen.

Tailwind-v4-Dokumentationspalette

Dokumentationsreferenz

Die Tailwind-v4-Dokumentation veröffentlicht die vollständige Standardpalette in OKLCH neben den HEX-Äquivalenten. Am besten zum Nachschlagen einer exakten Tailwind-Tönung (`blue-500` → `oklch(0.629 0.193 263.4)`) oder zum Abgleich eigener Farben mit dem visuellen Gewicht einer Tailwind-Tönung. Nicht interaktiv — keine Konvertierung beliebiger HEX-Codes. Dieses Tool deckt dieselbe OKLCH-Präzision ab und funktioniert für jeden HEX, nicht nur für die 200+ Tailwind-Standards.

ColorJS.io-Playground

Browser-Tool

ColorJS.io ist Lea Verous und Chris Lilleys maßgebliche CSS-Farb-Bibliothek; der Playground zeigt den vollständigen Konvertierungsgraphen (HEX, RGB, HSL, HWB, LCH, OKLCH, OKLAB, P3, Rec2020, ProPhoto, A98). Tief korrekte Mathematik, ideal für Spezifikations-Ebene-Farbarbeit. UI ist entwicklerorientiert (nicht designerorientiert) und es fehlen die Kontrast-/CVD-/Paletten-Funktionen. Mit diesem Tool koppeln: ColorJS.io für die Mathematik nutzen, die Sie sonst nicht überprüfen können, dieses Tool für aktive Workflows.

shadcn/ui-Themes-Generator

Browser-Tool

Vercels shadcn-Theme-Generator erzeugt einfügefertige OKLCH-CSS-Variablen-Themes für shadcn/ui-Projekte. Am besten für End-to-End-Theme-Erzeugung, wenn das Lieferartefakt eine shadcn-Konfigurationsdatei ist. Er zeigt keine OKLCH-Zwischenwerte für beliebige HEX-Codes — Fokus auf den vollständigen Theme-Workflow. Nutzen Sie den shadcn-Generator, wenn Sie ein shadcn-Theme bauen; nutzen Sie dieses Tool, wenn Sie das OKLCH einer beliebigen Einzelfarbe brauchen.

ColorHexa

Browser-Tool

Lang laufende SEO-Seiten pro Farbe mit umfangreichen Metadaten. Vor Kurzem wurde OKLCH-Unterstützung neben HEX/RGB/HSL/CMYK ergänzt. UI ist veraltet (frühe 2010er), keine Wide-Gamut-Erkennung, kein APCA-Kontrast. Stark für die SEO-Auffindbarkeit eines bestimmten HEX über Google; schwächer für aktive Konvertierungs-Workflows, bei denen die vereinheitlichte Feld-UX und die Farbraum-/Kontrast-Funktionen wichtig sind. Dieses Tool gewinnt auf jeder Achse aktiven Workflows.

Browser-DevTools-Farbwähler

eingebaute Browser-Funktion

Chrome, Firefox und Safari DevTools liefern alle einen Farbwähler, der inline zwischen HEX, RGB, HSL, HWB und OKLCH umschaltet, wenn Sie im CSS-Bereich auf ein Farbfeld klicken. Kostenlos, keine Installation, immer verfügbar. Es fehlen die Farbraum-Badges, die Kontrastbewertung, die Farbsehschwäche-Simulation und der Code-Export für Nicht-Web-Plattformen (SwiftUI, Compose). Greifen Sie zu den DevTools, wenn Sie ohnehin CSS debuggen; greifen Sie zu diesem Tool, wenn Sie plattformübergreifende Ausgabe oder die tieferen Prüfungen brauchen.

Culori-CLI

Kommandozeilen-Bibliothek

Culori ist die gründlichste OKLCH-fähige JavaScript-Farb-Bibliothek; ihre CLI handhabt die HEX-→-OKLCH-Konvertierung als Einzeiler (`culori convert '#3b82f6' --to oklch`). Hervorragend für CI-Skripte und Batch-Token-Migration. Kein visueller Picker oder Farbraum-Badges. Nutzen Sie die Culori-CLI für Automatisierung; nutzen Sie dieses Tool für interaktive Einzelfarben-Arbeit und das sofortige visuelle Feedback.

HEX-zu-OKLCH-Beispiele

Tailwind-3-HSL-Palette → v4-OKLCH-Tokens migrieren

#3b82f6

OKLCH-Ausgabe: `oklch(0.629 0.193 263.4)`. Der kanonische Tailwind-v4-Migrationsworkflow: Definieren Sie die Markenfarbe einmal im `@theme`-Block als `--color-primary: oklch(0.629 0.193 263.4)`, komponieren Sie dann helle Tönungen durch Anheben von L (`oklch(0.7 0.193 263.4)`, `oklch(0.8 0.15 263.4)`) und dunkle Tönungen durch Absenken von L (`oklch(0.5 0.193 263.4)`, `oklch(0.4 0.18 263.4)`). Der Farbton bleibt bei 263,4° fixiert, die Chroma in der Nähe von 0,19 verankert, die Lightness ist die einzige Achse, die wandert — eine eindimensionale Rampe, die über die gesamte Skala visuell gleichmäßig wirkt, was die äquivalente HSL-Rampe nicht garantieren kann.

Design-Token-Migration mit perzeptuell uniformen dunklen Tönungen

#FF5733

OKLCH-Ausgabe: ungefähr `oklch(0.66 0.18 28)`. Um aus diesem Marken-Orange eine 5-stufige Schattierungsrampe zu bauen, halten Sie C = 0,18 und H = 28 konstant und schrittweise L durch 0,3, 0,45, 0,6, 0,75, 0,9 — Sie erhalten `oklch(0.3 0.18 28)` bis `oklch(0.9 0.18 28)`. Jedes benachbarte Paar fühlt sich an wie derselbe visuelle Helligkeitssprung, weil OKLCHs L im perzeptuellen OKLAB-Modell verankert ist (Ottosson 2020) und nicht in HSLs gamma-verzerrter geometrischer L. Die Chroma kann an den Extremen leise in Richtung sRGB clippen; die Farbraum-Badges des Tools zeigen genau, welche Stufen Aufmerksamkeit brauchen.

Wide-Gamut-OKLCH → sRGB-Fallback für Tailwind-v3-Sites

#FF1744

OKLCH-Ausgabe: ungefähr `oklch(0.62 0.27 26)`. Ein solch stark gesättigtes Rot überschreitet den sRGB-Würfel — das **sRGB**-Farbraum-Badge leuchtet rot, das **Display P3**-Badge bestätigt, dass es in P3 passt, und Rec2020 deckt es ebenfalls ab. Auf einem Standard-24-Bit-Monitor wird es als entsättigte Annäherung gerendert; auf einem Display-P3-Bildschirm (die meisten Apple-Geräte seit 2017) wird es gesättigt dargestellt. Klicken Sie auf **An sRGB ausrichten**, um den binären Chroma-Reduktionsalgorithmus auszuführen (CSS Color 4 §13 informativ) — L und H bleiben fixiert, während C schrumpft, bis die Farbe passt, und Sie erhalten einen HEX-Fallback, der für eine Tailwind-v3-Codebasis geeignet ist, die noch 8-Bit-HEX-Tokens verwendet.

shadcn/ui-Theme-Migration

#0f172a

OKLCH-Ausgabe: ungefähr `oklch(0.21 0.04 264.7)`. shadcn/ui hat sein CSS-Variablen-Theme kurz nach dem Erscheinen von Tailwind v4 auf OKLCH migriert, und `#0f172a` (Tailwind slate-900) ist der kanonische Dark-Mode-Hintergrund. Das Tool reproduziert den von shadcn veröffentlichten OKLCH-Wert für denselben HEX, sodass Sie überprüfen können, ob ein Community-Theme-Port mit der Upstream-Definition übereinstimmt. Kombinieren Sie das mit der Kontrastzeile, um zu bestätigen, dass der Dark-Mode-Vordergrund (Weiß oder fast Weiß) WCAG AA gegen diesen Hintergrund weiterhin besteht — `oklch(0.21 ...)` gegen `oklch(1 0 0)` meldet ein komfortables Verhältnis von 16:1.

Ein Tailwind-v4-Hell-/Dunkel-Paar aus einem Marken-HEX bauen

#3b82f6

OKLCH-Ausgabe: `oklch(0.629 0.193 263.4)`. Um ein abgestimmtes Hell-/Dunkel-Paar für ein Theme abzuleiten, drehen Sie nur am L-Kanal und halten C und H konstant: Die Light-Mode-Primärfarbe wird zu `oklch(0.7 0.15 263)` (etwas heller, etwas weniger chromatisch, um Augenbelastung auf weißen Hintergründen zu vermeiden), die Dark-Mode-Primärfarbe wird zu `oklch(0.5 0.18 263)` (etwas dunkler, etwas chromatischer, um auf dunklen Hintergründen Saliency zu behalten). Beide Varianten lesen sich als dieselbe Markenidentität, weil der Farbton fixiert ist; die perzeptuelle L-Verschiebung balanciert die Lesbarkeit über beide Modi, ohne manuelles pro-Kanal-RGB-Tuning.

Häufige HEX → OKLCH Konvertierungen (Tailwind v4)

Referenztabelle der 10 beliebtesten Mitteltönungen aus der Tailwind-v4-Standardpalette mit ihren HEX- und OKLCH-Entsprechungen. Die Werte entsprechen der von Tailwind v4 veröffentlichten Paletten-Präzision (drei Nachkommastellen bei L und C, ganzzahlig oder eine Nachkommastelle bei H).

Tailwind slate-500

#64748b oklch(0.55 0.04 257)

Die Standard-slate-500 von Tailwind CSS — das kühle neutrale Grau, das für Fließtext, sekundäre Flächen und untergeordnete UI-Elemente verwendet wird. Niedrige Chroma (0,04) hält es visuell neutral.

#64748b oklch(0.55 0.04 257)

slate ist die kanonische neutrale Rampe für dark-mode-freundliche Themes — jede slate-Tönung sitzt bei sehr niedriger Chroma, sodass sie sich als Grau und nicht als blauschimmernd liest.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind gray-500

#6b7280 oklch(0.55 0.03 258)

Die Standard-gray-500 von Tailwind CSS — das echte neutrale Gegenstück zu slate. Etwas niedrigere Chroma als slate (0,03 vs. 0,04) für ein achromatischeres Erscheinungsbild.

#6b7280 oklch(0.55 0.03 258)

gray und slate sitzen bei nahezu identischer L (0,55) — die perzeptuelle Helligkeit ist abgestimmt, nur der winzige Chroma-Unterschied trennt sie.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind red-500

#ef4444 oklch(0.64 0.21 25)

Die Standard-red-500 von Tailwind CSS — das kanonische Destruktive-Aktion-/Fehler-Rot. Hohe Chroma (0,21) hält es vor neutralen Hintergründen markant.

#ef4444 oklch(0.64 0.21 25)

red-500 sitzt bei L=0,64, passend zu blue-500s L=0,63 — die v4-Rampen sind perzeptuell über alle Farbtöne ausbalanciert, anders als die HSL-basierte v3-Palette.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind orange-500

#f97316 oklch(0.71 0.19 42)

Die Standard-orange-500 von Tailwind CSS — der warme Akzent- und CTA-Farbton. Sitzt zwischen Rot und Bernstein auf dem Farbkreis (42°).

#f97316 oklch(0.71 0.19 42)

Das höhere L (0,71) von orange-500 gegenüber red-500s L (0,64) ist beabsichtigt — Gelb- und Orangetöne wirken bereits bei niedrigerer perzeptueller L hell als Rottöne.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind amber-500

#f59e0b oklch(0.76 0.16 70)

Die Standard-amber-500 von Tailwind CSS — der Warn-/Vorsicht-Farbton, zwischen Orange und Gelb auf dem Farbkreis.

#f59e0b oklch(0.76 0.16 70)

amber-500 trifft die höchste L (0,76) aller 500er-Tailwind-Farben — Gelbtöne brauchen natürlich höhere L, um als „Mittelton“ visuell zu erscheinen.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind green-500

#22c55e oklch(0.72 0.19 149)

Die Standard-green-500 von Tailwind CSS — der Erfolgs-/Bestätigungs-Farbton. Sitzt bei 149° auf dem Farbkreis, im Cyan-Grün-Bereich.

#22c55e oklch(0.72 0.19 149)

green-500 bei L=0,72 ist eine Spur heller als red-500 bei L=0,64 — das entspricht der perzeptuellen Realität (Grüntöne wirken hell) und verleiht der Palette ein ausgeglichenes visuelles Gewicht.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind teal-500

#14b8a6 oklch(0.7 0.13 184)

Die Standard-teal-500 von Tailwind CSS — der kühle Akzent-Farbton zwischen Grün und Cyan. Niedrigere Chroma als green-500, weil Teals mit hoher Chroma sRGB leicht überschreiten.

#14b8a6 oklch(0.7 0.13 184)

teal-500s H=184° sitzt knapp jenseits von Cyan (180°) — reines Cyan in OKLCH ist in sRGB ohne Chroma-Clipping schwer auszudrücken; teal ist der praktische Kompromiss.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind blue-500

#3b82f6 oklch(0.63 0.19 263)

Die Standard-blue-500 von Tailwind CSS — das kanonische „Web-Blau“ der 2020er, die markenverankernde Farbe für die v4-Palette und das Standard-Theme von shadcn/ui.

#3b82f6 oklch(0.63 0.19 263)

blue-500 ist die Referenzfarbe, die am häufigsten als Tailwind-v4-OKLCH-Migrationsausgangspunkt verwendet wird — fügen Sie #3b82f6 hier ein, um die Konvertierung gegen den veröffentlichten Wert zu verifizieren.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind indigo-500

#6366f1 oklch(0.59 0.21 277)

Die Standard-indigo-500 von Tailwind CSS — der kühle Akzent-Begleiter zu Blau, sitzt bei 277° (Richtung Violett). Hohe Chroma (0,21) gibt ihm Saliency.

#6366f1 oklch(0.59 0.21 277)

indigo-500 sitzt bei niedrigerer L als blue-500 (0,59 vs. 0,63) — der tiefere Farbton absorbiert mehr wahrgenommene Helligkeit, und die v4-Rampe berücksichtigt das perzeptuell.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

Tailwind violet-500

#8b5cf6 oklch(0.6 0.24 295)

Die Standard-violet-500 von Tailwind CSS — der Lila-Akzent-Farbton bei 295°. Höchste Chroma (0,24) aller 500er-Tailwind-Farben, häufig für KI-/Kreativ-Produkt-Branding verwendet.

#8b5cf6 oklch(0.6 0.24 295)

violet-500s hohe C=0,24 platziert es nahe an der sRGB-Farbraum-Decke — schiebt man höher, kreuzt es in P3-exklusives Wide-Gamut-Gebiet.

Brauchen Sie den vollständigen Farbwähler mit RGB, HSL, CMYK, Farbraum-Warnungen und Code-Export? Probieren Sie den vereinheitlichten Farbkonverter — jedes Format gleichzeitig bearbeitbar.

So nutzen Sie den HEX-zu-OKLCH-Konverter

  1. 1

    Einen HEX-Code in das HEX-Feld einfügen

    Legen Sie einen beliebigen HEX-Wert in die HEX-Eingabe — mit oder ohne führendes `#`, als 3-stellige Kurzform (`#F73`), 6-stellige Vollform (`#3b82f6`), 4-stellige Alpha-Kurzform (`#F738`) oder 8-stellige Alpha-Vollform (`#FF573380`). Der Parser normalisiert alle fünf Eingabeformen zur selben internen Farbe, bevor OKLCH abgeleitet wird. Groß-/Kleinschreibung ist egal (`#3b82f6` und `#3B82F6` werden identisch geparst). Ungültige Zeichen oder falsche Stellenzahlen erzeugen einen dezenten Inline-Fehler; gültiger HEX aktualisiert jedes andere Formatfeld in Echtzeit, einschließlich OKLCH.

  2. 2

    Das OKLCH-Tripel aus dem OKLCH-Feld ablesen

    Das OKLCH-Feld zeigt den Wert in der modernen Form von CSS Color 4: `oklch(0.629 0.193 263.4)` für eine deckende Farbe, `oklch(0.629 0.193 263.4 / 0.5)` für eine mit Alpha. L wird auf drei Nachkommastellen gerundet (entspricht der von Tailwind v4 veröffentlichten Präzision), C auf drei Nachkommastellen, H auf eine Nachkommastelle in Grad. Die interne OKLCH-Source-of-Truth des Tools bedeutet, dass die zugrundeliegende Float-Präzision über jedes andere Feld erhalten bleibt — Rundläufe zurück nach HEX bleiben bit-stabil, anders als bei klassischen HSL-Pivot-Konvertern, die pro Rundlauf um ein bis zwei Grad driften.

  3. 3

    Auf Kopieren klicken, um die OKLCH-Zeichenkette zu übernehmen

    Jede Formatkarte hat rechts einen Kopieren-Knopf. Ein Klick und der Wert landet in der Zwischenablage — die Beschriftung blinkt kurz „Kopiert!“, damit Sie es sehen. Die kopierte Zeichenkette folgt der kanonischen CSS-Color-4-Syntax (`oklch(0.629 0.193 263.4)`), bereit, in einen Tailwind-v4-`@theme`-Block oder eine shadcn/ui-CSS-Variablendefinition zu fallen. Für plattformspezifische Ausgabe (CSS Custom Property, Tailwind-v4-Token, SwiftUI, Compose, Flutter) nutzen Sie den Abschnitt Als Code kopieren unter dem Picker — diese Snippets geben das Format aus, das jede Plattform nativ erwartet.

  4. 4

    Die Display-P3-/Rec2020-Farbraum-Badges prüfen

    Drei Farbraum-Badges (sRGB, Display P3, Rec2020) zeigen, ob die aktuelle Farbe innerhalb des reproduzierbaren Bereichs jedes Raumes liegt. Wird das sRGB-Badge rot, das P3-Badge aber grün, ist die Farbe ein Wide-Gamut-OKLCH, das auf Apple-Hardware (iPhone, iPad, MacBook ab 2017) gesättigt erscheint, auf einem klassischen 24-Bit-Monitor jedoch entsättigt wird. Der **An sRGB ausrichten**-Knopf nutzt binäre Chroma-Reduktion (informatives Verfahren aus CSS Color 4 §13), um die Farbe in den sRGB-Farbraum zu schrumpfen, während L und H erhalten bleiben, und liefert einen HEX-Fallback, den Sie über `@supports not (color: oklch(0 0 0))` ausliefern können.

  5. 5

    Ebenfalls sichtbar: RGB, HSL, OKLAB, HSV, HWB, CMYK, benannte Farbe

    Derselbe HEX, den Sie einfügen, leuchtet auch in den anderen acht Formatfeldern auf — RGB für Canvas-Aufrufe und Hardware, HSL für klassische CSS-Variablen, OKLAB für Paletten-Mathematik und Farbsehschwäche-Matrizen, HSV und HWB für Designer-Farbwähler-Workflows, CMYK für Druckschätzungen und der nächstgelegene benannte CSS-Farbname für Dokumentations-Fließtext. Sie sind nie nur auf HEX → OKLCH festgelegt. Der Picker (SL-Quadrat + Farbton-Schieberegler + Alpha-Schieberegler) steuert alle neun simultan, und in Chromium-Browsern tastet der EyeDropper-Knopf jeden Bildschirmpixel ab, auch außerhalb des Browsers.

Häufige HEX-/OKLCH-Fehler

OKLCH-Chroma wie HSL-Sättigung lesen

Die Chroma von OKLCH ist unbeschränkt (0 bis ~0,4 für sRGB-passende Farben, höher für Wide-Gamut) — sie ist KEIN 0–100-%-Sättigungswert wie HSLs S. Anzunehmen, dass C=0,3 „30 % gesättigt“ bedeutet, missdeutet die Skala: 0,3 ist stark chromatisch, in der Nähe der sRGB-Decke für manche Farbtöne und für andere weit darüber. Das maximale C variiert mit L und H — ein Grün bei L=0,7 unterstützt deutlich höhere C als ein Blau bei L=0,3. Behandeln Sie C als absoluten Abstand zu Grau, nicht als relativen Prozentsatz.

✗ Falsch
OKLCH C = 0,3 setzen in der Erwartung „30 % Sättigung“:
oklch(0.7 0.3 250) → kann sRGB für Blautöne überschreiten
Wide-Gamut-Farbe wird auf klassischen Displays entsättigt gerendert.
✓ Richtig
C als absolute Chroma behandeln, Farbraum-Badges prüfen:
oklch(0.7 0.15 250) → komfortabel in sRGB für dieses L+H-Paar
Die Badges nutzen, um das maximale C zu finden, das in den Zielfarbraum passt.

OKLCHs L wie HSLs L behandeln

Beide Räume melden Lightness als 0–1-Achse (oder 0–100 %), aber sie messen Unterschiedliches. HSLs L ist geometrisch — abgeleitet aus der Mittelung von RGB-Max/Min in gamma-codiertem sRGB. OKLCHs L ist perzeptuell — im OKLAB-Modell verankert. Eine HSL-basierte Palette als `oklch(L%, C, H)` zu portieren und passende Helligkeit zu erwarten, erzeugt ungleichmäßige Ergebnisse, weil die L-Beziehung zwischen beiden Räumen nicht-linear ist. Für mittlere Töne entspricht OKLCH L = 0,6 etwa HSL L = 50 %, aber die Kurve driftet an den dunklen und hellen Enden.

✗ Falsch
HSL-L-Prozente direkt in OKLCH kopieren:
hsl(220 50% 30%) als oklch(0.30 0.10 220) portiert
Die beiden Farben wirken sichtbar unterschiedlich in der Helligkeit.
✓ Richtig
OKLCH aus dem ursprünglichen HEX neu ableiten, HSL nicht portieren:
HEX-Quelle → OKLCH-Konvertierung → oklch(0.34 0.08 254)
Die perzeptuelle L bleibt korrekt; die Palette wirkt gleichmäßig.

Vergessen, dass Wide-Gamut-OKLCH in sRGB nicht angezeigt wird

OKLCH ist unbeschränkt — Sie können `oklch(0.7 0.4 30)` schreiben, und die Syntax ist gültig, aber die Chroma überschreitet, was der 256-Werte-pro-Kanal-Byte-Raum von sRGB kodieren kann. Auf einem sRGB-Monitor wird diese Farbe auf die nächstgelegene Im-Farbraum-Näherung geclippt (meist eine entsättigte Version). Auf einem Display-P3-Monitor wird sie korrekt gerendert. Ein Wide-Gamut-OKLCH ohne Prüfung der Farbraum-Badges auszuliefern, erzeugt eine Farbe, die auf unterschiedlichen Displays unterschiedlich aussieht — ein subtiler, aber realer plattformübergreifender Konsistenzfehler.

✗ Falsch
oklch(0.7 0.4 30) ohne Prüfung des sRGB-Farbraums ausliefern:
P3-Displays rendern gesättigtes Rot; sRGB-Displays rendern entsättigt
Markenfarbe wirkt über Nutzerhardware hinweg inkonsistent.
✓ Richtig
sRGB-Farbraum-Badge prüfen, bei Bedarf an sRGB ausrichten, mit @supports schichten:
@supports (color: oklch(0 0 0)) { --primary: oklch(0.7 0.4 30); }
@supports not (color: oklch(0 0 0)) { --primary: #ef6b50; }
P3-Hardware erhält den Wide-Gamut-Wert; sRGB-Hardware erhält den ausgerichteten Fallback.

Fehlende Browser-Unterstützung für oklch()

Natives `oklch()`-Parsing kam in Chrome und Edge 111 (März 2023), Safari 15.4 (März 2022) und Firefox 113 (Mai 2023) an. Die kombinierte caniuse-Abdeckung liegt bei über 94 %, aber die verbleibenden 6 % umfassen IE 11, altes Safari auf iOS 15.3 oder früher, altes Android-Chrome und eingebettete Webviews. `oklch()` ohne Fallback an diesen langen Schwanz auszuliefern, rendert als CSS-`inherit`-Wert oder schlägt vollständig fehl. Setzen Sie für Produktionssites mit breiter Zielgruppe immer eine Feature-Erkennung mit `@supports`.

✗ Falsch
Markenfarbe nur in OKLCH definieren:
:root { --primary: oklch(0.629 0.193 263.4); }
IE 11 und altes iOS-Safari rendern überhaupt keine Farbe.
✓ Richtig
Mit @supports für eleganten Fallback schichten:
:root { --primary: #3b82f6; }
@supports (color: oklch(0 0 0)) { :root { --primary: oklch(0.629 0.193 263.4); } }
Moderne Browser erhalten OKLCH; klassische Browser erhalten den HEX-Fallback.

OKLCH und LCH verwechseln (CIE-LAB polare Form)

CSS Color 4 liefert sowohl `oklch()` als auch `lch()`. Sie wirken in ihrer Form identisch (L / C / H), nutzen aber unterschiedliche zugrundeliegende Räume: `lch()` ist die polare Form von CIE-LAB (1976), `oklch()` ist die polare Form von OKLAB (Ottosson 2020). Die beiden sind NICHT austauschbar — `lch(60% 50 240)` und `oklch(0.6 0.15 240)` beschreiben unterschiedliche Farben. Die perzeptuelle Uniformität von CIE-LAB bricht bei gesättigten Blautönen zusammen, weshalb Ottosson OKLAB neu abgeleitet hat. Für neue Designsystem-Arbeit bevorzugen Sie `oklch()` gegenüber `lch()`.

✗ Falsch
lch() durch oklch() ersetzen in der Erwartung des gleichen Ergebnisses:
lch(60% 50 240) ≠ oklch(0.6 0.15 240) — komplett unterschiedliche Farben
Über Räume hinweg kopiert, ist der Wert lautlos falsch.
✓ Richtig
Einen Raum wählen und darin bleiben:
oklch(0.629 0.193 263.4) für moderne Designsysteme
oder lch(60% 50 240) — aber Funktionsnamen nicht ohne Neukonvertierung tauschen

Wer nutzt HEX zu OKLCH

Frontend-Entwickler migrieren zu Tailwind-v4-OKLCH-Tokens
Tailwind v4 hat sich im Januar 2025 für seine Standardpalette auf OKLCH festgelegt. Eine v3-Codebasis mit HEX-basierten Markenfarben zu migrieren bedeutet, jeden HEX in OKLCH zu konvertieren und das Ergebnis in den neuen `@theme`-Block fallen zu lassen. Fügen Sie jeden HEX hier ein, kopieren Sie den `oklch()`-Wert, definieren Sie `--color-primary: oklch(0.629 0.193 263.4)` und Konsorten. Die Live-Farbraum-Badges markieren alle Farben, die sRGB überschreiten, sodass Sie entscheiden können, ob Sie den Wide-Gamut-Wert für Display-P3-Nutzer behalten oder an sRGB ausrichten.
shadcn/ui-Theme-Autoren bauen eigene Paletten
Das CSS-Variablen-Theme von shadcn/ui verwendet OKLCH für jedes Token (`--background`, `--foreground`, `--primary` usw.). Eigene Themes leiten sich von einem Basis-Marken-HEX ab, indem nach OKLCH konvertiert und dann L für die hellen/dunklen Varianten variiert wird. Marken-HEX einfügen, OKLCH-Tripel ablesen, den Rest des Themes durch Verschieben von L bei konstantem C und H aufbauen. Entspricht exakt dem kanonischen shadcn-Workflow.
Designsystem-Autoren erzeugen perzeptuell gleichmäßige Rampen
Erzeugen Sie eine Rampe 50/100/200/.../900, indem Sie den L-Kanal in gleichen OKLCH-Schritten verschieben, während Sie C und H konstant halten. Der visuelle Abstand zwischen benachbarten Stops wirkt über alle Farbtöne hinweg identisch — genau das, was eine Markenfarbenpalette wirklich braucht. Tailwind v4 nutzt exakt diese Konstruktion für seine Standardpalette, und shadcn/ui spiegelt sie. Jeden Marken-HEX einfügen, OKLCH ablesen, die Rampe algorithmisch oder über das Panel Helle Tönungen/Dunkle Tönungen/Töne unter dem Picker erzeugen.
Accessibility-Engineers verifizieren Kontrast im OKLCH-Raum
WCAG 2.1 und APCA bewerten beide gegen die aufgelöste sRGB-Farbe, nicht gegen das OKLCH-Tripel — aber die OKLCH-L einer Markenfarbe zu kennen, macht das Kontrast-Tuning vorhersehbar: L um 0,1 anheben, um AA gegen Weiß zu bestehen, L um 0,1 absenken, um AA gegen Schwarz zu bestehen. Die simultane OKLCH-+-WCAG-+-APCA-Ansicht macht die Beziehung sichtbar. Marken-HEX einfügen, die Kontrast-Badges beobachten, L in OKLCH justieren (vorhersehbarer als HSL), bis das Paar beide Metriken besteht.
Webentwickler bauen Wide-Gamut-Farb-Tokens für moderne Displays
Die meisten Apple-Geräte seit 2017 (und viele moderne Android-Geräte) rendern Display P3 nativ. Marken-Akzentfarben in OKLCH zu definieren, erlaubt es, P3-exklusive gesättigte Rot- und Grüntöne anzusprechen, die kein HEX-Code kodieren kann. Einen bestehenden HEX einfügen, um sein OKLCH abzulesen, dann den C-Kanal über die sRGB-Decke hinausschieben, um die zusätzliche P3-Sättigung zu beanspruchen. Die Farbraum-Badges bestätigen, dass der neue Wert in P3 passt (und auf sRGB-only-Bildschirmen über Browser-Chroma-Kompression elegant zurückfällt).
Dozenten erklären perzeptuelle vs. geometrische Helligkeit
Die simultane OKLCH-+-HSL-Ansicht macht den Unterschied zwischen perzeptueller und geometrischer Helligkeit offensichtlich. Fügen Sie ein gesättigtes Grün und ein gesättigtes Blau bei gleichem HSL-L=50 % ein; die OKLCH-L-Werte unterscheiden sich merklich, weil OKLCH die tatsächlich wahrgenommene Helligkeit misst. Ziehen Sie am HSL-Farbton-Schieberegler und beobachten Sie, wie OKLCH-L wandert, während Sie HSL-L konstant halten — die Kurve ist die Gamma-Eigenheit visualisiert. Eine kursfertige Demonstration, warum Designsysteme auf OKLCH migriert sind.
Open-Source-Maintainer modernisieren Token-Dokumentationen
Ältere Designsystem-Dokumentationen listen Markenfarben typischerweise nur als HEX-Codes auf. Die Modernisierung auf OKLCH bedeutet, dieselbe Farbe in beiden Räumen zu zeigen — den HEX für die Code-Block-Kompatibilität, das OKLCH für die Spezifikationstabelle und die moderne Token-Definition. Jeden HEX einfügen, die OKLCH-Ausgabe kopieren, die Dokumentation aktualisieren. Der teilbare URL-Hash erlaubt es Mitwirkenden außerdem, in einem GitHub-Issue eindeutig auf die genaue Farbe zu verlinken, um die es geht.

HEX-zu-OKLCH-Mathematik & Pipeline

HEX → OKLCH ist eine 7-Schritt-Pipeline
Die Konvertierung läuft durch fünf Zwischendarstellungen: HEX → ganzzahliges sRGB → normalisiertes sRGB (0–1) → lineares sRGB (gamma-dekodiert) → CIE XYZ D65 → OKLAB → OKLCH. Jeder Schritt ist eine wohldefinierte Matrix oder stückweise Funktion aus einer Primärquelle. Das Tool führt die vollständige Pipeline bei jedem Tastenanschlag aus; die Mathematik ist schnell genug (Mikrosekunden), dass kein Debouncing nötig ist. Das Anzeigen des Zwischen-RGB-Tupels neben OKLCH bedeutet, dass Sie einen unerwarteten OKLCH-Wert durch Inspizieren der RGB-Kanäle debuggen können.
CSS-Color-4-§11.2-Gammafunktion
Die sRGB-→-lineares-sRGB-Konvertierung nutzt die stückweise Funktion aus CSS Color 4 §11.2: `v ≤ 0.04045 ? v/12.92 : ((v + 0.055) / 1.055)^2.4`. Die stückweise Form (mit einem kleinen linearen Segment nahe null) vermeidet die numerische Instabilität der reinen Exponentenform bei sehr dunklen Farben. Es ist dieselbe Funktion, die ICC-Profile zum Kodieren von sRGB verwenden, und dieselbe Funktion, die Browser intern beim Rendern von HEX-Codes nutzen. Die Umkehrung für OKLCH → HEX wendet dieselbe Funktion rückwärts an: `v ≤ 0.0031308 ? v * 12.92 : 1.055 * v^(1/2.4) - 0.055`.
CSS-Color-4-§15.1-Matrix: lineares sRGB ↔ XYZ D65
Die Matrix aus CSS Color 4 §15.1 konvertiert lineares sRGB nach CIE XYZ unter dem D65-Weißpunkt: `X = 0.4124564 R + 0.3575761 G + 0.1804375 B`, `Y = 0.2126729 R + 0.7151522 G + 0.0721750 B`, `Z = 0.0193339 R + 0.1191920 G + 0.9503041 B`. Die Y-Zeile gibt die sRGB-Leuchtdichteformel. Es ist dieselbe Matrix, die in jeder Farbmanagement-Bibliothek verwendet wird, darunter ICC, Adobe Color Engine und die Open-Source-Pipeline LCMS. Die inverse Matrix für OKLCH → HEX wendet die §15.1-Inverse an.
Ottosson-2020-OKLAB-Matrizen und Kubikwurzel-Schritt
Die XYZ-D65-→-OKLAB-Konvertierung nutzt zwei Matrizen und einen Kubikwurzel-Schritt, die in Björn Ottossons OKLAB-Papier von 2020 veröffentlicht wurden. Die erste Matrix transformiert XYZ in einen LMS-Zapfenantwortraum (lose modelliert nach der Empfindlichkeit der menschlichen L-/M-/S-Zapfen). Jeder Kanal wird kubikwurzelt, um den Dynamikumfang nicht-linear zu komprimieren (der Schritt, der die perzeptuelle Uniformität korrigiert). Die zweite Matrix transformiert die kubikwurzelten LMS-Werte in die L-/a-/b-Koordinaten von OKLAB. Alle drei Operationen verwenden die exakten Werte, die in der Referenzimplementierung des Papiers veröffentlicht sind; keine Neuableitungen oder Rundungen. Die Umkehrung für OKLCH → HEX wendet diese Matrizen rückwärts an.
OKLAB ↔ OKLCH ist kartesisch nach polar
Die `a`- und `b`-Achsen von OKLAB bilden eine Chroma-Ebene senkrecht zur L-Achse. OKLCH kodiert diese Ebene polar: `C = sqrt(a² + b²)` (euklidischer Abstand zu Grau), `H = atan2(b, a) * 180 / π` (Winkel in Grad, in den Bereich 0–360° gewickelt). Die Umkehrung: `a = C * cos(H * π / 180)`, `b = C * sin(H * π / 180)`. Die polare Form wird gegenüber OKLAB für die Design-Token-Speicherung bevorzugt, weil Hue eine stabile Achse ist — das Drehen von Hue crossfaded nicht versehentlich durch Grau, wie es das Drehen von `a` oder `b` in OKLAB tun kann.
Farbraum-Erkennung über Kanal-Bereichsprüfung
Eine Farbe gilt als im Farbraum eines Zielraums (sRGB, Display P3, Rec2020), wenn jeder Kanal nach Konvertierung in die Primärfarben dieses Raumes innerhalb von `[-ε, 1 + ε]` liegt, wobei `ε = 1e-7` Float-Präzisionsrauschen rund um die Grenzen auffängt. Das Farbraum-Badge für jeden Raum wird rot, wenn ein Kanal den Bereich überschreitet. OKLCH ist farbraum-unbeschränkt — `oklch(0.7 0.4 30)` ist eine gültige Koordinate, kann aber den 256-Werte-pro-Kanal-Byte-Raum von sRGB überschreiten. Die Prüfung läuft bei jedem Tastenanschlag; in Kombination mit An sRGB ausrichten fängt das die häufigste Einführungs-Falle ab (Wide-Gamut-OKLCH, das auf klassischen Bildschirmen nicht korrekt angezeigt wird).
An-sRGB-ausrichten-binäre-Chroma-Reduktion
An sRGB ausrichten entspricht dem informativen Farbraum-Mapping-Algorithmus in CSS Color 4 §13: L und H bei den aktuellen Werten fixiert halten, mit binärer Suche in C ∈ [0, currentC] das größte C suchen, dessen sRGB-Konvertierung im Farbraum bleibt. Die Suche läuft höchstens 30 Iterationen (Präzision ~10⁻⁹), was für visuelle Genauigkeit mehr als genug ist. Das Erhalten von L und H bedeutet, dass die ausgerichtete Farbe sich als dieselbe Farbtonfamilie bei derselben Helligkeit liest — sie verliert nur Sättigung. Wir clippen RGB-Kanäle nicht direkt, weil das den Farbton merklich verzerrt (besonders bei Blautönen, die in Richtung Violett clippen).

Best Practices für HEX-/OKLCH-Workflows

OKLCH als kanonisches Token-Format in neuem Code verwenden
Für jedes Designsystem, das 2025 oder später ausgeliefert wird, definieren Sie Markenfarben und Paletten-Rampen in OKLCH. Die L-Achse liefert automatisch perzeptuell gleichmäßige Rampen; die Chroma-Achse kann Wide-Gamut-Farben adressieren, die HEX nicht kodieren kann. Behalten Sie einen HEX-Fallback für ältere Browser über `@supports not (color: oklch(0 0 0))` oder Build-Zeit-PostCSS, aber machen Sie OKLCH zur Source-of-Truth in Ihrem Token-Speicher. Tailwind v4 und shadcn/ui liefern beide so aus; neue Projekte können ihrem Beispiel ohne Reibung folgen.
Rampen erzeugen durch Verschieben von L bei konstantem C und H
Die kanonische OKLCH-Rampenkonstruktion: C und H fixieren, L in gleichen Schritten verschieben. Eine 9-stufige Rampe `oklch(L 0.15 263)` für L = 0,1, 0,2, …, 0,9 erzeugt visuell gleichmäßige Abstände über alle Schritte. Genau das tut Tailwind v4 intern. Verschieben Sie C nicht parallel zu L, es sei denn, Sie wollen, dass die chromatische Intensität der Rampe sich bewusst ändert (selten). Lassen Sie H nicht über die Schritte driften — schon eine 5°-Drift lässt die Rampe ungeordnet wirken.
Die Präzision von Tailwind v4 treffen: 3 Nachkommastellen bei L+C, 1 bei H
Die Standardpalette von Tailwind v4 veröffentlicht OKLCH-Werte mit drei Nachkommastellen bei L und C und einer Nachkommastelle bei H — `oklch(0.629 0.193 263.4)` für blue-500. Diese Präzision in eigenen Tokens zu treffen, bedeutet, dass Einfügen-in-die-Konfiguration-Workflows identische Werte zu denen erzeugen, die Tailwind ausliefert, und Diff-Tools keine vermeintlichen Unterschiede melden. Die Standardrundung des Tools folgt dieser Konvention; das Kopieren-Einfügen in einen `@theme`-Block ist bit-exakt.
Wide-Gamut-OKLCH durch die Display-P3-Farbraumprüfung schicken
Wenn Sie auf moderne Apple-Hardware abzielen (iPhone, iPad, MacBook ab 2017) oder HDR-fähige Inhalte ausliefern, erlauben die Farbraum-Badges, C über die sRGB-Decke hinauszuschieben, um die zusätzliche P3-Sättigung zu beanspruchen. Browser-gesteuerte Chroma-Kompression verhindert, dass die Farbe auf sRGB-only-Bildschirmen clippt. Richten Sie nicht standardmäßig vorab an sRGB aus, es sei denn, Sie wissen, dass Ihre gesamte Zielgruppe auf klassischen Displays sitzt — das verliert 30 %+ der Sättigung, die P3-Hardware rendern kann.
Einen HEX-Fallback über @supports für Vor-2023-Browser bereitstellen
Auch wenn die Evergreen-Browser-Unterstützung für `oklch()` inzwischen bei über 94 % liegt, braucht der lange Schwanz (IE 11, altes Android-Chrome, eingebettete Webviews) weiterhin einen Fallback. Wickeln Sie Tokens in `@supports (color: oklch(0 0 0))` und liefern Sie im alternativen Zweig eine HEX-Variante. Die Ausgabe von An sRGB ausrichten ist genau dieser Fallback — automatisch aus dem aktuellen OKLCH-Tripel erzeugt, wobei L und H erhalten bleiben. Build-Zeit-PostCSS-Plugins wie `postcss-oklab-function` können zur Übersetzungszeit auch die sRGB-Näherung einfügen.
Sowohl OKLCH als auch den Quell-HEX in Ihren Tokens dokumentieren
Wenn Sie eine CSS-Variable wie `--color-primary: oklch(0.629 0.193 263.4)` ausliefern, ergänzen Sie einen Kommentar mit dem Quell-HEX: `/* Quelle: #3b82f6 (Tailwind blue-500) */`. Wenn jemand sechs Monate später eine verwandte Tönung ableiten oder den Wert gegen ein Marken-Richtlinien-PDF prüfen muss, bewahrt der Quell-HEX die vollständige Provenienzspur. OKLCH allein ist aussagekräftig, aber schwerer auf den ersten Blick zu erkennen; der Quell-HEX ist die Kennung, nach der die meisten Teamkolleg:innen zuerst suchen werden.
Den URL-Hash nutzen, um Live-Farbentscheidungen zu teilen
Jede Farbänderung aktualisiert den URL-Hash automatisch als `#hex=3b82f6` oder `#oklch=...`. Kopieren Sie die URL in einen Slack-Thread oder ein GitHub-Issue und wer sie öffnet, landet bei derselben Farbe mit demselben OKLCH-Tripel. Das ist zuverlässiger, als eine OKLCH-Zeichenkette in den Chat zu kopieren — Empfänger vertippen sich manchmal bei den Nachkommastellen oder kopieren die falsche Präzision — und erlaubt einem Design-Review-Thread, sich auf eine exakte Farbe zu beziehen statt auf „das Markenblau, das wir am Dienstag besprochen haben“. Der Hash wird niemals an den Server übertragen.

Häufig gestellte Fragen

Was ist eine OKLCH-Farbe?
OKLCH ist die polare Form von OKLAB, einem perzeptuell uniformen Farbraum, den Björn Ottosson 2020 veröffentlicht hat. Die Kanäle sind Lightness (0–1, auch als 0–100 % schreibbar), Chroma (0 bis etwa 0,4 je nach Farbton und L, nach oben unbeschränkt) und Hue (0–360°, konzeptuell identisch mit HSLs Farbton). Sie wird aus CIE-LAB abgeleitet, indem ein LMS-Zapfenantwort-Schritt mit einem Kubikwurzel-Schritt durchlaufen wird. CSS Color 4 hat 2022 die `oklch()`-Syntax aufgenommen. Tailwind v4 hat sich 2025 für seine Standardpalette auf OKLCH festgelegt. Beispiel: `oklch(0.629 0.193 263.4)` ist Tailwinds blue-500.
Ist OKLCH besser als HSL?
Für Designsysteme ja. HSLs L (Lightness) ist geometrisch — abgeleitet durch Mittelung von RGB-Max und -Min — und erbt die Gammakurve von sRGB, sodass `hsl(60 100% 50%)` (Gelb) sichtbar heller wirkt als `hsl(240 100% 50%)` (Blau), obwohl beide L=50 % melden. OKLCHs L ist perzeptuell, verankert im OKLAB-Modell von Ottosson 2020. Das praktische Ergebnis: Eine OKLCH-Rampe bei uniformem L wirkt visuell gleichmäßig über alle Farbtöne; eine HSL-Rampe braucht pro Farbton handabgestimmte Korrekturen, um gleichmäßig zu wirken. Genau deshalb hat Tailwind v4 seine Standardpalette von HSL-basierter auf OKLCH-basierter Erzeugung migriert.
Welche Browser unterstützen oklch()?
Alle Evergreen-Browser seit Mitte 2023: Chrome und Edge 111 (März 2023), Safari 15.4 (März 2022, der früheste), Firefox 113 (Mai 2023). Die kombinierte caniuse-Abdeckung liegt über 94 %. Für den langen Schwanz — IE 11, altes Safari, Android-Chrome auf alter Hardware — wickeln Sie Ihre Tokens in `@supports (color: oklch(0 0 0))` und liefern Sie im alternativen Zweig einen HEX- oder `hsl()`-Fallback. Build-Zeit-Werkzeuge wie PostCSS `postcss-oklab-function` können zur Übersetzungszeit auch eine sRGB-Näherung neben dem OKLCH-Wert einfügen.
Warum OKLCH in Tailwind v4?
Tailwind v4 (veröffentlicht im Januar 2025) hat seine Standardpalette gezielt von HSL-basierter auf OKLCH-basierter Erzeugung umgestellt, weil OKLCH automatisch perzeptuell gleichmäßige Rampen liefert. Unter dem HSL-System von v3 hatten `red-500` und `blue-500` sichtbar unterschiedliche wahrgenommene Helligkeiten trotz identischer HSL-L-Prozente, was Designer zwang, einzelne Stops von Hand nachzujustieren; unter v4 wirken beide ausgeglichen, weil beide bei demselben OKLCH-L sitzen. OKLCH erschließt zudem Display-P3-Wide-Gamut-Farben, die kein HEX-Code kodieren kann — ein Tailwind-v4-Token wie `oklch(0.65 0.25 30)` kann P3-Rotwerte adressieren, die sRGB überschreiten. Der Build gibt für ältere Browser weiterhin HEX-Fallbacks aus.
Ist OKLCH perzeptuell uniform?
Ja — das ist der Designanspruch. OKLCH erbt seine perzeptuelle Uniformität von OKLAB, dem 2020er-Farbraum von Björn Ottosson, der gezielt entworfen wurde, um die Ungleichförmigkeiten in CIE-LAB (dem vorigen besten perzeptuell uniformen Raum) zu beheben. Ein fester Schritt im L-Kanal entspricht einem festen wahrgenommenen Helligkeitsschritt. Ein fester Schritt in C entspricht einem festen wahrgenommenen Chroma-Schritt. CIELAB-Näherungen brechen rund um sehr gesättigte Farben zusammen; OKLAB und seine polare Form OKLCH bleiben über den gesamten Farbraum genau, weshalb jedes moderne Designsystem-Werkzeug (Tailwind v4, shadcn/ui, Radix Colors v3) sich darauf festgelegt hat.
Wie liest man einen OKLCH-Wert?
`oklch(L C H)` — drei Zahlen, optional gefolgt von `/ A` für Alpha. L ist die Lightness von 0 (Schwarz) bis 1 (Weiß); die Zahlen- und Prozentform sind äquivalent (`0.6` und `60%`). C ist die Chroma von 0 (Grau) bis etwa 0,4 für die gesättigtsten sRGB-Farben; es gibt keine harte obere Schranke, Wide-Gamut-Farben können sie überschreiten. H ist der Farbton in Grad von 0 bis 360, wie bei HSL (0/360 = Rot, 120 = Grün, 240 = Blau). Beispiel: `oklch(0.629 0.193 263.4)` ist Tailwinds blue-500 — hell, stark chromatisch, im blauen Bogen.
Was ist der Unterschied zwischen OKLCH und LCH?
Beide sind polare Formen (Lightness / Chroma / Hue) eines Farbraums aus der CIE-LAB-Familie. LCH ist die polare Form von CIE-LAB, dem perzeptuell uniformen Raum von 1976. OKLCH ist die polare Form von OKLAB, Ottossons Aktualisierung von 2020. Der Unterschied: Die perzeptuelle Uniformität von CIE-LAB bricht bei stark gesättigten Blau- und Lilatönen zusammen (eine dokumentierte Schwäche des Modells), sodass eine LCH-Rampe durch gesättigte Farben subtil uneben wirkt. OKLAB behebt das, indem es die Matrizen aus einem korrigierten LMS-Zapfenantwort-Schritt neu ableitet. Beide sind in CSS Color 4 enthalten (`lch()`- und `oklch()`-Syntax); für neue Designsystem-Arbeit ab 2025 bevorzugen Sie OKLCH.
Wie konvertiere ich HEX in OKLCH?
Die Pipeline lautet: HEX `#RRGGBB` über `parseInt(hex, 16)` in ganzzahlige sRGB-Kanäle parsen, auf 0–1 normalisieren, über die stückweise Funktion aus CSS Color 4 §11.2 nach linearem sRGB gamma-dekodieren, mit der §15.1-Matrix multiplizieren, um CIE XYZ D65 zu erhalten, mit Ottossons LMS-Matrix multiplizieren und jeden Kanal kubikwurzeln, mit Ottossons OKLAB-Matrix multiplizieren, um L/a/b zu erhalten, dann kartesisch nach polar: `C = sqrt(a² + b²); H = atan2(b, a) * 180 / π`. Die gesamte Pipeline läuft in Mikrosekunden. Dieses Tool führt sie live während der Eingabe aus — `#3b82f6` landet sofort als `oklch(0.629 0.193 263.4)`.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →