Skip to content
UX Atlas
Plate FND·022 · UI foundationGrid D2 · Rev. 2026-08-14

Lightness

The dimension that determines contrast, hierarchy and whether text can be read at all.

UI foundationCraft conventionFoundational

Definition

Lightness is how light or dark a colour appears. It is the dimension that governs contrast ratios, and therefore the one that determines accessibility compliance. Perceptual lightness, as in OKLCH, corresponds to appearance far better than HSL lightness does.

Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.

On this plate
  1. 1Definition
  2. 2Lightness is the load-bearing dimension
  3. 3A typical lightness ramp and its uses
  4. 4Building and using a lightness ramp
  5. 5In practice
  6. 6Local chart
  7. 7Continue from here

Reach for this when

  • Generating a colour ramp.
  • Verifying accessibility compliance.
  • Building light and dark themes from one source.

Common mistakes

  • Equal-lightness colours used to distinguish meaning.
  • Ramps stepped in HSL, which bunch perceptually.
  • Contrast checked only on the primary pairing.
  • Treating a numeric step as a contrast guarantee across different hues.

Lightness is the load-bearing dimension

Hue and saturation are largely aesthetic. Lightness decides whether text is readable, whether a border is visible and whether a hierarchy survives greyscale. Two colours with the same lightness will be indistinguishable to some readers no matter how different their hues.

This is why ramps are built by stepping lightness, and why a design system's colour documentation should show the contrast ratio of every usable pair rather than leaving it to be discovered later.

A typical lightness ramp and its uses

Approximate roles for an eleven-step ramp. Exact values depend on the hue and the space.

StepTypical use
50 to 100Page and surface backgrounds in light mode.
200 to 300Borders, dividers, disabled surfaces.
400 to 500Placeholder text, icons on light backgrounds, chart fills.
600 to 700Body text on light backgrounds, primary interactive fills.
800 to 950Headings, high-emphasis text, dark mode surfaces.

Building and using a lightness ramp

Do

  • Space steps by perceived lightness, so the same gap looks the same across the ramp.
  • Give each step a job before you give it a name.
  • Check the pairs you will actually use, not every theoretical combination.
  • Keep the same number of steps across hues, so swapping a hue does not break a layout.

Do not

  • Generate a ramp by mixing with white and black, which desaturates unevenly.
  • Assume step 500 in one hue matches step 500 in another for contrast.
  • Add a step to solve one screen. That is how eleven-step ramps become nineteen.

In practice

  1. i.

    Contrast matrix in system documentation

    Design systems

    A table showing which text steps pass against which surface steps turns an accessibility question into a lookup, and removes it from every future design review.

  2. ii.

    Two hues, same number, different contrast

    Why numbering is not a guarantee

    Yellow 500 and blue 500 differ by several points of perceived lightness in most palettes. Text that passes on one fails on the other, which is why the check has to be per pair rather than per step number.

Local chart

FND·022 · Region II · Grid D2

This entry and the entries it is stated to connect with. Each line is labelled with what the connection means.

Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.

Short definition

The one-paragraph version, for when that is all you need.

Related concept

Connected closely enough to change how you apply this.