What are HSL colors? Understanding Hue, Saturation, and Lightness

November 14, 2025 4 min read

HSL describes color using three components that match how we tend to think about it: hue (which color),
saturation (how intense), and lightness (how light or dark). Instead of adjusting red, green, and blue
channels directly, HSL lets you work with these higher-level properties in a structured way.


What Does HSL Stand For?

HSL stands for Hue, Saturation, Lightness. It is a color model used in
CSS, design tools, and color pickers to describe colors in a form that often feels more intuitive than
raw RGB values.

In CSS, HSL colors are written as:

hsl(H, S%, L%)
  • H (hue) — an angle in degrees from 0 to 360
  • S (saturation) — a percentage from 0% to 100%
  • L (lightness) — a percentage from 0% to 100%

Example:

hsl(204, 70%, 53%)

This describes a medium blue: hue around the blue region of the wheel, fairly strong saturation, and
middle lightness.


Hue: Position on the Color Wheel

Hue defines the basic color family and is represented as an angle on a 360° color wheel.

  • → red
  • 60° → yellow
  • 120° → green
  • 180° → cyan
  • 240° → blue
  • 300° → magenta
  • 360° → wraps back to red

Angles in between land in intermediate families. For example, 30° is an orange, 90° is a yellow-green,
and 210° is a blue-cyan.


Saturation: Color Intensity

Saturation controls how vivid or muted the color appears. At high saturation the color
looks pure and strong; at low saturation it moves toward gray.

  • 100% — fully saturated, pure color
  • 0% — completely desaturated (a gray of some lightness)

With a fixed hue of 204° (blue):

hsl(204, 100%, 50%) → vivid blue
hsl(204, 50%, 50%)  → softer, muted blue
hsl(204, 0%, 50%)   → neutral gray

Reducing saturation is a common way to create subtle, pastel, or muted palettes while maintaining the
same hue.


Lightness: Bright vs Dark

Lightness controls how light or dark the color appears.

  • 0% lightness — black (regardless of hue or saturation)
  • 50% lightness — midtone of the chosen hue
  • 100% lightness — white

With hue and saturation fixed at 204° and 70%:

hsl(204, 70%, 20%) → dark blue
hsl(204, 70%, 50%) → medium blue
hsl(204, 70%, 80%) → very light, near pastel blue

Adjusting lightness while keeping hue and saturation constant is an effective way to generate tints and
shades for a single base color.


Reading an HSL Color

Consider this example:

hsl(120, 60%, 50%)
  • Hue 120° → green region of the color wheel
  • Saturation 60% → reasonably vivid, but not fully saturated
  • Lightness 50% → middle brightness

The result is a medium, moderately saturated green. Increasing lightness toward 70–80% yields lighter
greens for backgrounds; decreasing it toward 30–40% produces darker versions for text or accents.


HSL vs RGB vs HEX

HSL, RGB, and HEX all describe the same underlying colors, but from different perspectives.

#3498db
rgb(52, 152, 219)
hsl(204, 70%, 53%)

These three notations all refer to the same blue. Their differences are in how they express it.

Format What It Describes Strengths
RGB Red, green, and blue channel intensities Maps closely to display hardware and color channels
HEX RGB channels written in base-16 Compact, widely used in CSS and style guides
HSL Hue angle, saturation, and lightness Convenient for systematic tints, shades, and muted variants

In many workflows, RGB or HEX is used for storing and sharing colors, while HSL is used for adjusting
and generating related tones.


Why Designers Use HSL

HSL is especially useful when building palettes and design systems because individual components map
directly to familiar decisions:

  • Keep the same hue, raise lightness for backgrounds, lower it for text or borders
  • Lower saturation to create muted or neutral variants of a brand color
  • Shift hue slightly to explore related colors while preserving saturation and lightness

This makes it easier to maintain consistent contrast and “feel” across a palette than adjusting three
separate RGB channels manually.


What Is HSLA?

HSLA extends HSL with an alpha channel for opacity, similar to how RGBA extends RGB:

hsla(H, S%, L%, A)

The alpha value A ranges from 0 (transparent) to 1
(opaque).

hsla(204, 70%, 53%, 1)   → opaque blue
hsla(204, 70%, 53%, 0.5) → 50% transparent blue
hsla(0, 0%, 0%, 0.3)     → semi-transparent black overlay

HSLA is commonly used for overlays, focus states, and layered UI elements that need to blend with the
content underneath.


Common Pitfalls

  • Setting saturation near 0% and expecting the hue to remain visible (it becomes gray)
  • Using very low lightness values for text, which can reduce readability on dark backgrounds
  • Assuming lightness behaves identically to perceived brightness across all hues
  • Forgetting that hsl(0, 0%, L%) always produces a gray, regardless of the hue value

Where HSL and HSLA Are Used

HSL and HSLA appear throughout modern design and development:

  • CSS for web interfaces and component libraries
  • Design tools and color picker panels
  • Design systems and token-based color scales
  • Theming systems, including dark mode and high-contrast modes

Because the parameters align well with how designers think about color, HSL is a common choice when
defining reusable color tokens and dynamic themes.


Using HSL in Practice

A typical workflow starts with one or two base hues and then derives supporting colors by adjusting
saturation and lightness:

  • Create a base brand color with hsl(H, S%, 50%)
  • Increase lightness to 70–80% for backgrounds or hover states
  • Decrease lightness to 30–40% for emphasis or outlines
  • Reduce saturation to build neutral supporting colors from the same hue

Tools like Swatching can show HSL alongside HEX and RGB, extract colors from images,
and help visualize how hue, saturation, and lightness changes affect a palette.

As you work with HSL more often, the numeric values start to feel predictable: you can look at
hsl(210, 20%, 30%) and know it will be a dark, muted blue suitable for a background or
subdued text.