What Does HSL Stand For?
HSL stands for Hue, Saturation, and Lightness. It's a color model that describes colors in a way that's much more intuitive for humans than RGB or hex codes.
While RGB describes a color as "how much red, green, and blue light," HSL describes it as "what color, how vivid, and how bright." It's a cylindrical representation where each dimension maps to something you can name.
The Three Components of HSL
Hue (0° – 360°)
Hue is the base color, represented as an angle on the color wheel. 0° is red, 120° is green, 240° is blue, and 360° wraps back to red. Every number in between is a different hue — 30° is orange, 270° is purple, 180° is cyan, and so on.
Because hue is circular, 350° and 10° are neighbors (both red-ish), even though numerically they're far apart. This is what makes HSL so useful for creating harmonious palettes.
Saturation (0% – 100%)
Saturation is how "colorful" or vivid the color is. 0% saturation gives you pure gray — no color at all. 100% is the most intense, fully saturated version of that hue. Everything in between is progressively more muted.
Designers often work in the 30-70% saturation range for UI elements. Fully saturated colors (100%) can be harsh on the eyes and difficult to pair with others.
Lightness (0% – 100%)
Lightness is how bright the color is. 0% lightness is always black, regardless of hue or saturation. 100% is always white. 50% is the "pure" color — neither darkened nor lightened.
Wait — if lightness is 50%, is the color always the same brightness? Not exactly. A 50% lightness yellow looks brighter than a 50% lightness blue because our eyes perceive yellow as brighter. Lightness is a mathematical property, not a perceptual one. (If you want perceptual lightness, look into the LCH color model.)
HSL vs RGB vs Hex: Which Should You Use?
| Model | Best For | Example | Human Readable? |
|---|---|---|---|
| Hex | Copy-pasting, CSS | #6366f1 | No |
| RGB | Screen rendering | rgb(99, 102, 241) | No |
| HSL | Design, palettes, systems | hsl(239, 84%, 67%) | Yes |
| HSL / HSV | Artistic control | hsv(239, 59%, 95%) | Yes |
For day-to-day web work, most designers use hex codes in their CSS but think in HSL when building palettes. Modern CSS lets you use any format — and HSL custom properties are increasingly popular for design systems.
Why Designers Love HSL
1. It makes palettes trivial
Want a monochromatic palette? Keep H and S constant, vary L from 10% to 90%. Want analogous colors? Keep S and L constant, rotate H by ±30°. Want complementary? Add 180° to H. It's that simple.
2. It's the easiest way to tweak brightness
In hex or RGB, making a color 10% darker involves recalculating all three channels. In HSL, you just subtract 10 from L. Done.
3. It maps to how we talk about color
When someone says "that blue is too bright," they're talking about lightness. "Make it less intense" means lower saturation. "Shift it toward teal" means adjust hue. HSL aligns with natural language in a way RGB never will.
How to Convert HSL to RGB
While you'll usually use a tool for this, it's useful to understand the math. The HSL to RGB conversion is more complex than hex↔RGB because it involves trigonometric-looking steps:
- If saturation is 0%, the color is gray — R, G, B all equal lightness.
- Otherwise, calculate temporary values based on lightness and saturation.
- For each of R, G, B, determine which sector of the hue wheel it's in and compute accordingly.
The full algorithm is a bit lengthy to show here. Unless you're writing a color library, just use our Color Converter — it does HSL ↔ RGB ↔ hex and 6 other formats instantly.
HSL in CSS: Practical Examples
HSL works in all modern browsers and is great for design systems with CSS variables:
:root {
--brand-h: 239;
--brand-s: 84%;
--brand-l: 67%;
--brand: hsl(var(--brand-h) var(--brand-s) var(--brand-l));
--brand-dark: hsl(var(--brand-h) var(--brand-s) calc(var(--brand-l) - 15%));
--brand-light: hsl(var(--brand-h) var(--brand-s) calc(var(--brand-l) + 15%));
}
With this setup, changing your entire brand color is as simple as changing one number (--brand-h). All the light and dark variants update automatically.
HSV vs HSL: What's the Difference?
You'll also see HSV (Hue, Saturation, Value) in design tools. They're similar but not identical:
- HSL's "lightness" 100% = white, 0% = black, 50% = pure color
- HSV's "value" 100% = pure color, 0% = black. White is achieved by lowering saturation to 0%.
- HSV is what Photoshop, Figma, and most design tools use in their color pickers.
- HSL is what CSS supports natively.
Start Experimenting
The best way to understand HSL is to play with it. Open our Color Picker, switch to HSL mode, and drag the sliders around. Notice how hue rotates the color wheel, saturation controls intensity, and lightness slides from black to white.