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.