Un convertitore HEX in HSL è una piccola utility che trasforma un codice colore hex (`#3b82f6`) nella tripletta cilindrica Hue / Saturation / Lightness che codifica lo stesso colore sRGB (`hsl(217 91% 60%)`). I codici hex sono la terza stringa base-16 che designer e sviluppatori incollano tra Figma, Sketch, Photoshop, PDF di brand-guidelines e fogli di stile CSS — tre canali a 8 bit impacchettati in una forma `#RRGGBB` di 6 caratteri, ancorati allo spazio colore sRGB definito da IEC 61966-2-1 nel 1996. HSL è un rimodellamento cilindrico dello stesso spazio colore su tre assi più amichevoli per i designer: un angolo di tonalità sulla ruota dei colori, una percentuale di saturazione cromatica e una percentuale di luminosità. Gli sviluppatori convertono HEX → HSL di continuo: per definire un colore brand come variabile CSS e poi comporre tinte più chiare o più scure regolando solo L, per alimentare una UI di color picker che mostra Hue e SL come controlli separati, per generare scale di tinte chiare e tinte scure per un design system, o per eseguire matematica a runtime su variabili CSS tramite `hsl(from var(--primary) h s calc(l + 10%))` per token di tema derivati. Questo strumento esegue la conversione in tempo reale mentre digita, senza alcun pulsante "Converti" da premere, e affianca all'output HSL ogni altro formato colore comune (RGB, OKLCH, OKLAB, HSV, HWB, CMYK, oltre ai 148 colori CSS named) gratis.
**Il formato HSL stesso merita uno sguardo più ravvicinato.** HSL = Hue (0-360°), Saturation (0-100%), Lightness (0-100%). Hue è la posizione angolare sulla ruota dei colori — 0° è rosso, 60° è giallo, 120° è verde, 180° è ciano, 240° è blu, 300° è magenta e 360° si avvolge tornando al rosso. Saturation è l'intensità cromatica dallo 0% (grigio acromatico) al 100% (pienamente cromatico senza contenuto di grigio). Lightness è la luminosità dallo 0% (nero puro, indipendentemente da tonalità o saturazione) attraverso il 50% (la tonalità pura al chroma pieno) fino al 100% (bianco puro, indipendentemente da tonalità o saturazione). Alvy Ray Smith ha pubblicato la derivazione originale nel 1978 come parte della prima spinta della computer grafica per dare ai designer sistemi di coordinate più vicini al loro modello cognitivo di colore rispetto all'indirizzamento per canale RGB grezzo. Il modello è in CSS da CSS3 (2010) e arriva in ogni browser fino a IE 9. La sintassi CSS originale usava virgole: `hsl(217, 91%, 60%)` per l'opaco, `hsla(217, 91%, 60%, 0.5)` per il valore con alpha. CSS Color 4 (W3C Candidate Recommendation dal 2022) ha aggiunto una moderna forma con spazi: `hsl(217 91% 60%)` e `hsl(217 91% 60% / 0.5)` con alpha prefissato dalla slash — stessa forma sintattica delle altre notazioni funzionali di CSS Color 4 (`rgb()`, `lab()`, `oklch()`, `color()`). La tonalità può essere espressa anche in turn (`hsl(0.6turn 91% 60%)`) o radianti (`hsl(3.787rad 91% 60%)`), tutte equivalenti alla forma canonica in gradi. Ogni evergreen browser analizza ogni variante sintattica; lo strumento emette di default la moderna forma con spazi.
La matematica di conversione va in entrambe le direzioni in modo pulito. **HEX → HSL** è una pipeline a due step. Primo, si analizza l'hex a 6 cifre `#RRGGBB` come tre numeri base-16 a 2 cifre tramite `parseInt(hex.slice(1, 3), 16)` ecc. per ottenere interi RGB di canale in 0-255. Secondo, si normalizza ogni canale a 0-1 dividendo per 255, poi si calcolano `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min`. La lightness è la media di max e min: `L = (max + min) / 2`. La saturation è condizionale sulla lightness: quando L ≤ 0,5, `S = delta / (max + min)`; quando L > 0,5, `S = delta / (2 - max - min)`. Equivalentemente nella forma CSS Color 4 §6.4, `S = delta / (1 - |2L - 1|)` (con S = 0 quando delta = 0). Hue è piecewise su quale canale è max: quando R è max, `H = ((G - B) / delta) % 6`; quando G è max, `H = (B - R) / delta + 2`; quando B è max, `H = (R - G) / delta + 4`; si moltiplica per 60 per scalare in gradi, si somma 360 se negativo. L'inverso (HSL → HEX, via RGB) usa l'helper `f(n) = L - a * max(-1, min(k-3, 9-k, 1))` dove `a = S * min(L, 1-L)` e `k = (n + H/30) mod 12`, applicato con n = 0, 8, 4 per produrre rispettivamente R, G, B, poi scalato a 0-255 e codificato in hex.
**Perché HSL è ancora utile.** Slider intuitivi — regolare L schiarisce o scurisce in modo prevedibile senza rompere l'identità di tonalità, mentre regolare un canale RGB produce un cambio di colore meno prevedibile. Matematica CSS a runtime — i browser moderni supportano `hsl(from var(--primary) h s calc(l + 10%))` per derivare token di tema al momento del render. Cognizione del designer — i designer cresciuti su color picker HSV ragionano sul colore in termini di hue + chroma anche quando il file rilascia hex. **Il problema di HSL** è che il suo asse Lightness non è percettivamente uniforme — un verde a L=50% appare visibilmente più luminoso di un blu a L=50% perché HSL eredita le stranezze gamma di sRGB e tratta ogni tonalità come equivalente sulla scala L. Quando le serve l'uniformità percettiva (generazione di palette in cui ogni passo deve apparire ugualmente luminoso, calcolo di token dark-mode che non rende accidentalmente il testo blu più difficile da leggere del testo verde), ricorra invece a OKLCH — lo stesso strumento espone entrambi, quindi la scelta è a un colpo d'occhio di distanza.
Il flusso di lavoro HEX → HSL di questo strumento è una direzione di una famiglia a 5 spoke che condividono tutti lo stesso convertitore di colori unificato sottostante. Il dedicato convertitore di colori unificato è l'hub — mostra tutti i 9 formati simultaneamente modificabili ed è lo strumento giusto quando il flusso di lavoro necessita di più che solo hex e HSL. Gli spoke monodirezionali mirano a specifiche intenzioni di ricerca Google: il convertitore HEX-RGB per la direzione canvas-e-hardware, il convertitore RGB-HEX per l'inverso, il convertitore HEX-OKLCH per i moderni design system percettivamente uniformi (Tailwind v4 e shadcn ora usano entrambi OKLCH di default), e il convertitore HEX-CMYK per le approssimazioni di preparazione alla stampa. Tutti e cinque gli spoke e l'hub condividono lo stesso motore di parsing e la stessa matematica di conversione, quindi i risultati sono garantiti identici lungo la famiglia. Ogni conversione gira localmente nel browser — i suoi codici hex non vengono mai caricati online, mai loggati, e zero richieste di rete partono mentre digita. Lo verifichi in DevTools.