Skip to content

HEX-zu-HSL-Konverter

Konvertieren Sie jede HEX-Farbe direkt im Browser in HSL — 3-stellig, 6-stellig und 8-stellig mit Alpha werden unterstützt. Kostenlos, sofort, ohne Anmeldung, Ihre Farben verlassen die Seite nie.

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 Konformität mit CSS Color 4 §6.4, Unterstützung von 3-/4-/6-/8-stelligen HEX-Formen, korrekte Dekodierung des Alpha-Paares und Rundlaufstabilität zwischen HEX und HSL über die Farbton-Spannweite 0–360° und die S/L-Spannweite 0–100 %. — Go Tools Engineering Team · May 27, 2026

Was ist ein HEX-zu-HSL-Konverter?

Ein HEX-zu-HSL-Konverter ist ein kleines Werkzeug, das einen HEX-Farbcode (`#3b82f6`) in das zylindrische Tripel aus Farbton / Sättigung / Helligkeit umwandelt, das denselben sRGB-Farbwert kodiert (`hsl(217 91% 60%)`). HEX-Codes sind die knappe Base-16-Zeichenkette, die Designer und Entwickler zwischen Figma, Sketch, Photoshop, Marken-Richtlinien-PDFs und CSS-Stylesheets einfügen — drei 8-Bit-Kanäle, gepackt in eine 6-Zeichen-`#RRGGBB`-Form, verankert im sRGB-Farbraum-Modell, das IEC 61966-2-1 von 1996 definiert. HSL ist eine zylindrische Umformung desselben Farbraum-Modells auf drei designer-freundlichere Achsen: einen Farbton-Winkel auf dem Farbkreis, eine chromatische Sättigung in Prozent und eine Helligkeit in Prozent. Entwickler konvertieren ständig HEX → HSL: um eine Markenfarbe als CSS-Variable zu definieren und dann hellere oder dunklere Schattierungen zu komponieren, indem nur L angepasst wird; um eine Farbwähler-UI zu speisen, die Farbton und SL als separate Bedienelemente zeigt; um Tint- und Shade-Stufenleitern für ein Designsystem zu erzeugen; oder um Laufzeit-Mathematik mit CSS-Variablen über `hsl(from var(--primary) h s calc(l + 10%))` für abgeleitete Theme-Tokens durchzuführen. Dieses Tool führt die Konvertierung live während der Eingabe aus, ohne „Konvertieren“-Knopf, und blendet kostenlos jedes weitere gängige Farbformat (RGB, OKLCH, OKLAB, HSV, HWB, CMYK sowie die 148 benannten CSS-Farben) neben der HSL-Ausgabe ein.

**Das HSL-Format selbst verdient einen genaueren Blick.** HSL = Farbton (0–360°), Sättigung (0–100 %), Helligkeit (0–100 %). Der Farbton ist eine Winkelposition auf dem Farbkreis — 0° ist Rot, 60° Gelb, 120° Grün, 180° Cyan, 240° Blau, 300° Magenta, und 360° wrappt zurück zu Rot. Die Sättigung ist die chromatische Intensität von 0 % (achromatisches Grau) bis 100 % (vollständig chromatisch, ohne Grauanteil). Die Helligkeit ist die Lichtstärke von 0 % (reines Schwarz, unabhängig von Farbton oder Sättigung) über 50 % (der reine Farbton bei voller Chroma) bis 100 % (reines Weiß, unabhängig von Farbton oder Sättigung). Alvy Ray Smith veröffentlichte die ursprüngliche Herleitung 1978 als Teil des frühen Computergrafik-Vorstoßes, Designern Koordinatensysteme zu geben, die näher an ihrem kognitiven Modell von Farbe lagen als die rohe RGB-Kanaladressierung. Das Modell ist seit CSS3 (2010) in CSS enthalten und wird bis zurück zu IE 9 in jedem Browser ausgeliefert. Die ursprüngliche CSS-Syntax verwendete Kommata: `hsl(217, 91%, 60%)` für deckend, `hsla(217, 91%, 60%, 0.5)` für Werte mit Alpha. CSS Color 4 (W3C Candidate Recommendation seit 2022) ergänzte eine moderne leerzeichengetrennte Form: `hsl(217 91% 60%)` und `hsl(217 91% 60% / 0.5)` mit Slash-präfixiertem Alpha — dieselbe syntaktische Form wie die anderen funktionalen Notationen von CSS Color 4 (`rgb()`, `lab()`, `oklch()`, `color()`). Der Farbton kann auch in Umdrehungen (`hsl(0.6turn 91% 60%)`) oder Radianten (`hsl(3.787rad 91% 60%)`) ausgedrückt werden, alle äquivalent zur kanonischen Gradform. Jeder Evergreen-Browser parst jede syntaktische Variante; das Tool gibt standardmäßig die moderne leerzeichengetrennte Form aus.

Die Konvertierungsmathematik funktioniert in beide Richtungen sauber. **HEX → HSL** ist eine zweistufige Pipeline. Erstens den 6-stelligen HEX `#RRGGBB` als drei 2-stellige Base-16-Zahlen über `parseInt(hex.slice(1, 3), 16)` usw. parsen, um ganzzahlige RGB-Kanäle in 0–255 zu erhalten. Zweitens jeden Kanal auf 0–1 normalisieren, indem durch 255 dividiert wird, und dann `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min` berechnen. Die Helligkeit ist der Durchschnitt von max und min: `L = (max + min) / 2`. Die Sättigung ist abhängig von der Helligkeit: wenn L ≤ 0,5, `S = delta / (max + min)`; wenn L > 0,5, `S = delta / (2 - max - min)`. Äquivalent in der Form aus CSS Color 4 §6.4: `S = delta / (1 - |2L - 1|)` (mit S = 0, wenn delta = 0). Der Farbton ist stückweise nach Maximalkanal: wenn R Maximum ist, `H = ((G - B) / delta) % 6`; wenn G Maximum ist, `H = (B - R) / delta + 2`; wenn B Maximum ist, `H = (R - G) / delta + 4`; mit 60 multiplizieren, um auf Grad zu skalieren, und 360 addieren, falls negativ. Die Umkehrung (HSL → HEX, über RGB) verwendet die Hilfsfunktion `f(n) = L - a * max(-1, min(k-3, 9-k, 1))`, wobei `a = S * min(L, 1-L)` und `k = (n + H/30) mod 12`, angewendet mit n = 0, 8, 4, um R, G, B zu erzeugen, dann auf 0–255 skaliert und hex-kodiert.

