OKLCH-in-HEX-Umrechner
Dieser OKLCH-in-HEX-Umrechner überführt eine Farbe in CSS-Schreibweise in einen sechsstelligen sRGB-Hexadezimalwert.
Im Browser ausführen – kostenlos
Der klar definierte Rechenweg führt von zylindrischen OKLCH-Koordinaten über OKLab zu linearem RGB; anschließend werden Kanäle außerhalb des darstellbaren sRGB-Farbraums begrenzt. Das Ergebnis ist deterministisch, automatisierbar und enthält zusätzlich die RGB- und OKLab-Werte. So können Sie die Umrechnung genau nachvollziehen, statt den endgültigen HEX-Code als undurchsichtige Ausgabe hinzunehmen.
Geben Sie eine gültige OKLCH-Farbe ein
Verwenden Sie die CSS-Funktionsschreibweise, beispielsweise oklch(62.8% 0.258 29.23). Die Helligkeit darf als Prozentwert von 0% bis 100% oder als einheitenlose Zahl von 0 bis 1 angegeben werden. Chroma muss mindestens null betragen. Ohne Suffix wird der Farbwinkel als Grad interpretiert; zusätzlich werden die üblichen Einheiten deg, grad, rad und turn unterstützt. Auch Winkel außerhalb des Bereichs von 0 bis 360 sind zulässig, da sie auf den gleichwertigen Winkel normalisiert werden. Der Umrechner verlangt alle drei Koordinaten und akzeptiert weder Alpha noch das CSS-Schlüsselwort none, Kommas, HEX-Eingaben oder andere Farbfunktionen. Dadurch bleibt der Vertrag eindeutig auf sechsstellige, deckende Farben beschränkt. Fehlerhafte Daten werden verständlich abgewiesen, statt durch Vermutungen ein scheinbar plausibles Ergebnis zu erzeugen. Sämtliche Zahlen müssen endlich sein; Infinity und NaN werden vor Beginn der Berechnung zurückgewiesen. Diese strenge Eingabegrenze eignet sich besonders für Build-Werkzeuge und Datenpipelines, in denen ein unbeabsichtigtes Format sonst eine falsche Markenfarbe auf viele erzeugte Ressourcen übertragen könnte.
Verstehen Sie den Umrechnungsweg
OKLCH beschreibt eine Farbe durch wahrnehmungsbezogene Helligkeit, Chroma und Farbwinkel. Zunächst wird der Winkel normalisiert und mithilfe von Kosinus und Sinus in die a- und b-Achse von OKLab aufgelöst. Danach liefert die veröffentlichte OKLab-Transformation lineare sRGB-Kanäle. Diese durchlaufen die standardisierte sRGB-Übertragungsfunktion und werden auf ganzzahlige Rot-, Grün- und Blauwerte zwischen 0 und 255 quantisiert. Jedes Byte wird zu genau zwei Hexadezimalzeichen, weshalb das Hauptergebnis stets die Form #RRGGBB besitzt. Die Antwort enthält außerdem die berechneten OKLab-Koordinaten und RGB-Ganzzahlen. Mit diesen Zwischenergebnissen lassen sich Abweichungen zwischen einer Designanwendung und einer Codepipeline leichter untersuchen. Fließkommawerte werden nur für das ausgegebene OKLab-Objekt gerundet; intern bleibt die volle JavaScript-Genauigkeit bis zur Berechnung der endgültigen RGB-Bytes erhalten. Das Verfahren verwendet weder Netzwerk, Zufall, aktuelle Uhrzeit, gebietsspezifische Formatierung noch veränderlichen Zustand. Deshalb entsteht für dieselbe Eingabe in API und Browser dasselbe JSON.
Behandeln Sie Farben außerhalb von sRGB
OKLCH kann Farben beschreiben, die gewöhnliche sRGB-Bildschirme und sechsstellige HEX-Codes nicht darstellen können. Liegt ein berechneter linearer RGB-Kanal unter null oder über eins, setzt ihn der Umrechner vor Anwendung der sRGB-Kurve auf die nächstgelegene Grenze. In diesem Fall steht clamped in der Antwort auf true. Diese Begrenzung ist schnell und vorhersehbar, jedoch keine wahrnehmungsorientierte Farbraumanpassung: Eine sehr kräftige Eingabe kann Feinheiten verlieren, ihren sichtbaren Farbton verändern oder auf einem vollständig gesättigten Kanal enden. Nutzen Sie die Kennzeichnung daher als Hinweis zur Kontrolle, vor allem bei Markenpaletten, Barrierefreiheits-Tokens und Verläufen, deren benachbarte Farben aufeinander abgestimmt sein müssen. Bei clamped gleich false lagen alle Kanäle bereits innerhalb von sRGB. Ist der Wert true und die optische Treue wichtig, verringern Sie Chroma im ursprünglichen OKLCH-Wert und rechnen Sie erneut um, bis die Farbe hineinpasst. Das ausdrückliche Verhalten verhindert ungültige Kanalberechnungen und garantiert eine verwendbare Ausgabe, ohne den Kompromiss zu verschweigen. Alpha bleibt unberücksichtigt, da sechsstellige HEX-Farben deckend sind.
Anwendungsfälle
Design-Tokens exportieren
Überführen Sie wahrnehmungsbezogene OKLCH-Paletten in stabile HEX-Codes für Systeme, die nur sechsstelliges sRGB unterstützen.
Farbpipeline prüfen
Vergleichen Sie RGB, OKLab und die Farbraumkennzeichnung bei abweichenden Ergebnissen aus Design- und Entwicklungswerkzeugen.
Kompatibles CSS erzeugen
Erstellen Sie einen deterministischen HEX-Ersatzwert für OKLCH-Farben in Stylesheets, E-Mails, Vorlagen oder älteren Clients.
Häufige Fragen
Was kostet die Umrechnung?
Sie können sie auf dieser Seite kostenlos im Browser ausführen; jede API-Anfrage kostet alternativ $0.002.
Warum enthält die Ausgabe clamped?
Mindestens ein berechneter linearer sRGB-Kanal lag außerhalb des darstellbaren Bereichs und wurde vor der Kodierung auf null oder eins begrenzt.
Wird Alpha-Transparenz unterstützt?
Nein. Das Ziel ist ein deckender sechsstelliger HEX-Code; OKLCH-Eingaben mit Alpha-Komponente werden daher abgewiesen.
Welche Einheiten sind für den Farbwinkel erlaubt?
Ohne Einheit gelten Grad; ausdrücklich möglich sind deg, grad, rad und turn. Winkel werden auf den Bereich von null bis 360 Grad normalisiert.
Warum liefert ein anderer Umrechner einen anderen HEX-Wert?
Werkzeuge können andere Matrizen, Rundungen oder Farbraumverfahren nutzen. Hier sind Transformation, Kanalbegrenzung, sRGB-Kurve und Rundung fest vorgegeben.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/color/oklch-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"oklch(62.8% 0.258 29.23)"}'const res = await fetch("https://api.kit.forhosting.com/color/oklch-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "oklch(62.8% 0.258 29.23)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/oklch-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "oklch(62.8% 0.258 29.23)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/oklch-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"oklch(62.8% 0.258 29.23)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"oklch(62.8% 0.258 29.23)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/oklch-hex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "oklch(62.8% 0.258 29.23)"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.oklch_hex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |