Een hex naar HSL converter is een klein hulpmiddel dat een hex-kleurcode (`#3b82f6`) omzet in de cilindrische Hue / Saturation / Lightness-triple die dezelfde sRGB-kleur codeert (`hsl(217 91% 60%)`). Hex-codes zijn de beknopte grondtal-16-string die designers en developers tussen Figma, Sketch, Photoshop, brand-guidelines-PDF's en CSS-stylesheets plakken — drie 8-bit channels gepakt in een 6-tekens `#RRGGBB`-vorm, verankerd aan de sRGB-kleurruimte gedefinieerd door IEC 61966-2-1 in 1996. HSL is een cilindrische hervorming van diezelfde kleurruimte op drie meer designer-vriendelijke assen: een hue-hoek op het kleurenwiel, een chromatisch saturation-procent en een lightness-procent. Developers converteren HEX → HSL voortdurend: om een merkkleur als CSS-variabele te definiëren en daarna lichtere of donkerdere tinten te componeren door alleen L aan te passen, om een color-picker-UI te voeden die Hue en SL als aparte controls toont, om tint- en schaduw-ramps voor een design system te genereren, of om runtime CSS-variabele-wiskunde uit te voeren via `hsl(from var(--primary) h s calc(l + 10%))` voor afgeleide thema-tokens. Deze tool draait de conversie live terwijl je typt, zonder "Converteren"-knop om op te klikken, en toont elk ander gangbaar kleurformaat (RGB, OKLCH, OKLAB, HSV, HWB, CMYK, plus de 148 CSS named colors) gratis naast de HSL-uitvoer.
**Het HSL-formaat zelf verdient nadere beschouwing.** HSL = Hue (0-360°), Saturation (0-100%), Lightness (0-100%). Hue is hoekpositie op het kleurenwiel — 0° is rood, 60° is geel, 120° is groen, 180° is cyaan, 240° is blauw, 300° is magenta, en 360° wrapt terug naar rood. Saturation is chromatische intensiteit van 0% (achromatisch grijs) tot 100% (volledig chromatisch zonder grijsinhoud). Lightness is helderheid van 0% (puur zwart, ongeacht hue of saturation) via 50% (de pure kleurtoon op vol chroma) tot 100% (puur wit, ongeacht hue of saturation). Alvy Ray Smith publiceerde de oorspronkelijke afleiding in 1978 als onderdeel van de vroege computer-graphics-push om designers coördinatensystemen te geven die dichter bij hun cognitieve kleurmodel lagen dan ruwe RGB-channel-adressering. Het model zit sinds CSS3 (2010) in CSS en shipt in elke browser terug tot IE 9. De originele CSS-syntax gebruikte komma's: `hsl(217, 91%, 60%)` voor dekkend, `hsla(217, 91%, 60%, 0.5)` voor alpha. CSS Color 4 (W3C Candidate Recommendation sinds 2022) voegde een moderne ruimte-gescheiden vorm toe: `hsl(217 91% 60%)` en `hsl(217 91% 60% / 0.5)` met slash-voorvoegde alpha — dezelfde syntactische vorm als de andere functionele notaties van CSS Color 4 (`rgb()`, `lab()`, `oklch()`, `color()`). Hue kan ook in turns (`hsl(0.6turn 91% 60%)`) of radians (`hsl(3.787rad 91% 60%)`) worden uitgedrukt, allemaal equivalent aan de canonieke graden-vorm. Elke evergreen-browser parset elke syntactische smaak; de tool emit standaard de moderne ruimte-gescheiden vorm.
De conversie-wiskunde gaat schoon in beide richtingen. **HEX → HSL** is een tweestaps-pipeline. Eerst, parse de 6-cijferige hex `#RRGGBB` als drie 2-cijferige grondtal-16-getallen via `parseInt(hex.slice(1, 3), 16)` enz. om integer-RGB-channels in 0-255 te krijgen. Tweede, normaliseer elke channel naar 0-1 door te delen door 255, en bereken daarna `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min`. Lightness is het gemiddelde van max en min: `L = (max + min) / 2`. Saturation is voorwaardelijk op lightness: als L ≤ 0,5, `S = delta / (max + min)`; als L > 0,5, `S = delta / (2 - max - min)`. Equivalent in de CSS Color 4 §6.4-vorm, `S = delta / (1 - |2L - 1|)` (met S = 0 als delta = 0). Hue is stukgewijs op welke channel het maximum is: als R het max is, `H = ((G - B) / delta) % 6`; als G het max is, `H = (B - R) / delta + 2`; als B het max is, `H = (R - G) / delta + 4`; vermenigvuldig met 60 om naar graden te schalen, tel 360 erbij op als negatief. De inverse (HSL → HEX, via RGB) gebruikt de helper `f(n) = L - a * max(-1, min(k-3, 9-k, 1))` waarbij `a = S * min(L, 1-L)` en `k = (n + H/30) mod 12`, toegepast met n = 0, 8, 4 om respectievelijk R, G, B te produceren, dan geschaald naar 0-255 en hex-gecodeerd.
**Waarom HSL nog steeds nuttig is.** Intuïtieve sliders — L aanpassen maakt voorspelbaar lichter of donkerder zonder de kleurtoon-identiteit te breken, terwijl een RGB-channel aanpassen een minder voorspelbare kleurverschuiving produceert. Runtime CSS-wiskunde — moderne browsers ondersteunen `hsl(from var(--primary) h s calc(l + 10%))` om thema-tokens bij rendertijd af te leiden. Designer-cognitie — designers opgegroeid met HSV-color-pickers redeneren in hue + chroma-termen over kleur, ook als het bestand in hex shipt. **HSL's probleem** is dat zijn Lightness-as niet perceptueel uniform is — een groen op L=50% oogt zichtbaar helderder dan een blauw op L=50% omdat HSL de gamma-eigenaardigheden van sRGB erft en elke kleurtoon als equivalent op de L-schaal behandelt. Wanneer je perceptuele uniformiteit nodig hebt (paletgeneratie waar elke stap even helder moet ogen, dark-mode-token-berekening die niet per ongeluk blauwe tekst moeilijker leesbaar maakt dan groene tekst), grijp je naar OKLCH — dezelfde tool toont beide, dus de keuze is één oogopslag verwijderd.
Deze tool's HEX → HSL-workflow is één richting van een 5-spoke-familie die allemaal dezelfde onderliggende unified color converter delen. De aparte unified color converter is de hub — hij toont alle 9 formaten tegelijk bewerkbaar en is de juiste tool wanneer je workflow meer dan alleen hex en HSL nodig heeft. De eenrichtings-spokes richten zich op specifieke Google-zoekintenties: de hex naar RGB converter voor de canvas-en-hardware-richting, de RGB naar hex converter voor de inverse, de hex naar OKLCH converter voor moderne perceptueel-uniforme design systems (Tailwind v4 en shadcn defaulten nu allebei naar OKLCH), en de hex naar CMYK converter voor printvoorbereidings-benaderingen. Alle vijf spokes en de hub delen dezelfde parsing engine en dezelfde conversie-wiskunde, dus de resultaten zijn gegarandeerd identiek over de familie. Elke conversie draait lokaal in je browser — je hex-codes worden nooit geüpload, nooit gelogd, en nul netwerkverzoeken vuren terwijl je typt. Verifieer in DevTools.