**Warum HSL weiterhin nützlich ist.** Intuitive Schieberegler — das Anpassen von L hellt vorhersagbar auf oder dunkelt ab, ohne die Farbidentität zu brechen, während das Anpassen eines RGB-Kanals eine weniger vorhersagbare Farbverschiebung erzeugt. CSS-Mathematik zur Laufzeit — moderne Browser unterstützen `hsl(from var(--primary) h s calc(l + 10%))`, um Theme-Tokens zur Renderzeit abzuleiten. Designer-Kognition — Designer, die mit HSV-Farbwählern aufgewachsen sind, denken über Farbe in Begriffen von Farbton + Chroma, selbst wenn die Datei HEX ausliefert. **Das Problem von HSL** ist, dass seine Helligkeitsachse nicht perzeptuell uniform ist — ein Grün bei L=50 % wirkt sichtbar heller als ein Blau bei L=50 %, weil HSL die Gamma-Eigenheiten von sRGB erbt und jeden Farbton auf der L-Skala gleich behandelt. Wenn Sie perzeptuelle Uniformität brauchen (Palettenerzeugung, bei der jeder Schritt gleich hell aussehen soll; Dark-Mode-Token-Berechnung, die Blautext nicht versehentlich schwerer lesbar macht als Grüntext), greifen Sie stattdessen zu OKLCH — dasselbe Tool blendet beide ein, sodass die Wahl nur einen Blick entfernt liegt.

Der HEX-→-HSL-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 HSL 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 Umkehrung, der HEX-zu-OKLCH-Konverter für moderne perzeptuell uniforme Designsysteme (Tailwind v4 und shadcn setzen inzwischen beide standardmäßig auf OKLCH) sowie der HEX-zu-CMYK-Konverter für Druckvorstufen-Näherungen. Alle fünf Spokes und der Hub teilen sich denselben Parser und dieselbe Konvertierungsmathematik, 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.

