Valid HEX input
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench.
Convert HEX used for compact web color codes and design tokens into hue, saturation and lightness with CSS-friendly units, ready for CSS color editing by hue, saturation and lightness.
Values are converted in the page with local TypeScript functions. No color value needs to be uploaded for this calculation.
Choose a color visually, use sliders, or paste a value.
Quick Presets
hsl(9, 100%, 64%)
tomato
PreviewOriginal
rgb(255, 99, 71)
Lighten 20%
rgb(255, 130, 108)
Darken 20%
rgb(204, 79, 57)
Complementary
rgb(71, 227, 255)
Aa
With White Text
Aa
With Black Text
Other Formats
Color Palette
Did you know?
You can pick a color from your screen in browsers that support the EyeDropper API.
Convert HEX used for compact web color codes and design tokens into hue, saturation and lightness with CSS-friendly units, ready for CSS color editing by hue, saturation and lightness. Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value.
Convert HEX used for compact web color codes and design tokens into hue, saturation and lightness with CSS-friendly units, ready for CSS color editing by hue, saturation and lightness. Use this focused route when your source is already HEX and the next system specifically expects HSL; use the general converter when you need several representations at once.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench.
hue, saturation and lightness with CSS-friendly units
Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value. Compare the result with the intended destination before reusing it.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. In “How to use the tool: Enter the source color”, apply this specifically to HEX to HSL Converter.
Use the sliders, direct field, preset swatches or system picker when available. The preview exposes normalization before HSL formatting.
Copy the HSL row. Alternate rows stay visible for comparison, but this page's intent remains HEX → HSL.
Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value. Compare the result with the intended destination before reusing it. Use the preview to catch a parsing mistake before copying the HSL row.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. In “Controls explained: Valid HEX input”, apply this specifically to HEX to HSL Converter.
hue, saturation and lightness with CSS-friendly units. HSL is an RGB transform, not a perceptually uniform model; its saturation is not HSV saturation.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. The workbench parses the source to an sRGB triple, then formats hue, saturation and lightness with CSS-friendly units. HEX is notation for RGB channel values, not a separate color gamut. HSL is an RGB transform, not a perceptually uniform model; its saturation is not HSV saturation.
Values are converted in the page with local TypeScript functions. No color value needs to be uploaded for this calculation.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. In “Troubleshooting: Why is my HEX input rejected?”, apply this specifically to HEX to HSL Converter.
Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value. In “Troubleshooting: Why does HEX differ after converting to HSL and back?”, apply this specifically to HEX to HSL Converter.
Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value. Reset the tool and retry with a known supported value before reporting an algorithm error.
Use this focused route when your source is already HEX and the next system specifically expects HSL; use the general converter when you need several representations at once. In “When should I use the focused HEX to HSL converter?”, apply this specifically to HEX to HSL Converter.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. In “Why is my HEX input rejected?”, apply this specifically to HEX to HSL Converter.
Channel normalization and integer/percentage formatting can make a HEX → HSL → HEX round trip differ from the starting value. In “Why does HEX differ after converting to HSL and back?”, apply this specifically to HEX to HSL Converter.
hue, saturation and lightness with CSS-friendly units. CSS color editing by hue, saturation and lightness. HSL is an RGB transform, not a perceptually uniform model; its saturation is not HSV saturation.
Enter a three- or six-digit HEX value, with or without #. Alpha shorthand is not parsed by this workbench. HEX is notation for RGB channel values, not a separate color gamut.
Values are converted in the page with local TypeScript functions. No color value needs to be uploaded for this calculation. Keep a copy of the original HEX value when comparing rounded HSL output.
Use this focused route when your source is already HEX and the next system specifically expects HSL; use the general converter when you need several representations at once. In “Continue your color workflow”, apply this specifically to HEX to HSL Converter.
Open the first related route when you need to continue beyond the focused HEX → HSL conversion.
Color Converter for HEX, RGB, HSL, LAB and OKLCH