Skip to content

Convertitore HEX in HSL

Converte qualsiasi colore hex in HSL direttamente nel browser — supporta hex a 3, 6 e 8 cifre con alpha. Gratuito, istantaneo, online, senza registrazione, i colori non lasciano mai la pagina.

Niente tracciamento Funziona nel browser Gratuito
Tutta la conversione dei colori avviene localmente nel browser. Nessun dato viene inviato a un server.
Gamma cromatica: sRGB Display P3 Rec2020
Contrasto vs:
AA AA-Lg AAA AAA-Lg · APCA Lc
Simulazione daltonismo (8 tipi)
Protanopia (cieco al rosso)
Deuteranopia (cieco al verde)
Tritanopia (cieco al blu)
Acromatopsia (totale)
Protanomalia (debole al rosso)
Deuteranomalia (debole al verde)
Tritanomalia (debole al blu)
Acromatomalia (parziale)
Tints / Shades / Tones / Harmonies

Tints

Shades

Tones

Harmonies

Copia come codice
Riferimento ai colori comuni
Rivisto per conformità a CSS Color 4 §6.4, supporto delle forme hex a 3/4/6/8 cifre, correttezza della decodifica della coppia alpha e stabilità del round-trip tra HEX e HSL sugli intervalli 0-360° di tonalità e 0-100% di S/L. — Team di ingegneria Go Tools · May 27, 2026

Cos'è un convertitore HEX in HSL?

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.

// 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 }

Caratteristiche principali

Tutte e cinque le forme hex analizzate in modo identico

3 cifre `#F73`, alpha a 4 cifre `#F738`, 6 cifre `#3b82f6`, alpha a 8 cifre `#FF573380`, oltre alla variante senza `#` per ognuna. Il parser le normalizza tutte nello stesso colore interno prima di derivare HSL, quindi può incollare qualsiasi forma usi la sua sorgente senza espandere manualmente l'abbreviazione prima. Anche le maiuscole/minuscole vengono normalizzate — `#3b82f6` e `#3B82F6` producono output HSL identico.

Output HSL nella moderna sintassi con spazi

Il campo HSL espone il valore nella forma moderna di CSS Color 4: `hsl(217 91% 60%)` per i colori opachi, `hsl(217 91% 60% / 0.5)` per quelli con alpha. Entrambe le forme funzionano in ogni evergreen browser (Chrome 65+, Safari 13+, Firefox 52+). La forma legacy con virgole `hsl(217, 91%, 60%)` dista solo una sostituzione meccanica se il target la richiede; la sintassi moderna è preferita nel nuovo codice perché si allinea con le altre sintassi funzionali di CSS Color 4.

Fonte di verità OKLCH, non pivot HSL

Anche se questo spoke mira specificamente a HEX → HSL, il convertitore sottostante condiviso mantiene internamente il colore canonico come tripletta OKLCH. Significa che HEX → HSL → RGB → OKLAB → HEX fa il round-trip senza drift float a ogni passo; i convertitori legacy che instradano attraverso HSL come pivot accumulano errore di arrotondamento e possono far derivare la tonalità di diversi gradi su poche conversioni. Il pivot OKLCH mantiene ogni altro formato ancorato matematicamente allo stesso punto sorgente.

Canale alpha decodificato in modo pulito

L'hex a 8 e 4 cifre con alpha (`#RRGGBBAA` e `#RGBA`) viene analizzato correttamente. La coppia finale mappa su un float alpha 0-1: `00` → 0, `80` → 0,502, `FF` → 1. L'output usa di default la sintassi con slash di CSS Color 4 (`hsl(217 91% 60% / 0.5)`); la forma legacy `hsla(217, 91%, 60%, 0.5)` dista una sostituzione. Utile per la migrazione di design token in cui i valori alpha potrebbero essere sepolti in codici hex a 8 cifre.

Otto altri formati visibili simultaneamente

Lo stesso hex che incolla guida anche RGB, HSV, HWB, OKLCH, OKLAB, CMYK e il colore CSS named più vicino — tutti visibili a colpo d'occhio sulla stessa pagina. Non resta mai vincolato a hex → HSL soltanto. Se un collega ha bisogno della tripletta OKLCH per un token Tailwind v4 (dove l'uniformità percettiva conta più della L gamma-stravagante di HSL), del colore named più vicino per la prosa di documentazione, o della tupla RGB per una chiamata canvas, i valori sono già lì con i loro pulsanti Copia.

Contrasto WCAG + APCA integrati

Faccia passare un hex e la riga di contrasto lo valuta immediatamente sia contro il bianco sia contro il nero usando WCAG 2.1 (minimo normativo: 4,5:1 per il body text, 7:1 per AAA) e APCA Lc (successore proposto WCAG 3: target `|Lc| ≥ 75` per il body text). Utile quando ha appena convertito un hex brand in HSL e vuole verificare che il colore risultante (o una variante con luminosità regolata) sia davvero leggibile come colore body text prima di spedirlo.

Copia come CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Sotto il picker, la sezione Copia come codice trasforma il colore corrente in snippet pronti per il copia-incolla per cinque piattaforme: custom property CSS (`--color-brand: hsl(217 91% 60%)`), token `@theme` di Tailwind v4, literal SwiftUI `Color(hue:saturation:brightness:)`, costante Jetpack Compose `Color.hsl(217f, 0.91f, 0.60f)`, Flutter `HSLColor.fromAHSL(...)`. La sintassi esatta che ogni piattaforma si aspetta, pronta per essere inserita in un asset catalog iOS, un file di tema Android o un `ThemeData` Flutter.

100% nel browser — nessun upload, nessun tracciamento

Tutto il parsing hex, la conversione HSL, il calcolo del contrasto e la generazione di palette girano localmente nel browser. I suoi codici hex non vengono mai trasmessi, mai loggati su alcun server, mai analizzati. Zero richieste di rete mentre digita — lo verifichi in DevTools. Sicuro per palette brand non ancora annunciate, design token interni, mockup in bozza sotto NDA e qualunque altro lavoro di colore riservato.

URL hash condivisibile per il colore esatto

Il colore corrente viene codificato nell'hash URL come `#hex=3b82f6` automaticamente a ogni cambio. Copi l'URL, lo incolli in un thread Slack o in una issue GitHub, e chiunque lo apra atterra sullo stesso hex con la stessa tripletta HSL. L'hash vive solo nella sua barra degli indirizzi e non viene mai trasmesso al server (i browser non includono i frammenti URL nelle richieste HTTP), quindi anche condividere il link non rivela il colore ad alcuna terza parte.

Alternative al convertitore HEX in HSL

RapidTables Hex to HSL

strumento browser

Il risultato Google di default per "hex to hsl" — un form monodirezionale con hex in ingresso e HSL in uscita, senza altri formati visibili. Utile per lookup occasionali quando si arriva da ricerca. Manca di OKLCH, controllo del contrasto, rilevamento della gamma cromatica, gestione dell'alpha e della vista simultanea multi-formato. Questo strumento vince su ogni asse tranne il caso bare-bones di singola conversione.

ColorHexa

strumento browser

Pagine SEO per-colore di lunga data con metadata profondi: conversioni, palette, armonie, gradienti per qualunque hex si interroghi. UI datata (primi anni 2010), nessun supporto OKLCH, nessun contrasto APCA, nessuna gestione wide-gamut. Forte per la discovery SEO di un hex specifico via Google; più debole per flussi di conversione attivi dove digitare in una UX a campi unificati è più veloce.

W3Schools HSL Calculator

strumento browser

Toggle HEX/RGB/HSL beginner-friendly su una pagina focalizzata sull'insegnamento, ubiquo nei risultati di ricerca. Nessun OKLCH, nessuna gestione dell'alpha oltre hsla, nessuna feature avanzata. Utile come riferimento accanto al contenuto esplicativo di W3Schools. Questo strumento vince su ogni altro asse: più formati, matematica percettiva, feature di gamma cromatica + contrasto + CVD, export di codice moderno per Tailwind v4 / SwiftUI / Compose / Flutter.

Color picker DevTools del browser

feature browser integrata

I DevTools di Chrome, Firefox e Safari includono tutti un color picker che commuta inline tra HEX, RGB e HSL quando si clicca su un campione (di colore) nel pannello CSS. Gratuito, nessuna installazione, sempre disponibile. Manca di OKLCH, di URL condivisibili, di export di codice per piattaforme non-web (SwiftUI, Compose). Apra i DevTools quando sta già debuggando CSS; apra questo strumento quando le serve output cross-piattaforma.

HSL Color Picker di Mothereff

strumento browser

Un picker HSL focalizzato con slider live hue/saturation/lightness e output hex. UI minimale, buona per l'esplorazione rapida HSL. Manca di OKLCH e della griglia di formato più ampia; nessuna feature di contrasto o gamma cromatica. Utile come strumento focalizzato solo su HSL; questo strumento copre lo stesso flusso di lavoro più 8 altre viste di formato e i controlli percettivi.

ConvertingColors

strumento browser

Pagine SEO per-colore che coprono molti spazi (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Manca del supporto OKLCH moderno e della UX di modifica a campi unificati. Le pagine di contenuto auto-generato sembrano in stile content farm ma i dati di conversione sono corretti. Buono per esplorare i metadata di singoli colori via Google; questo strumento è più veloce per flussi di lavoro attivi.

Esempi di conversione HEX in HSL

Definizione di variabile CSS per un colore brand

#3b82f6

Output HSL: `hsl(217 91% 60%)`. Il flusso di lavoro canonico per un design system costruito su HSL: definisca il brand come `--primary: hsl(217 91% 60%)` una sola volta, poi componga le tinte chiare regolando solo la percentuale L — `hsl(217 91% 70%)` per una tinta chiara di hover, `hsl(217 91% 80%)` per uno stato disabilitato, `hsl(217 91% 90%)` per un riempimento di sfondo discreto. Tonalità e saturazione restano bloccate, quindi la famiglia si legge come una scala coerente. I fogli di stile basati su RGB richiedono tre modifiche di canale coordinate per ogni passo; HSL ne richiede una.

Designer che traduce un colore Figma in HSL picker

#FF5733

Output HSL: `hsl(11 100% 60%)`. I designer che ragionano sul colore in termini di tonalità + saturazione + luminosità (il modello cognitivo che Munsell formalizzò nel 1905) spesso vogliono la tripletta HSL anche quando il file fonte di verità rilascia hex. Hue = 11° colloca questo colore sul lato rosso del cuneo arancione; saturation = 100% significa che il canale è pienamente cromatico; lightness = 60% siede una tacca sopra il punto medio. Incollare una volta l'hex Figma produce l'HSL corrispondente, pronto per essere riportato nel picker mentale del designer senza un'ipotesi manuale sulla ruota dei colori.

Scansione rapida della luminosità per una palette

#3b82f6

Output HSL: `hsl(217 91% 60%)`. Con la tripletta HSL in mano, generare una scala di tinte chiare è una scansione monodimensionale: ruoti L al 70% per `hsl(217 91% 70%)`, all'80% per `hsl(217 91% 80%)`, al 90% per `hsl(217 91% 90%)` per salire verso il bianco; scenda al 50%, 40%, 30% per le tinte scure. L'intera scala a 9 passi emerge cambiando un solo numero. Tinte chiare e tinte scure restano correlate per tono perché tonalità e saturazione restano costanti — il trucco che i design system legacy usavano prima che OKLCH rendesse economiche le scale percettivamente uniformi.

Hex a 8 cifre con alpha → hsla()

#FF573380

Output HSL: `hsl(11 100% 60% / 0.5)`. L'ultima coppia (`80`) si decodifica come `128/255 ≈ 0,502`, esposta come canale alpha tramite la sintassi con slash di CSS Color 4. La forma legacy equivalente è `hsla(11, 100%, 60%, 0.5)`, supportata in ogni browser fin da IE 9 ed è quella che i vecchi preprocessori si aspettano. L'hex a 8 cifre con alpha è arrivato nativamente negli evergreen browser nel 2018; prima di allora, l'alpha doveva passare esplicitamente per la funzione `hsla()`.

Conversioni HEX → HSL comuni

Tabella di riferimento dei 10 codici hex più convertiti e i loro equivalenti HSL — primari puri, secondari puri e due colori brand del mondo reale dalla palette Tailwind.

Nero

#000000 hsl(0 0% 0%)

Nero puro. Lightness allo 0% — l'assenza di luce emessa. Tonalità e saturazione sono convenzionalmente 0 per i grigi.

#000000 hsl(0 0% 0%)

Il nero puro su schermo raramente è la scelta di design giusta — provi `hsl(0 0% 7%)` o luminosità percettiva OKLCH 0,1-0,15 per un body text più morbido.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Bianco

#FFFFFF hsl(0 0% 100%)

Bianco puro. Lightness al 100% — il colore sRGB più luminoso possibile. Tonalità e saturazione sono convenzionalmente 0 per i grigi.

#FFFFFF hsl(0 0% 100%)

Gli sfondi bianchi puri possono produrre affaticamento visivo in ambienti scuri — provi `hsl(0 0% 98%)` o OKLCH 0,98 per alternative più calde.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Rosso

#FF0000 hsl(0 100% 50%)

Rosso puro. Tonalità a 0° (la posizione di partenza della ruota), saturazione pienamente cromatica, lightness al punto medio dove vivono le tonalità pure.

#FF0000 hsl(0 100% 50%)

Il rosso puro è altamente saturo e raramente si adatta a una palette brand — la maggior parte dei colori brand "rossi" è più vicina a `hsl(0 73% 50%)` (#DC2626).

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Verde

#00FF00 hsl(120 100% 50%)

Verde puro. Tonalità a 120° (un terzo del percorso attorno alla ruota), saturazione pienamente cromatica, lightness al 50%. Colore CSS named `lime`.

#00FF00 hsl(120 100% 50%)

La parola chiave CSS `green` corrisponde a #008000 (hsl(120 100% 25%)), non a #00FF00 — fonte frequente di confusione. Usi `lime` per il puro hsl(120 100% 50%).

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Blu

#0000FF hsl(240 100% 50%)

Blu puro. Tonalità a 240° (due terzi del percorso attorno alla ruota), saturazione pienamente cromatica, lightness al punto medio.

#0000FF hsl(240 100% 50%)

Il blu puro su sfondo bianco non passa il contrasto WCAG AA (3,7:1) — consideri `hsl(224 76% 48%)` (Tailwind blue-700) per il body text.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Ciano

#00FFFF hsl(180 100% 50%)

Ciano. Tonalità a 180° (il punto medio della ruota, opposto al rosso), saturazione pienamente cromatica, lightness al punto medio di tonalità pura. Colore CSS named `cyan` o `aqua`.

#00FFFF hsl(180 100% 50%)

Il ciano siede opposto al rosso sulla ruota (180°/0°), rendendolo il naturale partner di armonia complementare per qualsiasi colore brand della famiglia rossa.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Magenta

#FF00FF hsl(300 100% 50%)

Magenta. Tonalità a 300° (cinque sesti attorno alla ruota), saturazione pienamente cromatica, lightness al punto medio di tonalità pura. Colore CSS named `magenta` o `fuchsia`.

#FF00FF hsl(300 100% 50%)

Il magenta siede opposto al verde sulla ruota (300°/120°), rendendolo il naturale partner di armonia complementare per qualsiasi colore brand della famiglia verde.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Giallo

#FFFF00 hsl(60 100% 50%)

Giallo. Tonalità a 60° (un sesto attorno alla ruota, tra rosso e verde), saturazione pienamente cromatica, lightness al punto medio di tonalità pura.

#FFFF00 hsl(60 100% 50%)

Il giallo a hsl(60 100% 50%) appare molto più luminoso del rosso a hsl(0 100% 50%) — un esempio vivido della non-uniformità percettiva di HSL. OKLCH normalizza questo.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Tailwind blue-500

#3b82f6 hsl(217 91% 60%)

Il colore brand blue-500 di default di Tailwind CSS — il "web blue" canonico della metà anni 2020. Usato in innumerevoli dashboard, siti marketing e strumenti admin.

#3b82f6 hsl(217 91% 60%)

Tailwind v4 ridefinisce blue-500 in OKLCH (`oklch(0.629 0.193 263.4)`) per scale percettivamente uniformi — HSL è il fallback di v3.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Tailwind rose-500

#f43f5e hsl(350 89% 60%)

Il rose-500 di default di Tailwind CSS — un rosa-rosso ad alta saturazione usato comunemente per pulsanti accent, stati di alert e contrasto brand.

#f43f5e hsl(350 89% 60%)

La tonalità di rose-500 (350°) siede appena prima del rosso (0°/360°) sulla ruota — un leggero spostamento verso il rosa che si legge come più caldo del rosso puro.

Le serve output percettivamente uniforme invece? Provi il convertitore HEX-OKLCH dedicato — ogni passo L appare ugualmente luminoso lungo le tonalità, a differenza di HSL.

Come usare il convertitore HEX in HSL

  1. 1

    Incolli un codice hex nel campo HEX

    Rilasci qualsiasi valore hex nell'input HEX — con o senza il `#` iniziale, in abbreviazione a 3 cifre (`#F73`), forma completa a 6 cifre (`#3b82f6`), abbreviazione alpha a 4 cifre (`#F738`) o forma completa alpha a 8 cifre (`#FF573380`). Lo strumento normalizza internamente tutte e cinque le forme di input nello stesso colore canonico. Le maiuscole/minuscole non contano (`#3b82f6` e `#3B82F6` vengono analizzati in modo identico). Caratteri non validi o conteggi cifre errati producono un errore inline silenzioso; l'hex valido aggiorna in tempo reale ogni altro campo di formato, incluso HSL.

  2. 2

    Legga la tripletta HSL dal campo HSL

    Il campo HSL sotto il campo HEX mostra il valore `hsl()` corrispondente nella moderna sintassi con spazi di CSS Color 4: `hsl(217 91% 60%)` per un colore opaco, `hsl(217 91% 60% / 0.5)` per uno con alpha. Hue è un grado intero da 0 a 360; saturation e lightness sono percentuali intere da 0 a 100. I valori sono arrotondati per leggibilità in visualizzazione — la fonte di verità interna OKLCH dello strumento significa che la precisione sottostante è float, quindi i round-trip verso hex restano stabili.

  3. 3

    Faccia clic su Copia per ottenere la stringa HSL

    Ogni scheda di formato ha un pulsante Copia sulla destra. Un clic e il valore finisce negli appunti — l'etichetta del pulsante passa brevemente a "Copiato!" per conferma. La stringa copiata è la sintassi canonica di CSS Color 4 (`hsl(217 91% 60%)`); se il target richiede la forma legacy con virgole (`hsl(217, 91%, 60%)`), la conversione è meccanica. Per output specifico per piattaforma (Tailwind v4, SwiftUI, Compose, Flutter), usi la sezione Copia come codice sotto il picker — quegli snippet emettono il formato che ogni piattaforma si aspetta nativamente.

  4. 4

    Visibili anche: RGB, OKLCH, OKLAB, HSV, HWB, CMYK, colore named

    Lo stesso hex che incolla accende anche gli altri campi di formato — RGB per le chiamate canvas e l'hardware, OKLCH e OKLAB per i design system percettivamente uniformi, HSV e HWB per i flussi di lavoro con color picker per designer, CMYK per le stime di stampa, e il colore CSS named più vicino per la prosa di documentazione. Non resta mai vincolato a hex → HSL soltanto. Se le serve anche la tripletta OKLCH per un blocco `@theme` di Tailwind v4 (dove la luminosità percettiva conta più della L gamma-stravagante di HSL), è lì nel campo OKLCH con il suo pulsante Copia.

  5. 5

    Usi il picker per scansionare visivamente la luminosità

    Sotto la griglia dei formati ci sono un quadrato SL + cursore di tonalità + cursore alpha per l'esplorazione visiva. Il quadrato SL mappa direttamente sul piano Saturation × Lightness di HSL: trascini verticalmente per camminare con L dallo 0% al 100% mentre osserva il campo HSL aggiornarsi in tempo reale. Utile per generare visivamente una tinta chiara o scura prima di bloccare la percentuale esatta. Sui browser Chromium (Chrome, Edge, Brave) il pulsante EyeDropper attiva l'API nativa `EyeDropper` per campionare qualunque pixel sullo schermo, anche fuori dal browser.

Errori comuni HEX / HSL

Assumere che la lightness di HSL sia percettivamente uniforme

Un verde a `hsl(120 100% 50%)` appare visibilmente più luminoso di un blu a `hsl(240 100% 50%)`, anche se entrambi sono a L=50%. Generare scale di tinte chiare scansionando L produce risultati dall'aspetto irregolare lungo le tonalità — l'estremità chiara della scala verde sale più velocemente di quella della scala blu. Questa è una proprietà strutturale di HSL che eredita le stranezze gamma di sRGB, non un bug nel suo codice. Per scale percettivamente uniformi, passi a OKLCH.

✗ Errato
Scansione L HSL per una palette a 9 passi:
hsl(120 100% 50%) e hsl(240 100% 50%) alla stessa L
Appaiono visibilmente diversi in luminosità — la palette sembra irregolare.
✓ Corretto
Scansioni invece L OKLCH:
oklch(0.7 0.2 130) e oklch(0.7 0.2 250)
Appaiono ugualmente luminosi; la palette si legge coerente su tutte le tonalità.

Dimenticare che Hue si avvolge a 360°

La tonalità HSL è angolare — `hsl(370 91% 60%)` viene interpretato come `hsl(10 91% 60%)` perché 370° mod 360° = 10°. Animare la tonalità da 350° a 380° si avvolge in modo pulito attraverso 360°/0° (una sottile scheggia di rosso), ma interpolare linearmente da H=350 a H=10 nel modo sbagliato prende la strada *lunga* attraverso ciano, verde, giallo — 320° di deviazione. Usi `Math.min(diff, 360 - diff)` per scegliere il percorso breve, o usi l'interpolazione di tonalità integrata in una libreria colore.

✗ Errato
Interpolazione lineare da H=350 a H=10:
(350 + 10) / 2 = 180° (punto medio ciano)
Sbagliato — fa il giro lungo della ruota.
✓ Corretto
Interpolazione di tonalità a percorso breve:
midpoint = ((350 + 10 + 360) / 2) % 360 = 0° (punto medio rosso)
Passa attraverso il rosso, il percorso breve attorno alla ruota.

Confondere HSL con HSV

HSL e HSV condividono l'asse di tonalità ma differiscono nel terzo asse. La Lightness di HSL è simmetrica — 0% nero, 50% tonalità pura, 100% bianco. Il Value di HSV è asimmetrico — 0% nero, 100% tonalità pura, bianco solo quando la Saturation scende a 0. `hsl(0 100% 100%)` è bianco; `hsv(0 100% 100%)` è rosso puro. Molte librerie colore e strumenti di design (picker HSB di Photoshop, pannello colori di Sketch) usano HSV — copiare valori tra i due sistemi senza convertirli produce colori radicalmente diversi.

✗ Errato
Incollare valori HSV da Photoshop in una regola CSS hsl():
Photoshop HSB 0, 100, 100 (rosso puro)
CSS hsl(0 100% 100%) renderizza come bianco — colore completamente sbagliato.
✓ Corretto
Converta HSV → HSL prima di incollare in CSS:
HSV 0, 100, 100 → HSL 0, 100%, 50%
CSS hsl(0 100% 50%) renderizza come rosso puro — corretto.

Omettere i segni di percentuale in HSL

Gli assi S e L di HSL richiedono il suffisso `%` in CSS — `hsl(217 91 60)` è un errore di parsing in ogni browser; la forma corretta è `hsl(217 91% 60%)`. Solo Hue è adimensionale (la sua unità è il grado, ma il suffisso è opzionale). Molti convertitori ad-hoc dimenticano di emettere i segni di percentuale nel loro output HSL, producendo CSS non valido che fallisce silenziosamente una volta incollato. Lo strumento emette sempre i segni di percentuale nel campo HSL.

✗ Errato
Emettere HSL senza segni di percentuale:
hsl(217 91 60)
Errore di parsing CSS — ogni browser ignora l'intera regola.
✓ Corretto
Emetta HSL con segni di percentuale su S e L:
hsl(217 91% 60%)
CSS valido — funziona in ogni evergreen browser e in IE 9+.

Chi usa HEX in HSL

Sviluppatori frontend che definiscono variabili CSS HSL
Definisca `--primary: hsl(217 91% 60%)` una sola volta dall'hex Figma, poi componga `--primary-hover: hsl(217 91% 70%)`, `--primary-active: hsl(217 91% 50%)`, `--primary-bg: hsl(217 91% 95%)` regolando solo il numero L. Incolli l'hex una volta, legga la tripletta HSL, la inserisca nel blocco di custom property CSS. Il pattern che i design system legacy usavano per mantenere tinte chiare e tinte scure correlate per tono prima che le scale basate su OKLCH prendessero piede.
Designer che traducono hex in HSL picker
I designer cresciuti su picker hue + saturation + value (Adobe, Sketch, modalità HSB di Figma) spesso vogliono la tripletta HSL anche quando il file sorgente rilascia hex. Incollare una volta l'hex produce l'HSL corrispondente, pronto da leggere nella posizione mentale della ruota dei colori del designer senza un'ipotesi manuale. Utile quando si rivede una specifica di colore brand e si vuole sapere dove si colloca sulla ruota di tonalità rispetto ad altri colori brand della famiglia.
Autori di theme system che calcolano token dark-mode
Il theming dark-mode spesso inverte L mantenendo H e S — un primary light-mode `hsl(217 91% 60%)` mappa su un `hsl(217 91% 40%)` dark-mode (o simile). Incolli l'hex light-mode, legga l'HSL, calcoli la L dark-mode, scriva il nuovo HSL nel token dark theme. Il pattern è meccanico quando si ha la tripletta HSL; è molto più macchinoso da fare con canali RGB grezzi.
Autori di design system che generano scale di tinte chiare e scure
Generi una scala di tinte chiare/scure a 9 passi scansionando L: `hsl(217 91% 95%)` (più chiaro), 85%, 75%, 65%, 55%, 45%, 35%, 25%, `hsl(217 91% 15%)` (più scuro). Incolli l'hex base, legga l'HSL, scansioni L in passi del 10% mentalmente o nel codice. (Per scale percettivamente uniformi in cui ogni passo appare ugualmente luminoso, passi al campo OKLCH accanto — le scale HSL appaiono irregolari tra le tonalità perché L non è percettivamente uniforme.)
Autori CSS che usano matematica hsl(from ...) a runtime
Il CSS moderno supporta la sintassi `color-function-from`: `hsl(from var(--primary) h s calc(l + 10%))` deriva una variante più chiara di `--primary` al momento del render, senza precalcolare ogni passo. Incolli l'hex brand, confermi la tripletta HSL, inserisca la base in una variabile CSS e usi la matematica a runtime per i token derivati. Arriva in Chrome 119+, Safari 17.2+, Firefox 128+.
Sviluppatori frontend che costruiscono set di token HSL Tailwind v3
Tailwind v3 memorizzava i colori di tema come triplette HSL separate da spazi in variabili CSS (`--primary: 217 91% 60%`), composte tramite `hsl(var(--primary))` in `tailwind.config.js`. Incolli l'hex brand, legga l'HSL, inserisca i tre numeri (senza il wrapper `hsl(...)`) nella definizione di variabile. Tailwind v4 da allora è passato a OKLCH-first, ma i codebase v3 usano ancora il pattern HSL e lo faranno per anni.
Autori di UI di color picker che mappano hex su controlli HSL
Costruire un color picker che espone hue / saturation / lightness come tre slider separati (la classica UI in stile Adobe) significa mappare un hex in ingresso sui tre controlli del picker. Incolli l'hex qui, legga la tripletta HSL, posizioni i tre slider programmaticamente. La conversione è la stessa che il suo picker eseguirebbe internamente; questo strumento espone i valori intermedi per il debug.
Ingegneri dell'accessibilità che regolano la luminosità del colore brand per il contrasto
Quando un colore brand non passa il contrasto WCAG contro uno sfondo, il fix economico è aumentare L finché il rapporto non passa — senza cambiare H o S, il colore continua a leggersi come la stessa identità brand. Incolli l'hex brand, osservi i badge di contrasto, regoli mentalmente L (o usi l'asse L del picker) finché sia WCAG sia APCA non passano. Il campo HSL espone la nuova percentuale L per il documento di specifica; il campo hex espone il codice corrispondente per il foglio di stile.

Matematica e parsing HEX in HSL

HEX → RGB → HSL è una pipeline a due step
La conversione passa attraverso RGB come intermedio. Step uno: si analizza l'hex in interi RGB tramite `parseInt(hex.slice(1, 3), 16)` per canale. Step due: si normalizza RGB a 0-1, si calcolano `max`/`min`/`delta`, si applica la trigonometria piecewise di CSS Color 4 §6.4: `L = (max + min) / 2`, `S = delta / (1 - |2L - 1|)`, `H = piecewise * 60`. La struttura a due step è il motivo per cui lo strumento espone anche la tupla RGB intermedia — è gratuita da mostrare e utile per il debug.
CSS Color 4 §6.4 definisce l'algoritmo di riferimento
La specifica W3C CSS Color 4 §6.4 (algoritmo `rgb()` to `hsl()`) definisce la matematica canonica piecewise: lightness come punto medio di max e min, saturation come `delta / (1 - |2L - 1|)` (con S = 0 quando delta = 0, per evitare la divisione per zero sui grigi), hue come trigonometria a 60 gradi per passo su quale canale è max. La specifica gestisce anche i casi limite: nero puro (`#000`) produce `hsl(0 0% 0%)` con un'arbitraria tonalità di 0°; bianco puro (`#FFF`) produce `hsl(0 0% 100%)` analogamente; il grigio puro produce `hsl(0 0% 50%)`.
Hue si avvolge a 360°, S e L sono percentuali
I tre assi di HSL hanno unità diverse. Hue è un grado angolare da 0 a 360 con avvolgimento — `hsl(370 ...)` viene interpretato come `hsl(10 ...)` perché le posizioni angolari si avvolgono. Saturation e Lightness sono percentuali dallo 0% al 100%, senza avvolgimento; i valori fuori range vengono clampati. CSS Color 4 accetta anche la tonalità in turn (`hsl(0.6turn ...)`) o radianti (`hsl(3.787rad ...)`); l'output dello strumento usa i gradi perché è la forma più comune nelle UI degli strumenti di design e nei documenti di specifica brand.
La lightness di HSL NON è percettivamente uniforme
Un verde a `hsl(120 100% 50%)` appare visibilmente più luminoso di un blu a `hsl(240 100% 50%)`, anche se entrambi hanno la stessa Lightness nominale — perché HSL eredita le stranezze gamma di sRGB e usa la stessa scala L su ogni tonalità. È per questo che le scale di tinte chiare basate su HSL appaiono irregolari (l'estremità chiara della scala verde sale più velocemente dell'estremità chiara della scala blu) e perché i design system sono in gran parte migrati a OKLCH per la generazione di scale. Lo strumento espone sia HSL sia OKLCH così la scelta è a un colpo d'occhio di distanza.
Fonte di verità interna OKLCH per stabilità del round-trip
Anche se questo spoke mira specificamente a HEX → HSL, il convertitore sottostante condiviso mantiene internamente il colore canonico come tripletta OKLCH. HEX → HSL → RGB → OKLAB → HEX fa il round-trip restando bit-stable; i convertitori legacy con pivot HSL accumulano errore di arrotondamento e possono far derivare la tonalità di diversi gradi su poche conversioni. Il pivot OKLCH preserva anche Hue come asse stabile, quindi trascinare il cursore di tonalità non attraversa accidentalmente il grigio. Secondo il paper OKLAB di Björn Ottosson del 2020.
Codifica del canale: unsigned a 8 bit, gamma-encoded sRGB
I codici hex codificano canali RGB unsigned a 8 bit (0-255) nello spazio colore sRGB definito da IEC 61966-2-1 (1996). I valori sono *gamma-encoded* — la relazione tra valore di canale e luminosità percepita è non-lineare, seguendo la funzione di trasferimento sRGB piecewise (all'incirca un esponente 2,4 con un piccolo segmento lineare vicino allo zero). HSL viene derivato direttamente da questi valori RGB gamma-encoded senza alcuno step di linearizzazione, che è la causa radice del problema di uniformità percettiva di HSL. OKLCH linearizza prima e poi rimappa su uno spazio percettivamente uniforme; HSL no.

Best practice per i flussi di lavoro HEX / HSL

Usi la moderna sintassi HSL con spazi nel nuovo codice
`hsl(217 91% 60%)` (con spazi) e `hsl(217 91% 60% / 0.5)` (slash per l'alpha) di CSS Color 4 sono le sintassi canoniche per il codice che spedisce nel 2025 e oltre. Le forme legacy con virgole `hsl(217, 91%, 60%)` e `hsla(217, 91%, 60%, 0.5)` sono ancora supportate ovunque ma stilisticamente deprecate in CSS Color 4. Usi la sintassi moderna nei nuovi fogli di stile; mantenga `hsla()` solo per contesti di fallback IE 9-11 dove serve davvero supporto legacy.
Generi scale in OKLCH, non in HSL
L'asse Lightness di HSL non è percettivamente uniforme — una scansione L a 9 passi produce una scala in cui i passi verdi appaiono più luminosi dei passi blu a ogni valore L. Per scale in cui ogni passo deve apparire ugualmente luminoso (la richiesta di default dei design system), generi invece in OKLCH: `oklch(0.7 0.15 217)`, `oklch(0.6 0.15 217)`, ecc. Lo strumento espone sia HSL sia OKLCH per lo stesso hex, quindi passare tra i due dista un clic Copia.
Blocchi tonalità e saturazione, scansioni la luminosità
Quando usa HSL per il lavoro di tinte chiare/scure, cambi solo il numero L — mantenga H e S identici lungo la scala. La deriva di tonalità (anche di 5°) fa apparire una scala disordinata. La deriva di saturazione fa apparire l'estremità chiara sbiadita e l'estremità scura fangosa. La disciplina di un-asse-alla-volta è ciò che dà a HSL la sua reputazione amichevole per il design; abbandonarla dà il peggio di entrambi i mondi.
Preferisca hex per i token fonte di verità, HSL per le varianti calcolate
Quando scrive una specifica di design token, preferisca hex (o OKLCH) come forma canonica — sono più tersi e si inseriscono puliti in JSON o YAML. HSL è più utile per i token *derivati* a runtime (`hsl(from var(--primary) h s calc(l + 10%))`) che come formato fonte di verità. I due formati descrivono lo stesso colore; la scelta riguarda quale ruolo gioca il token nel sistema.
Documenti le varianti HSL con l'hex base
Quando spedisce una variabile CSS come `--primary-light: hsl(217 91% 70%)`, includa un commento che punti all'hex base: `/* base: #3b82f6 → hsl(217 91% 60%), variante light +10% L */`. Sei mesi dopo, quando qualcuno vuole derivare `--primary-lighter`, ha bisogno del colore base da cui calcolare — e HSL da solo non lo espone. Hex + HSL insieme preservano la piena provenienza.
Usi l'URL hash per condividere decisioni di colore live
Ogni cambio di colore aggiorna l'hash URL come `#hex=3b82f6` automaticamente. Copi l'URL in un thread Slack o in una issue GitHub e chiunque lo apra atterra sullo stesso colore con la stessa tripletta HSL. Questo è più affidabile che incollare una stringa HSL in chat — i destinatari a volte fanno typo sul grado o omettono un segno di percentuale quando inseriscono manualmente il valore — e consente a un thread di design-review di riferirsi a un colore esatto invece di "il blu di cui abbiamo parlato martedì". L'hash non viene mai trasmesso al server.

Domande frequenti

Come si converte un hex in HSL?
Prima si converte l'hex in interi RGB tramite `parseInt(hex, 16)`, poi si normalizza ogni canale a 0-1 dividendo per 255, poi si calcolano `max`/`min`/`delta` sui tre canali e si applica la trigonometria piecewise di CSS Color 4 §6.4: lightness = `(max + min) / 2`, saturation = `delta / (1 - |2L - 1|)` (zero quando delta è zero), hue piecewise su quale canale è max (60° per passo attorno alla ruota). `#3b82f6` viene analizzato in `rgb(59 130 246)` e poi convertito in `hsl(217 91% 60%)`. Questo strumento esegue la pipeline completa in tempo reale mentre digita.
Cos'è il colore HSL?
HSL è un rimodellamento cilindrico dello spazio colore sRGB su tre assi percettivamente significativi: Hue (0-360°, posizione angolare sulla ruota dei colori — 0° rosso, 120° verde, 240° blu), Saturation (0-100%, intensità cromatica — 0% grigio, 100% pienamente cromatico) e Lightness (0-100%, luminosità — 0% nero, 50% tonalità pura, 100% bianco). Alvy Ray Smith ne ha pubblicato la derivazione nel 1978 per dare ai designer un sistema di coordinate più vicino al modo in cui pensano al colore rispetto all'indirizzamento per canale RGB grezzo. HSL è in CSS dal 2010 (CSS3) e arriva in ogni browser.
Qual è la differenza tra HSL e HSV?
Entrambi sono rimodellamenti cilindrici di sRGB con assi di tonalità identici, ma trattano il terzo asse in modo diverso. La Lightness di HSL va da nero allo 0% attraverso la tonalità pura al 50% fino a bianco al 100% — simmetrica, quindi `hsl(0 100% 50%)` è rosso puro e `hsl(0 100% 100%)` è bianco. Il Value di HSV va da nero allo 0% a tonalità pura al 100% — asimmetrico, quindi `hsv(0 100% 100%)` è rosso puro e il bianco compare solo quando la saturation scende a 0. HSL è più utile per le scale di tinte chiare/scure dei design system perché il punto medio del 50% segna il riferimento di colore puro; HSV è più utile per i color picker perché il quadrato saturation/value si mappa pulito su una UI di picker SV.
Perché usare HSL al posto di RGB?
Tre ragioni. Primo, slider intuitivi — spostare L dal 60% al 70% produce in modo prevedibile una tinta chiara dello stesso colore; spostare R da 130 a 150 produce un cambio di colore meno prevedibile. Secondo, generazione di palette — `hsl(217 91% 60%)`, `hsl(217 91% 70%)`, `hsl(217 91% 80%)` è una scala di tinte chiare coerente per tono generata cambiando un solo numero; lo stesso in RGB richiede tre modifiche coordinate. Terzo, matematica CSS a runtime — il CSS moderno consente di calcolare `hsl(from var(--primary) h s calc(l + 10%))` per derivare una variante più chiara da un token base senza precalcolare ogni passo. RGB non ha una convenienza analoga di asse cilindrico.
Come si legge un valore HSL?
HSL ha tre parti in ordine: Hue, Saturation, Lightness. `hsl(217 91% 60%)` significa hue = 217° (un blu pulito, appena oltre la zona blu puro a 240° e indietro verso il ciano), saturation = 91% (altamente cromatico, quasi nessun grigio), lightness = 60% (una tacca più luminosa del punto medio di tonalità pura). Hue è l'unico asse senza il suffisso percentuale perché è espresso in gradi — i valori si avvolgono a 360°, quindi `hsl(370 ...)` è identico a `hsl(10 ...)`. Il valore prefissato dalla slash alla fine (se presente) è l'alpha nell'intervallo 0-1: `hsl(217 91% 60% / 0.5)` è lo stesso colore al 50% di opacità.
Il CSS supporta HSL?
Sì — HSL è in CSS da CSS3 nel 2010 e arriva in ogni browser, incluso IE 9. La sintassi originale usava virgole: `hsl(217, 91%, 60%)` per l'opaco e `hsla(217, 91%, 60%, 0.5)` per il valore con alpha. CSS Color 4 (W3C Candidate Recommendation dal 2022) ha aggiunto la forma moderna con spazi: `hsl(217 91% 60%)` e `hsl(217 91% 60% / 0.5)` con alpha prefissato dalla slash. La tonalità può essere espressa anche in turn o radianti (`hsl(0.6turn 91% 60%)` è identico a `hsl(217 91% 60%)`). Entrambe le sintassi, legacy e moderna, sono interscambiabili in tutti gli evergreen browser.
Cosa significa la L in HSL?
Lightness (luminosità). L'asse 0-100% che controlla quanto luminoso appare il colore, con 0% che mappa al nero puro e 100% al bianco puro. Il punto medio (50%) è dove vive la tonalità pura — `hsl(0 100% 50%)` è rosso puro, mentre `hsl(0 100% 25%)` è un rosso più scuro e `hsl(0 100% 75%)` è un rosa più chiaro. La Lightness è la controparte simmetrica del Value asimmetrico di HSV. Da notare che la lightness di HSL *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; per l'uniformità percettiva, ricorra invece a OKLCH.
Quanto è precisa la conversione hex in HSL?
Lo step HEX → RGB è bit-exact (`parseInt(hex, 16)` restituisce interi senza coinvolgimento di float). Lo step RGB → HSL coinvolge trigonometria e divisione, quindi l'output è un float che lo strumento arrotonda a gradi interi e percentuali intere per la visualizzazione. Un round-trip HEX → HSL → HEX recupera l'hex originale entro 1 unità di canale (l'errore di arrotondamento dovuto a visualizzare H come grado intero). Per lavori senza perdita, OKLCH è un formato interno migliore — questo strumento mantiene effettivamente OKLCH come fonte di verità internamente, poi deriva HSL alla visualizzazione, quindi la stabilità del round-trip è migliore rispetto ai convertitori ingenui con pivot HSL.

Strumenti correlati

Vedi tutti gli strumenti →