// Convert a hex color string to {h, s, l, alpha} per CSS Color 4 §6.4
// h in 0-360, s and l in 0-1, alpha in 0-1.
function hexToHsl(input) {
  let h = input.trim().replace(/^#/, '');
  if (h.length === 3 || h.length === 4) h = h.split('').map(c => c + c).join('');
  const r = parseInt(h.slice(0, 2), 16) / 255;
  const g = parseInt(h.slice(2, 4), 16) / 255;
  const b = parseInt(h.slice(4, 6), 16) / 255;
  const alpha = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
  const max = Math.max(r, g, b), min = Math.min(r, g, b), delta = max - min;
  const L = (max + min) / 2;
  const S = delta === 0 ? 0 : delta / (1 - Math.abs(2 * L - 1));
  let H = 0;
  if (delta !== 0) {
    if (max === r) H = ((g - b) / delta) % 6;
    else if (max === g) H = (b - r) / delta + 2;
    else H = (r - g) / delta + 4;
    H = (H * 60 + 360) % 360;
  }
  return { h: H, s: S, l: L, alpha };
}

console.log(hexToHsl('#3b82f6')); // { h: 217, s: 0.91, l: 0.60, alpha: 1 }

Kernfunktionen

Alle fünf HEX-Formen werden identisch geparst

3-stellig `#F73`, 4-stellig mit Alpha `#F738`, 6-stellig `#3b82f6`, 8-stellig mit Alpha `#FF573380`, plus jeweils die Variante ohne `#`. Der Parser normalisiert sie alle vor der Ableitung von HSL in dieselbe interne Farbe, sodass Sie die Form einfügen können, die Ihre Quelle nutzt, ohne die Kurzform vorher manuell zu erweitern. Auch die Groß-/Kleinschreibung wird normalisiert — `#3b82f6` und `#3B82F6` liefern identische HSL-Ausgaben.

HSL-Ausgabe in moderner leerzeichengetrennter Syntax

Das HSL-Feld blendet den Wert in der modernen Form von CSS Color 4 ein: `hsl(217 91% 60%)` für deckende Farben, `hsl(217 91% 60% / 0.5)` für solche mit Alpha. Beide Formen funktionieren in jedem Evergreen-Browser (Chrome 65+, Safari 13+, Firefox 52+). Die alte Komma-Form `hsl(217, 91%, 60%)` ist nur eine mechanische Ersetzung entfernt, falls Ihr Ziel sie braucht; in neuem Code wird die moderne Syntax bevorzugt, weil sie zu den anderen funktionalen Syntaxen von CSS Color 4 passt.

OKLCH als Source-of-Truth, kein HSL-Pivot

Auch wenn dieser Spoke gezielt HEX → HSL adressiert, hält der gemeinsame zugrundeliegende Konverter die kanonische Farbe intern als OKLCH-Tripel. Dadurch laufen HEX → HSL → RGB → OKLAB → HEX ohne Float-Drift bei jedem Schritt; Legacy-Konverter, die HSL als Pivot nutzen, sammeln Rundungsfehler an und können den Farbton über wenige Konvertierungen um mehrere Grad driften lassen. Der OKLCH-Pivot hält jedes andere Format mathematisch an denselben Quellpunkt verankert.

Alpha-Kanal sauber dekodiert

8-stelliger und 4-stelliger HEX mit Alpha (`#RRGGBBAA` und `#RGBA`) werden korrekt geparst. Das hintere Paar bildet auf einen 0–1-Alpha-Float ab: `00` → 0, `80` → 0,502, `FF` → 1. Die Ausgabe nutzt standardmäßig die Slash-Syntax von CSS Color 4 (`hsl(217 91% 60% / 0.5)`); die alte Form `hsla(217, 91%, 60%, 0.5)` ist nur eine Ersetzung entfernt. Nützlich für die Migration von Design-Tokens, bei denen Alpha-Werte in 8-stelligen HEX-Codes vergraben waren.

Acht weitere Formate gleichzeitig sichtbar

Derselbe HEX, den Sie einfügen, treibt auch RGB, HSV, HWB, OKLCH, OKLAB, CMYK und den nächstgelegenen benannten CSS-Farbnamen — alles auf einen Blick auf derselben Seite. Sie sind nie nur auf HEX → HSL festgelegt. Wenn ein Kollege das OKLCH-Tripel für einen Tailwind-v4-Token braucht (wo perzeptuelle Uniformität mehr zählt als das gamma-verquickte L von HSL), den nächstgelegenen benannten Farbnamen für die Dokumentation oder das RGB-Tupel für einen Canvas-Aufruf, sind die Werte bereits mit eigenen Kopieren-Knöpfen vorhanden.

WCAG- + APCA-Kontrast eingebaut

Lassen Sie einen HEX durchlaufen und die Kontrast-Zeile bewertet ihn sofort gegen Weiß und gegen Schwarz mithilfe von WCAG 2.1 (regulatorische Untergrenze: 4,5:1 für Fließtext, 7:1 für AAA) und APCA Lc (vorgeschlagener WCAG-3-Nachfolger: Ziel `|Lc| ≥ 75` für Fließtext). Nützlich, wenn Sie gerade einen Marken-HEX in HSL konvertiert haben und vor der Auslieferung prüfen wollen, ob die resultierende Farbe (oder eine über die Helligkeit angepasste Variante) als Fließtextfarbe wirklich lesbar ist.

Als CSS / Tailwind v4 / SwiftUI / Compose / Flutter kopieren

Unter dem Picker verwandelt der Abschnitt Als Code kopieren die aktuelle Farbe in einfügefertige Snippets für fünf Plattformen: CSS Custom Property (`--color-brand: hsl(217 91% 60%)`), Tailwind-v4-`@theme`-Token, SwiftUI-`Color(hue:saturation:brightness:)`-Literal, Jetpack-Compose-Konstante `Color.hsl(217f, 0.91f, 0.60f)`, Flutter `HSLColor.fromAHSL(...)`. Die exakte Syntax, die jede Plattform erwartet — bereit, in einen iOS-Asset-Katalog, eine Android-Theme-Datei oder ein Flutter-`ThemeData` zu fallen.

100 % im Browser — kein Upload, kein Tracking

Das gesamte HEX-Parsing, die HSL-Konvertierung, 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, NDA-geschützte Mockup-Entwürfe und jede andere vertrauliche Farbarbeit.

Teilbarer URL-Hash für die exakte Farbe

Die aktuelle Farbe wird bei jeder Änderung automatisch als `#hex=3b82f6` in den URL-Hash kodiert. Kopieren Sie die URL, fügen Sie sie in einen Slack-Thread oder ein GitHub-Issue ein, und wer sie öffnet, landet beim selben HEX mit demselben HSL-Tripel. Der Hash lebt nur in Ihrer Adressleiste und wird niemals an den Server übertragen (Browser nehmen URL-Fragmente nicht in HTTP-Anfragen auf), sodass selbst das Teilen des Links die Farbe an keinen Dritten leakt.

Alternativen zum HEX-zu-HSL-Konverter

RapidTables Hex to HSL

Browser-Tool

Das Standard-Google-Ergebnis für „hex to hsl“ — ein Einbahn-Formular mit HEX rein, HSL raus, keine anderen Formate sichtbar. Brauchbar für einmalige Nachschlagewerke, wenn man aus der Suche kommt. Es fehlen OKLCH, Kontrastprüfung, Farbraum-Erkennung, Alpha-Behandlung und die simultane Multi-Format-Ansicht. Dieses Tool gewinnt auf jeder Achse außer dem rein minimalistischen Einzelkonvertierungsfall.

ColorHexa

Browser-Tool

Lange laufende SEO-Seiten pro Farbe mit umfangreichen Metadaten: Konvertierungen, Paletten, Harmonien, Verläufe für jeden abgefragten HEX. Die UI ist veraltet (frühe 2010er), keine OKLCH-Unterstützung, kein APCA-Kontrast, keine Wide-Gamut-Behandlung. Stark für die SEO-Auffindbarkeit eines bestimmten HEX über Google; schwächer für aktive Konvertierungs-Workflows, bei denen das Tippen in einer vereinheitlichten Feld-UX schneller ist.

W3Schools HSL Calculator

Browser-Tool

Anfängerfreundlicher HEX/RGB/HSL-Umschalter auf einer lehrorientierten Seite, allgegenwärtig in Suchergebnissen. Kein OKLCH, keine Alpha-Behandlung jenseits von hsla, keine fortgeschrittenen Funktionen. Brauchbar als Referenz neben den Erklärinhalten von W3Schools. Dieses Tool gewinnt auf jeder anderen Achse: mehr Formate, perzeptuelle Mathematik, Farbraum- + Kontrast- + CVD-Funktionen, moderner Code-Export für Tailwind v4 / SwiftUI / Compose / Flutter.

Browser-DevTools-Farbwähler

eingebaute Browser-Funktion

Chrome, Firefox und Safari liefern in den DevTools alle einen Farbwähler, der inline zwischen HEX, RGB und HSL umschaltet, wenn Sie im CSS-Bereich auf ein Farbfeld klicken. Kostenlos, keine Installation, immer verfügbar. Es fehlen OKLCH, teilbare URLs und 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 brauchen.

HSL Color Picker von Mothereff

Browser-Tool

Ein fokussierter HSL-Picker mit Live-Schiebereglern für Farbton/Sättigung/Helligkeit und HEX-Ausgabe. Minimalistische UI, gut für schnelle HSL-Erkundung. Es fehlen OKLCH und das breitere Format-Raster; keine Kontrast- oder Farbraum-Funktionen. Brauchbar als reines HSL-fokussiertes Tool; dieses Tool deckt denselben Workflow plus 8 weitere Format-Ansichten und die perzeptuellen Prüfungen ab.

ConvertingColors

Browser-Tool

SEO-Seiten pro Farbe, die viele Räume abdecken (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Es fehlen moderne OKLCH-Unterstützung und die vereinheitlichte Feld-Bearbeitungs-UX. Auto-generierte Inhaltsseiten wirken Content-Farm-artig, die Konvertierungsdaten sind aber korrekt. Gut zum Stöbern einzelner Farb-Metadaten über Google; dieses Tool ist für aktive Workflows schneller.

HEX-zu-HSL-Beispiele

CSS-Variablendefinition für eine Markenfarbe

#3b82f6

HSL-Ausgabe: `hsl(217 91% 60%)`. Der kanonische Workflow für ein auf HSL aufgebautes Designsystem: die Marke einmal als `--primary: hsl(217 91% 60%)` definieren und dann hellere Schattierungen komponieren, indem nur der L-Prozentsatz angepasst wird — `hsl(217 91% 70%)` für eine Hover-Tönung, `hsl(217 91% 80%)` für einen deaktivierten Zustand, `hsl(217 91% 90%)` für eine dezente Hintergrundfüllung. Farbton und Sättigung bleiben fixiert, also wirkt die Familie als kohärente Stufenleiter. RGB-basierte Stylesheets brauchen pro Schritt drei koordinierte Kanal-Edits; HSL braucht nur einen.

Designer übersetzt Figma-Farbe in HSL-Picker

#FF5733

HSL-Ausgabe: `hsl(11 100% 60%)`. Designer, die in den Begriffen Farbton + Sättigung + Helligkeit denken (das kognitive Modell, das Munsell 1905 formalisiert hat), wollen das HSL-Tripel oft, selbst wenn die Quelldatei HEX ausliefert. Farbton = 11° platziert dies auf der roten Seite des Orangekeils; Sättigung = 100 % bedeutet, dass der Kanal vollständig chromatisch ist; Helligkeit = 60 % liegt eine Stufe über dem Mittelpunkt. Den Figma-HEX einmal einzufügen, erzeugt das passende HSL, bereit für den mentalen Picker des Designers, ohne dass eine manuelle Farbkreis-Schätzung nötig wäre.

Schneller Helligkeits-Sweep für eine Palette

#3b82f6

HSL-Ausgabe: `hsl(217 91% 60%)`. Mit dem HSL-Tripel in der Hand wird die Erzeugung einer Tönungsstufenleiter zu einem eindimensionalen Sweep: L auf 70 % drehen für `hsl(217 91% 70%)`, 80 % für `hsl(217 91% 80%)`, 90 % für `hsl(217 91% 90%)`, um Richtung Weiß zu klettern; auf 50 %, 40 %, 30 % senken für dunklere Schattierungen. Die gesamte 9-stufige Stufenleiter entsteht aus der Änderung einer Zahl. Helle und dunkle Tönungen bleiben tonal verwandt, weil Farbton und Sättigung konstant bleiben — der Trick, den klassische Designsysteme nutzten, bevor OKLCH perzeptuell uniforme Stufenleitern günstig machte.

8-stelliger HEX mit Alpha → hsla()

#FF573380

HSL-Ausgabe: `hsl(11 100% 60% / 0.5)`. Das letzte Paar (`80`) wird als `128/255 ≈ 0.502` dekodiert und über die Slash-Syntax aus CSS Color 4 als Alpha-Kanal eingeblendet. Die äquivalente Altform ist `hsla(11, 100%, 60%, 0.5)`, die seit IE 9 in jedem Browser unterstützt wird und die ältere Präprozessoren erwarten. 8-stelliger HEX mit Alpha wurde 2018 nativ in alle Evergreen-Browser ausgeliefert; davor musste Alpha explizit über die `hsla()`-Funktion ausgedrückt werden.

Häufige HEX → HSL Konvertierungen

Referenztabelle der 10 am häufigsten konvertierten HEX-Codes und ihrer HSL-Entsprechungen — reine Primärfarben, reine Sekundärfarben und zwei reale Markenfarben aus der Tailwind-Palette.

Schwarz

#000000 hsl(0 0% 0%)

Reines Schwarz. Helligkeit bei 0 % — die Abwesenheit von ausgesendetem Licht. Farbton und Sättigung sind für Grautöne konventionell 0.

#000000 hsl(0 0% 0%)

Reines Schwarz auf einem Bildschirm ist selten die richtige Designentscheidung — versuchen Sie `hsl(0 0% 7%)` oder OKLCH-Helligkeit 0,1–0,15 für weicheren Fließtext.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Weiß

#FFFFFF hsl(0 0% 100%)

Reines Weiß. Helligkeit bei 100 % — die hellstmögliche sRGB-Farbe. Farbton und Sättigung sind für Grautöne konventionell 0.

#FFFFFF hsl(0 0% 100%)

Reine weiße Hintergründe können in dunkler Umgebung Augenermüdung erzeugen — versuchen Sie `hsl(0 0% 98%)` oder OKLCH 0,98 für wärmere Alternativen.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Rot

#FF0000 hsl(0 100% 50%)

Reines Rot. Farbton bei 0° (der Startposition des Farbkreises), Sättigung vollständig chromatisch, Helligkeit am Mittelpunkt, an dem reine Farbtöne leben.

#FF0000 hsl(0 100% 50%)

Reines Rot ist stark gesättigt und passt selten in eine Markenpalette — die meisten „roten“ Markenfarben sitzen näher bei `hsl(0 73% 50%)` (#DC2626).

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Grün

#00FF00 hsl(120 100% 50%)

Reines Grün. Farbton bei 120° (ein Drittel um den Farbkreis), Sättigung vollständig chromatisch, Helligkeit bei 50 %. Benannter CSS-Farbname `lime`.

#00FF00 hsl(120 100% 50%)

Das CSS-Schlüsselwort `green` löst zu #008000 (hsl(120 100% 25%)) auf, nicht zu #00FF00 — eine häufige Verwechslungsquelle. Verwenden Sie `lime` für reines hsl(120 100% 50%).

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Blau

#0000FF hsl(240 100% 50%)

Reines Blau. Farbton bei 240° (zwei Drittel um den Farbkreis), Sättigung vollständig chromatisch, Helligkeit am Mittelpunkt.

#0000FF hsl(240 100% 50%)

Reines Blau auf weißem Hintergrund besteht den WCAG-AA-Kontrast nicht (3,7:1) — erwägen Sie `hsl(224 76% 48%)` (Tailwind blue-700) für Fließtext.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Cyan

#00FFFF hsl(180 100% 50%)

Cyan. Farbton bei 180° (dem Mittelpunkt des Farbkreises, gegenüber Rot), Sättigung vollständig chromatisch, Helligkeit am reinen Farbton-Mittelpunkt. Benannte CSS-Farbe `cyan` oder `aqua`.

#00FFFF hsl(180 100% 50%)

Cyan sitzt gegenüber Rot auf dem Farbkreis (180°/0°) und ist damit der natürliche Komplementär-Harmoniepartner für jede Markenfarbe aus der Rot-Familie.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Magenta

#FF00FF hsl(300 100% 50%)

Magenta. Farbton bei 300° (fünf Sechstel um den Farbkreis), Sättigung vollständig chromatisch, Helligkeit am reinen Farbton-Mittelpunkt. Benannte CSS-Farbe `magenta` oder `fuchsia`.

#FF00FF hsl(300 100% 50%)

Magenta sitzt gegenüber Grün auf dem Farbkreis (300°/120°) und ist damit der natürliche Komplementär-Harmoniepartner für jede Markenfarbe aus der Grün-Familie.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Gelb

#FFFF00 hsl(60 100% 50%)

Gelb. Farbton bei 60° (ein Sechstel um den Farbkreis, zwischen Rot und Grün), Sättigung vollständig chromatisch, Helligkeit am reinen Farbton-Mittelpunkt.

#FFFF00 hsl(60 100% 50%)

Gelb bei hsl(60 100% 50%) wirkt deutlich heller als Rot bei hsl(0 100% 50%) — ein anschauliches Beispiel für die perzeptuelle Ungleichförmigkeit von HSL. OKLCH normalisiert das.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Tailwind blue-500

#3b82f6 hsl(217 91% 60%)

Tailwind CSSs Standard-blue-500-Markenfarbe — das kanonische „Web-Blau“ der mittleren 2020er-Jahre. Genutzt in unzähligen Dashboards, Marketingseiten und Admin-Tools.

#3b82f6 hsl(217 91% 60%)

Tailwind v4 definiert blue-500 in OKLCH neu (`oklch(0.629 0.193 263.4)`) für perzeptuell uniforme Stufenleitern — HSL ist der v3-Fallback.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

Tailwind rose-500

#f43f5e hsl(350 89% 60%)

Tailwind CSSs Standard-rose-500 — ein hoch gesättigtes Pink-Rot, häufig genutzt für Akzent-Buttons, Alert-Zustände und Markenkontrast.

#f43f5e hsl(350 89% 60%)

Der Farbton von rose-500 (350°) sitzt knapp vor Rot (0°/360°) auf dem Farbkreis — eine leichte Pink-Verschiebung, die wärmer wirkt als reines Rot.

Brauchen Sie stattdessen perzeptuell uniforme Ausgabe? Probieren Sie den dedizierten HEX-zu-OKLCH-Konverter — jeder L-Schritt wirkt über Farbtöne hinweg gleich hell, anders als bei HSL.

So nutzen Sie den HEX-zu-HSL-Konverter

  1. 1

    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`). Das Tool normalisiert alle fünf Eingabeformen intern zur gleichen kanonischen Farbe. Groß-/Kleinschreibung ist egal (`#3b82f6` und `#3B82F6` werden identisch geparst). Ungültige Zeichen oder eine falsche Stellenzahl erzeugen einen dezenten Inline-Fehler; gültiger HEX aktualisiert jedes andere Formatfeld in Echtzeit, einschließlich HSL.

  2. 2

    HSL-Tripel aus dem HSL-Feld ablesen

    Das HSL-Feld unter dem HEX-Feld zeigt den passenden `hsl()`-Wert in der modernen leerzeichengetrennten Syntax von CSS Color 4: `hsl(217 91% 60%)` für eine deckende Farbe, `hsl(217 91% 60% / 0.5)` für eine mit Alpha. Der Farbton ist eine ganzzahlige Gradangabe von 0 bis 360; Sättigung und Helligkeit sind ganzzahlige Prozentwerte von 0 bis 100. Die Werte werden für die Anzeige gerundet — die interne OKLCH-Source-of-Truth des Tools bedeutet, dass die zugrundeliegende Präzision Float ist, sodass Rundläufe zurück zu HEX stabil bleiben.

  3. 3

    Auf Kopieren klicken, um die HSL-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 (`hsl(217 91% 60%)`); falls Ihr Ziel die alte Komma-Form benötigt (`hsl(217, 91%, 60%)`), ist die Konvertierung mechanisch. Für plattformspezifische Ausgaben (Tailwind v4, 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

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

    Derselbe HEX, den Sie einfügen, leuchtet auch in den anderen Formatfeldern auf — RGB für Canvas-Aufrufe und Hardware, OKLCH und OKLAB für perzeptuell uniforme Designsysteme, HSV und HWB für Designer-Farbwähler-Workflows, CMYK für Druckschätzungen und der nächstgelegene benannte CSS-Farbname für Dokumentation und Fließtext. Sie sind nie nur auf HEX → HSL festgelegt. Wenn Sie zusätzlich das OKLCH-Tripel für einen Tailwind-v4-`@theme`-Block brauchen (wo wahrgenommene Helligkeit mehr zählt als das gamma-verquickte L von HSL), steht es direkt im OKLCH-Feld mit eigenem Kopieren-Knopf bereit.

  5. 5

    Picker nutzen, um die Helligkeit visuell zu durchlaufen

    Unter dem Formatraster befindet sich ein SL-Quadrat + Farbton-Schieberegler + Alpha-Schieberegler für die visuelle Erkundung. Das SL-Quadrat bildet direkt auf die Sättigung-×-Helligkeits-Ebene von HSL ab: vertikal ziehen, um L von 0 % bis 100 % zu durchlaufen, während Sie in Echtzeit zusehen, wie das HSL-Feld aktualisiert wird. Nützlich, um eine helle oder dunkle Tönung visuell zu erzeugen, bevor Sie den exakten Prozentwert fixieren. In Chromium-basierten Browsern (Chrome, Edge, Brave) aktiviert der EyeDropper-Knopf die native `EyeDropper`-API, um einen beliebigen Bildschirmpixel abzutasten — auch außerhalb des Browserfensters.

Häufige HEX-/HSL-Fehler

Annahme, die HSL-Helligkeit sei perzeptuell uniform

Ein Grün bei `hsl(120 100% 50%)` wirkt sichtbar heller als ein Blau bei `hsl(240 100% 50%)`, obwohl beide bei L=50 % liegen. Tönungsstufenleitern durch L-Sweeps zu erzeugen, liefert über Farbtöne hinweg ungleichmäßig wirkende Ergebnisse — das helle Ende der Grünstufen klettert schneller als das der Blaustufen. Das ist eine strukturelle Eigenschaft davon, dass HSL die Gamma-Eigenheiten von sRGB erbt, kein Bug in Ihrem Code. Für perzeptuell uniforme Stufenleitern wechseln Sie zu OKLCH.

✗ Falsch
L in HSL für eine 9-stufige Palette durchlaufen:
hsl(120 100% 50%) und hsl(240 100% 50%) beim selben L
wirken sichtbar unterschiedlich hell — die Palette fühlt sich ungleichmäßig an.
✓ Richtig
Stattdessen L in OKLCH durchlaufen:
oklch(0.7 0.2 130) und oklch(0.7 0.2 250)
wirken gleich hell; die Palette liest sich über alle Farbtöne kohärent.

Vergessen, dass der Farbton bei 360° wrappt

Der HSL-Farbton ist winkelbasiert — `hsl(370 91% 60%)` wird als `hsl(10 91% 60%)` interpretiert, weil 370° mod 360° = 10°. Den Farbton von 350° nach 380° zu animieren, wrappt sauber durch 360°/0° (eine schmale Spalte Rot), aber das lineare Interpolieren von H=350 auf H=10 in die falsche Richtung nimmt den *langen* Weg durch Cyan, Grün, Gelb — 320° Umweg. Verwenden Sie `Math.min(diff, 360 - diff)`, um den kurzen Pfad zu wählen, oder die eingebaute Farbton-Interpolation einer Farbbibliothek.

✗ Falsch
Lineare Interpolation von H=350 nach H=10:
(350 + 10) / 2 = 180° (Cyan-Mittelpunkt)
falsch — geht den langen Weg um den Farbkreis.
✓ Richtig
Kurzpfad-Farbton-Interpolation:
Mittelpunkt = ((350 + 10 + 360) / 2) % 360 = 0° (Rot-Mittelpunkt)
geht durch Rot, den kurzen Weg um den Farbkreis.

HSL mit HSV verwechseln

HSL und HSV teilen sich die Farbton-Achse, unterscheiden sich aber in der dritten Achse. Die Lightness von HSL ist symmetrisch — 0 % Schwarz, 50 % reiner Farbton, 100 % Weiß. Der Value von HSV ist asymmetrisch — 0 % Schwarz, 100 % reiner Farbton, Weiß nur, wenn die Sättigung auf 0 fällt. `hsl(0 100% 100%)` ist Weiß; `hsv(0 100% 100%)` ist reines Rot. Viele Farbbibliotheken und Designwerkzeuge (der HSB-Picker von Photoshop, das Farbpanel von Sketch) verwenden HSV — Werte zwischen den beiden Systemen ohne Konvertierung zu kopieren, ergibt völlig andere Farben.

✗ Falsch
HSV-Werte aus Photoshop in eine CSS-hsl()-Regel einfügen:
Photoshop HSB 0, 100, 100 (reines Rot)
CSS hsl(0 100% 100%) rendert als Weiß — völlig falsche Farbe.
✓ Richtig
HSV → HSL vor dem Einfügen in CSS konvertieren:
HSV 0, 100, 100 → HSL 0, 100 %, 50 %
CSS hsl(0 100% 50%) rendert als reines Rot — korrekt.

Die Prozentzeichen in HSL weglassen

Die S- und L-Achsen von HSL erfordern in CSS das `%`-Suffix — `hsl(217 91 60)` ist in jedem Browser ein Parse-Fehler; die korrekte Form ist `hsl(217 91% 60%)`. Nur der Farbton ist dimensionslos (seine Einheit ist Grad, das Suffix aber optional). Viele Ad-hoc-Konverter vergessen, die Prozentzeichen in ihrer HSL-Ausgabe auszugeben, und erzeugen ungültiges CSS, das beim Einfügen stillschweigend fehlschlägt. Das Tool gibt in der HSL-Ausgabe immer die Prozentzeichen aus.

✗ Falsch
HSL ohne Prozentzeichen ausgeben:
hsl(217 91 60)
CSS-Parse-Fehler — jeder Browser ignoriert die gesamte Regel.
✓ Richtig
HSL mit Prozentzeichen auf S und L ausgeben:
hsl(217 91% 60%)
Gültiges CSS — funktioniert in jedem Evergreen-Browser und IE 9+.

Wer nutzt HEX zu HSL

Frontend-Entwickler definieren HSL-CSS-Variablen
Definieren Sie einmal `--primary: hsl(217 91% 60%)` aus dem Figma-HEX und komponieren Sie dann `--primary-hover: hsl(217 91% 70%)`, `--primary-active: hsl(217 91% 50%)`, `--primary-bg: hsl(217 91% 95%)`, indem nur die L-Zahl angepasst wird. HEX einmal einfügen, das HSL-Tripel ablesen, in den CSS-Custom-Property-Block einsetzen. Das Muster, mit dem klassische Designsysteme ihre Tönungen und Schattierungen tonal kohärent hielten, bevor OKLCH-basierte Stufenleitern übernahmen.
Designer übersetzen HEX in HSL-Picker
Designer, die mit Farbton-+-Sättigung-+-Wert-Pickern aufgewachsen sind (Adobe, Sketch, der HSB-Modus von Figma), wollen das HSL-Tripel oft, selbst wenn die Quelldatei HEX ausliefert. Den HEX einmal einzufügen, erzeugt das passende HSL, bereit für die mentale Farbkreis-Position des Designers, ohne eine manuelle Schätzung. Hilfreich, wenn Sie eine Marken-Farbspezifikation prüfen und wissen wollen, wo sie auf dem Farbkreis im Verhältnis zu anderen Markenfarben der Familie sitzt.
Autoren von Theme-Systemen berechnen Dark-Mode-Tokens
Dark-Mode-Theming kehrt häufig L um, behält aber H und S — eine helle `hsl(217 91% 60%)`-Primary bildet auf eine dunkle `hsl(217 91% 40%)` (oder ähnliches) ab. Den Hell-Modus-HEX einfügen, das HSL ablesen, das Dark-Mode-L berechnen, das neue HSL zurück in den Dark-Theme-Token schreiben. Das Muster ist mechanisch, wenn Sie das HSL-Tripel haben; mit rohen RGB-Kanälen ist es deutlich umständlicher.
Autoren von Designsystemen erzeugen Tint- und Shade-Stufenleitern
Erzeugen Sie eine 9-stufige Tint-/Shade-Stufenleiter, indem Sie L durchlaufen: `hsl(217 91% 95%)` (am hellsten), 85 %, 75 %, 65 %, 55 %, 45 %, 35 %, 25 %, `hsl(217 91% 15%)` (am dunkelsten). Den Basis-HEX einfügen, das HSL ablesen, L mental oder im Code in 10-%-Schritten durchlaufen. (Für perzeptuell uniforme Stufenleitern, in denen jeder Schritt gleich hell aussieht, wechseln Sie zum nebenan liegenden OKLCH-Feld — HSL-Stufenleitern wirken über Farbtöne hinweg ungleichmäßig, weil L nicht perzeptuell uniform ist.)
CSS-Autoren nutzen die Laufzeit-Mathematik hsl(from ...)
Modernes CSS unterstützt die Syntax `color-function-from`: `hsl(from var(--primary) h s calc(l + 10%))` leitet zur Renderzeit eine hellere Variante von `--primary` ab, ohne jeden Schritt vorzuberechnen. Marken-HEX einfügen, das HSL-Tripel bestätigen, die Basis in eine CSS-Variable ablegen und die Laufzeit-Mathematik für abgeleitete Tokens verwenden. Wird in Chrome 119+, Safari 17.2+, Firefox 128+ ausgeliefert.
Frontend-Entwickler bauen Tailwind-v3-HSL-Token-Sätze
Tailwind v3 speicherte Theme-Farben als leerzeichengetrennte HSL-Tripel in CSS-Variablen (`--primary: 217 91% 60%`), zusammengesetzt über `hsl(var(--primary))` in `tailwind.config.js`. Marken-HEX einfügen, das HSL ablesen, die drei Zahlen (ohne den `hsl(...)`-Wrapper) in die Variablendefinition ablegen. Tailwind v4 ist seither auf OKLCH-zuerst umgeschwenkt, v3-Codebases nutzen aber weiter das HSL-Muster und werden das noch jahrelang tun.
Autoren von Farbwähler-UIs bilden HEX auf HSL-Bedienelemente ab
Einen Farbwähler zu bauen, der Farbton / Sättigung / Helligkeit als drei separate Schieberegler exponiert (die klassische Adobe-artige UI), bedeutet, einen eingehenden HEX auf die drei Bedienelemente des Pickers abzubilden. HEX hier einfügen, das HSL-Tripel ablesen, die drei Schieberegler programmatisch positionieren. Die Konvertierung ist dieselbe, die Ihr Picker intern durchführen würde; dieses Tool blendet die Zwischenwerte für das Debugging ein.
Accessibility-Engineers passen die Helligkeit der Markenfarbe für Kontrast an
Wenn eine Markenfarbe den WCAG-Kontrast gegen einen Hintergrund nicht besteht, ist der günstige Fix, L zu erhöhen, bis das Verhältnis passt — ohne H oder S zu ändern, liest sich die Farbe weiterhin als dieselbe Markenidentität. Marken-HEX einfügen, die Kontrast-Badges beobachten, L mental anpassen (oder die L-Achse des Pickers verwenden), bis sowohl WCAG als auch APCA bestehen. Das HSL-Feld blendet den neuen L-Prozentwert für das Spezifikationsdokument ein; das HEX-Feld blendet den passenden Code für das Stylesheet ein.

HEX-zu-HSL-Mathematik & Parsing

HEX → RGB → HSL ist eine zweistufige Pipeline
Die Konvertierung läuft über RGB als Zwischenformat. Schritt eins: HEX über `parseInt(hex.slice(1, 3), 16)` je Kanal zu RGB-Ganzzahlen parsen. Schritt zwei: RGB auf 0–1 normalisieren, `max`/`min`/`delta` berechnen, die stückweise Trigonometrie aus CSS Color 4 §6.4 anwenden: `L = (max + min) / 2`, `S = delta / (1 - |2L - 1|)`, `H = stückweise * 60`. Die zweistufige Struktur ist der Grund, weshalb das Tool auch das zwischenliegende RGB-Tupel einblendet — es kostet nichts und ist für das Debugging nützlich.
CSS Color 4 §6.4 definiert den Referenzalgorithmus
Die W3C-Spezifikation CSS Color 4 §6.4 (Algorithmus `rgb()` zu `hsl()`) definiert die kanonische stückweise Mathematik: Helligkeit als Mittelpunkt von max und min, Sättigung als `delta / (1 - |2L - 1|)` (mit S = 0, wenn delta = 0, um Division durch null bei Grautönen zu vermeiden), Farbton als 60-Grad-pro-Schritt-Trigonometrie nach Maximalkanal. Die Spezifikation behandelt auch Sonderfälle: reines Schwarz (`#000`) ergibt `hsl(0 0% 0%)` mit einem willkürlichen 0°-Farbton; reines Weiß (`#FFF`) ergibt analog `hsl(0 0% 100%)`; reines Grau ergibt `hsl(0 0% 50%)`.
Farbton wrappt bei 360°, S und L sind Prozentwerte
Die drei Achsen von HSL haben unterschiedliche Einheiten. Der Farbton ist ein Winkelgrad von 0 bis 360 mit Wraparound — `hsl(370 ...)` wird als `hsl(10 ...)` interpretiert, weil sich Winkelpositionen umwickeln. Sättigung und Helligkeit sind Prozentwerte von 0 % bis 100 %, ohne Wraparound; Werte außerhalb des Bereichs werden geclampt. CSS Color 4 akzeptiert den Farbton auch in Umdrehungen (`hsl(0.6turn ...)`) oder Radianten (`hsl(3.787rad ...)`); die Ausgabe des Tools verwendet Grad, weil das die häufigste Form in Designwerkzeug-UIs und Marken-Spezifikationsdokumenten ist.
Die HSL-Helligkeit ist NICHT perzeptuell uniform
Ein Grün bei `hsl(120 100% 50%)` wirkt sichtbar heller als ein Blau bei `hsl(240 100% 50%)`, obwohl beide dieselbe nominelle Helligkeit haben — weil HSL die Gamma-Eigenheiten von sRGB erbt und dieselbe L-Skala über alle Farbtöne verwendet. Das ist der Grund, weshalb HSL-basierte Tönungsstufenleitern ungleichmäßig wirken (das helle Ende der Grünstufen klettert schneller als das helle Ende der Blaustufen) und weshalb Designsysteme weitgehend auf OKLCH für die Stufenleiter-Erzeugung migriert sind. Das Tool blendet sowohl HSL als auch OKLCH ein, sodass die Wahl nur einen Blick entfernt liegt.
OKLCH als interne Source-of-Truth für Rundlaufstabilität
Auch wenn dieser Spoke gezielt HEX → HSL adressiert, hält der gemeinsame zugrundeliegende Konverter die kanonische Farbe intern als OKLCH-Tripel. HEX → HSL → RGB → OKLAB → HEX bleibt bit-stabil; Legacy-Konverter mit HSL als Pivot sammeln Rundungsfehler an und können den Farbton über wenige Konvertierungen um mehrere Grad driften lassen. Der OKLCH-Pivot bewahrt außerdem den Farbton als stabile Achse, sodass das Ziehen des Farbton-Schiebereglers nicht versehentlich durch Grau crossfaded. Nach Björn Ottossons OKLAB-Papier von 2020.
Kanal-Kodierung: 8 Bit ohne Vorzeichen, sRGB-gammacodiert
HEX-Codes kodieren 8-Bit-RGB-Kanäle ohne Vorzeichen (0–255) im sRGB-Farbraum-Modell, das IEC 61966-2-1 (1996) definiert. Die Werte sind *gammacodiert* — der Zusammenhang zwischen Kanalwert und wahrgenommener Helligkeit ist nicht-linear und folgt der stückweisen sRGB-Transferfunktion (etwa ein Exponent von 2,4 mit einem kleinen linearen Segment nahe null). HSL wird direkt aus diesen gammacodierten RGB-Werten ohne Linearisierungsschritt abgeleitet, was die eigentliche Ursache des perzeptuellen Uniformitätsproblems von HSL ist. OKLCH linearisiert zuerst und bildet dann auf einen perzeptuell uniformen Raum ab; HSL tut das nicht.

Best Practices für HEX-/HSL-Workflows

In neuem Code die moderne leerzeichengetrennte HSL-Syntax verwenden
Das `hsl(217 91% 60%)` (leerzeichengetrennt) und `hsl(217 91% 60% / 0.5)` (Slash für Alpha) aus CSS Color 4 sind ab 2025 die kanonischen Syntaxen. Die alten Komma-Formen `hsl(217, 91%, 60%)` und `hsla(217, 91%, 60%, 0.5)` werden überall weiter unterstützt, sind in CSS Color 4 stilistisch aber veraltet. Verwenden Sie die moderne Syntax in neuen Stylesheets; behalten Sie `hsla()` nur für IE-9-11-Fallback-Kontexte, in denen Sie wirklich Legacy-Unterstützung brauchen.
Stufenleitern in OKLCH erzeugen, nicht in HSL
Die Helligkeitsachse von HSL ist nicht perzeptuell uniform — ein 9-stufiger L-Sweep erzeugt eine Stufenleiter, in der die grünen Stufen bei jedem L-Wert heller wirken als die blauen Stufen. Für Stufenleitern, in denen jeder Schritt gleich hell aussehen soll (die Standardanforderung im Designsystem), erzeugen Sie stattdessen in OKLCH: `oklch(0.7 0.15 217)`, `oklch(0.6 0.15 217)` usw. Das Tool blendet für denselben HEX sowohl HSL als auch OKLCH ein, sodass der Wechsel zwischen beiden nur einen Kopieren-Klick entfernt liegt.
Farbton und Sättigung fixieren, Helligkeit durchlaufen
Wenn Sie HSL für Tint-/Shade-Arbeit nutzen, ändern Sie nur die L-Zahl — halten Sie H und S über die Stufenleiter hinweg identisch. Farbton-Drift (auch nur um 5°) lässt eine Stufenleiter durcheinander wirken. Sättigungs-Drift lässt das helle Ende ausgewaschen und das dunkle Ende matschig aussehen. Die Disziplin „eine Achse pro Schritt“ ist genau das, was HSL seinen designer-freundlichen Ruf verleiht; sie aufzugeben, gibt Ihnen das Schlechteste aus beiden Welten.
HEX für Source-of-Truth-Tokens bevorzugen, HSL für berechnete Varianten
Wenn Sie eine Design-Token-Spezifikation schreiben, bevorzugen Sie HEX (oder OKLCH) als kanonische Form — sie sind knapper und passen sauber in JSON oder YAML. HSL ist nützlicher für *abgeleitete* Tokens zur Laufzeit (`hsl(from var(--primary) h s calc(l + 10%))`) als als Source-of-Truth-Format. Beide Formate beschreiben dieselbe Farbe; die Wahl hängt davon ab, welche Rolle der Token im System spielt.
HSL-Varianten mit dem Basis-HEX dokumentieren
Wenn Sie eine CSS-Variable wie `--primary-light: hsl(217 91% 70%)` ausliefern, fügen Sie einen Kommentar ein, der auf den Basis-HEX zurückverweist: `/* Basis: #3b82f6 → hsl(217 91% 60%), helle Variante +10 % L */`. Sechs Monate später, wenn jemand `--primary-lighter` ableiten will, braucht er die Basisfarbe zum Berechnen — und HSL allein blendet das nicht ein. HEX + HSL zusammen bewahren die volle Nachvollziehbarkeit.
URL-Hash zum Teilen von Live-Farbentscheidungen nutzen
Jede Farbänderung aktualisiert den URL-Hash automatisch als `#hex=3b82f6`. Kopieren Sie die URL in einen Slack-Thread oder ein GitHub-Issue, und wer sie öffnet, landet bei derselben Farbe mit demselben HSL-Tripel. Das ist zuverlässiger, als eine HSL-Zeichenkette in den Chat zu kopieren — Empfänger vertippen beim manuellen Eintippen des Werts schon mal das Grad oder lassen ein Prozentzeichen weg — und erlaubt es einem Design-Review-Thread, sich auf eine exakte Farbe zu beziehen statt auf „das Blau, das wir am Dienstag besprochen haben“. Der Hash wird nie an den Server übertragen.

Häufig gestellte Fragen

Wie konvertiere ich HEX in HSL?
Konvertieren Sie den HEX zuerst über `parseInt(hex, 16)` in RGB-Ganzzahlen, normalisieren Sie dann jeden Kanal auf 0–1, indem Sie durch 255 dividieren, berechnen Sie anschließend `max`/`min`/`delta` über die drei Kanäle und wenden Sie die stückweise Trigonometrie aus CSS Color 4 §6.4 an: Helligkeit = `(max + min) / 2`, Sättigung = `delta / (1 - |2L - 1|)` (null, wenn delta null ist), Farbton = stückweise nach Maximalkanal (60° pro Schritt um den Farbkreis). `#3b82f6` parst zu `rgb(59 130 246)` und wird dann zu `hsl(217 91% 60%)` konvertiert. Dieses Tool führt die gesamte Pipeline live während der Eingabe aus.
Was ist die HSL-Farbe?
HSL ist eine zylindrische Umformung des sRGB-Farbraum-Modells in drei perzeptuell sinnvolle Achsen: Farbton (0–360°, Winkelposition auf dem Farbkreis — 0° Rot, 120° Grün, 240° Blau), Sättigung (0–100 %, chromatische Intensität — 0 % Grau, 100 % vollständig chromatisch) und Helligkeit (0–100 %, Helligkeit — 0 % Schwarz, 50 % reiner Farbton, 100 % Weiß). Alvy Ray Smith veröffentlichte die Herleitung 1978, um Designern ein Koordinatensystem zu geben, das näher an ihrem Denken über Farbe liegt als die rohe RGB-Kanaladressierung. HSL ist seit 2010 (CSS3) in CSS enthalten und wird in jedem Browser ausgeliefert.
Was ist der Unterschied zwischen HSL und HSV?
Beide sind zylindrische Umformungen von sRGB mit identischen Farbtonachsen, behandeln die dritte Achse jedoch unterschiedlich. Die Lightness von HSL geht von Schwarz bei 0 % über den reinen Farbton bei 50 % bis zu Weiß bei 100 % — symmetrisch, sodass `hsl(0 100% 50%)` reines Rot und `hsl(0 100% 100%)` Weiß ist. Der Value von HSV geht von Schwarz bei 0 % bis zum reinen Farbton bei 100 % — asymmetrisch, sodass `hsv(0 100% 100%)` reines Rot ist und Weiß nur dann erscheint, wenn die Sättigung auf 0 fällt. HSL ist nützlicher für Tint-/Shade-Stufenleitern eines Designsystems, weil der 50-%-Mittelpunkt die Referenz für die reine Farbe markiert; HSV ist nützlicher für Farbwähler, weil das Sättigung-Wert-Quadrat sauber auf eine SV-Picker-UI abbildet.
Warum HSL statt RGB verwenden?
Drei Gründe. Erstens intuitive Schieberegler — L von 60 % auf 70 % zu bewegen, erzeugt vorhersagbar eine hellere Schattierung derselben Farbe; R von 130 auf 150 zu bewegen, erzeugt eine weniger vorhersagbare Farbverschiebung. Zweitens Palettenerzeugung — `hsl(217 91% 60%)`, `hsl(217 91% 70%)`, `hsl(217 91% 80%)` ist eine tonal kohärente Tönungsstufenleiter, erzeugt durch Ändern einer Zahl; dasselbe in RGB benötigt drei koordinierte Edits. Drittens CSS-Mathematik zur Laufzeit — modernes CSS erlaubt es Ihnen, `hsl(from var(--primary) h s calc(l + 10%))` zu berechnen, um eine hellere Variante aus einem Basis-Token abzuleiten, ohne jeden Schritt vorzuberechnen. RGB bietet keine vergleichbare Bequemlichkeit einer zylindrischen Achse.
Wie liest man einen HSL-Wert?
HSL hat drei Teile in der Reihenfolge: Farbton, Sättigung, Helligkeit. `hsl(217 91% 60%)` bedeutet Farbton = 217° (ein klares Blau, knapp jenseits des reinen Blau-Territoriums bei 240° und zurück Richtung Cyan), Sättigung = 91 % (stark chromatisch, fast kein Grau), Helligkeit = 60 % (eine Stufe heller als der reine Farbton im Mittelpunkt). Der Farbton ist die einzige Achse ohne Prozent-Suffix, weil er in Grad ausgedrückt wird — Werte wrappen bei 360°, also ist `hsl(370 ...)` identisch mit `hsl(10 ...)`. Der mit Slash präfixierte Wert am Ende (sofern vorhanden) ist Alpha im Bereich 0–1: `hsl(217 91% 60% / 0.5)` ist dieselbe Farbe bei 50 % Deckkraft.
Unterstützt CSS HSL?
Ja — HSL ist seit CSS3 im Jahr 2010 in CSS enthalten und wird in jedem Browser ausgeliefert, einschließlich IE 9. Die ursprüngliche Syntax verwendete Kommata: `hsl(217, 91%, 60%)` für deckend und `hsla(217, 91%, 60%, 0.5)` für Werte mit Alpha. CSS Color 4 (W3C Candidate Recommendation seit 2022) ergänzte die moderne leerzeichengetrennte Form: `hsl(217 91% 60%)` und `hsl(217 91% 60% / 0.5)` mit Slash-präfixiertem Alpha. Der Farbton kann auch in Umdrehungen oder Radianten ausgedrückt werden (`hsl(0.6turn 91% 60%)` ist identisch mit `hsl(217 91% 60%)`). Alte und moderne Syntaxen sind in allen Evergreen-Browsern austauschbar.
Wofür steht das L in HSL?
Lightness (Helligkeit). Die 0–100-%-Achse, die steuert, wie hell die Farbe erscheint, wobei 0 % auf reines Schwarz und 100 % auf reines Weiß abbildet. Der Mittelpunkt (50 %) ist der Ort, an dem der reine Farbton lebt — `hsl(0 100% 50%)` ist reines Rot, während `hsl(0 100% 25%)` ein dunkleres Rot und `hsl(0 100% 75%)` ein helleres Rosa ist. Lightness ist das symmetrische Gegenstück zum asymmetrischen Value von HSV. Beachten Sie, dass die HSL-Lightness *nicht* perzeptuell uniform ist — ein Grün bei L=50 % wirkt sichtbar heller als ein Blau bei L=50 %, weil HSL die Gamma-Eigenheiten von sRGB erbt; für perzeptuelle Uniformität greifen Sie stattdessen zu OKLCH.
Wie präzise ist die HEX-zu-HSL-Konvertierung?
Der HEX → RGB Schritt ist bitgenau (`parseInt(hex, 16)` liefert Ganzzahlen ohne Float-Beteiligung). Der RGB → HSL Schritt enthält Trigonometrie und Division, daher ist die Ausgabe ein Float, den das Tool für die Anzeige auf ganzzahlige Grad und ganzzahlige Prozente rundet. Ein Rundlauf HEX → HSL → HEX stellt den ursprünglichen HEX innerhalb von 1 Kanaleinheit wieder her (der Rundungsfehler durch die Anzeige von H als ganzzahligem Grad). Für verlustfreie Arbeiten ist OKLCH das bessere interne Format — dieses Tool hält OKLCH tatsächlich intern als Source-of-Truth und leitet HSL nur für die Anzeige ab, sodass die Rundlaufstabilität besser ist als bei naiven HSL-Pivot-Konvertern.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →