Un convertidor HEX a HSL es una pequeña utilidad que transforma un código de color hex (`#3b82f6`) en el triple cilíndrico Matiz / Saturación / Luminosidad que codifica el mismo color sRGB (`hsl(217 91% 60%)`). Los códigos hex son la cadena escueta en base 16 que diseñadores y desarrolladores pegan entre Figma, Sketch, Photoshop, PDFs de guía de marca y hojas de estilo CSS — tres canales de 8 bits empaquetados en una forma `#RRGGBB` de 6 caracteres, anclados al espacio de color sRGB definido por IEC 61966-2-1 en 1996. HSL es una reforma cilíndrica del mismo espacio de color sobre tres ejes más amigables para el diseñador: un ángulo de matiz en la rueda cromática, un porcentaje de saturación cromática y un porcentaje de luminosidad. Los desarrolladores convierten HEX → HSL constantemente: para definir un color de marca como una variable CSS y luego componer matices claros u oscuros ajustando solo L, para alimentar una UI de selector de color que muestra Matiz y SL como controles separados, para generar rampas de tintes claros y matices oscuros para un sistema de diseño, o para realizar matemáticas de variable CSS en tiempo de ejecución vía `hsl(from var(--primary) h s calc(l + 10%))` para tokens de tema derivados. Esta herramienta ejecuta la conversión en vivo mientras escribe, sin botón "Convertir" que pulsar, y expone cada otro formato de color común (RGB, OKLCH, OKLAB, HSV, HWB, CMYK, más los 148 colores CSS con nombre) junto con la salida HSL de forma gratuita.
**El propio formato HSL merece una mirada más detenida.** HSL = Matiz (0-360°), Saturación (0-100%), Luminosidad (0-100%). El matiz es la posición angular en la rueda cromática — 0° es rojo, 60° es amarillo, 120° es verde, 180° es cian, 240° es azul, 300° es magenta, y 360° envuelve de vuelta al rojo. La saturación es intensidad cromática del 0% (gris acromático) al 100% (totalmente cromático sin contenido de gris). La luminosidad es el brillo del 0% (negro puro, independientemente de matiz o saturación) pasando por el 50% (el matiz puro a chroma pleno) hasta el 100% (blanco puro, independientemente de matiz o saturación). Alvy Ray Smith publicó la derivación original en 1978 como parte del impulso temprano de gráficos por computadora para dar a los diseñadores sistemas de coordenadas más cercanos a su modelo cognitivo del color que el direccionamiento de canales RGB en crudo. El modelo ha estado en CSS desde CSS3 (2010) y viene en todos los navegadores hasta IE 9. La sintaxis CSS original usaba comas: `hsl(217, 91%, 60%)` para opaco, `hsla(217, 91%, 60%, 0.5)` para los que llevan alfa. CSS Color 4 (Candidate Recommendation del W3C desde 2022) añadió una forma moderna con espacios: `hsl(217 91% 60%)` y `hsl(217 91% 60% / 0.5)` con alfa precedido por barra — la misma forma sintáctica que las otras notaciones funcionales de CSS Color 4 (`rgb()`, `lab()`, `oklch()`, `color()`). El matiz también puede expresarse en vueltas (`hsl(0.6turn 91% 60%)`) o radianes (`hsl(3.787rad 91% 60%)`), todos equivalentes a la forma canónica en grados. Cada navegador evergreen analiza cada sabor sintáctico; la herramienta emite la forma moderna con espacios por defecto.
Las matemáticas de conversión van en ambas direcciones limpiamente. **HEX → HSL** es una canalización de dos pasos. Primero, analice el hex de 6 dígitos `#RRGGBB` como tres números en base 16 de 2 dígitos vía `parseInt(hex.slice(1, 3), 16)` etc. para obtener canales RGB enteros en 0-255. Segundo, normalice cada canal a 0-1 dividiendo por 255, luego compute `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min`. La luminosidad es el promedio de max y min: `L = (max + min) / 2`. La saturación es condicional sobre la luminosidad: cuando L ≤ 0.5, `S = delta / (max + min)`; cuando L > 0.5, `S = delta / (2 - max - min)`. Equivalentemente en la forma de CSS Color 4 §6.4, `S = delta / (1 - |2L - 1|)` (con S = 0 cuando delta = 0). El matiz es a trozos según qué canal sea el máximo: cuando R es el máximo, `H = ((G - B) / delta) % 6`; cuando G es el máximo, `H = (B - R) / delta + 2`; cuando B es el máximo, `H = (R - G) / delta + 4`; multiplique por 60 para escalar a grados, sume 360 si es negativo. El inverso (HSL → HEX, vía RGB) usa el ayudante `f(n) = L - a * max(-1, min(k-3, 9-k, 1))` donde `a = S * min(L, 1-L)` y `k = (n + H/30) mod 12`, aplicado con n = 0, 8, 4 para producir R, G, B respectivamente, luego escalado a 0-255 y codificado en hex.
**Por qué HSL sigue siendo útil.** Deslizadores intuitivos — ajustar L aclara u oscurece de forma predecible sin romper la identidad del matiz, mientras que ajustar un canal RGB produce un desplazamiento de color menos predecible. Matemáticas CSS en tiempo de ejecución — los navegadores modernos soportan `hsl(from var(--primary) h s calc(l + 10%))` para derivar tokens de tema en tiempo de renderizado. Cognición del diseñador — los diseñadores criados con selectores de color HSV razonan sobre color en términos de matiz + chroma incluso cuando el archivo entrega hex. **El problema de HSL** es que su eje de Luminosidad no es perceptualmente uniforme — un verde a L=50% se ve visiblemente más brillante que un azul a L=50% porque HSL hereda las peculiaridades de gamma de sRGB y trata cada matiz como equivalente en la escala L. Cuando necesita uniformidad perceptual (generación de paletas donde cada paso debería verse igual de brillante, computación de tokens de modo oscuro que no haga accidentalmente que el texto azul sea más difícil de leer que el verde), recurra a OKLCH — la misma herramienta expone ambos, así que la elección está a un vistazo de distancia.
El flujo HEX → HSL de esta herramienta es una dirección de una familia de 5 radios que comparten el mismo convertidor de color unificado subyacente. El convertidor de color unificado dedicado es el centro — muestra los 9 formatos editables simultáneamente y es la herramienta correcta cuando su flujo de trabajo necesita más que solo hex y HSL. Los radios de dirección única apuntan a intenciones específicas de búsqueda en Google: el convertidor hex a RGB para la dirección de canvas y hardware, el convertidor RGB a hex para el inverso, el convertidor hex a OKLCH para sistemas de diseño modernos perceptualmente uniformes (Tailwind v4 y shadcn ahora vienen por defecto en OKLCH), y el convertidor hex a CMYK para aproximaciones de preparación de imprenta. Los cinco radios y el centro comparten el mismo motor de análisis y las mismas matemáticas de conversión, así que los resultados están garantizados idénticos a lo largo de la familia. Cada conversión se ejecuta localmente en su navegador — sus códigos hex nunca se suben, nunca se registran, y se disparan cero peticiones de red mientras escribe. Verifique en DevTools.