Skip to content
Es Español

Colour

Palette

Colour ramps from yours, and which of their steps can carry text.

Hues
The ramp
What does each control do?

At 0 % the chroma is the same across the ramp; at 100 % it rises in the middle like a usual palette; at 200 % it is exaggerated. Whatever the screen cannot paint is clipped and flagged.

Turns the hue between the ends: dark steps one way, light steps the other. It is what makes a dark blue lean violet and a light one lean cyan, which is how the eye sees it. The anchored step never turns.

The names

Each hue uses its own name. The prefix goes before all of them: with “theme” you get --theme-color1-500. Leave it empty and they come out bare.

Click a colour to copy it.

color1
color2
color3

Everything is computed in sRGB, which is what any screen can paint. Tailwind’s and Radix’s palettes target P3, so their middle steps look a little more vivid than these on a screen that supports it.

What ink each step can carry

Which text colour you can write on each step at 4.5:1 — WCAG 2.2 AA for body text. The middle steps almost never take either: they work as background, border and large icon, not as text.

color150 · takes black (19.28:1)100 · takes black (17.40:1)200 · takes black (14.57:1)300 · takes black (11.52:1)400 · takes black (8.35:1)500 · takes black (5.71:1)600 · takes white (5.29:1)700 · takes white (7.81:1)800 · takes white (11.64:1)900 · takes white (15.97:1)950 · takes white (18.89:1)color250 · takes black (19.39:1)100 · takes black (17.58:1)200 · takes black (14.95:1)300 · takes black (12.01:1)400 · takes black (9.04:1)500 · takes black (6.37:1)600 · takes white (4.79:1)700 · takes white (7.12:1)800 · takes white (10.90:1)900 · takes white (15.33:1)950 · takes white (18.65:1)color350 · takes black (19.22:1)100 · takes black (17.21:1)200 · takes black (14.26:1)300 · takes black (11.08:1)400 · takes black (8.04:1)500 · takes black (5.95:1)600 · takes white (4.83:1)700 · takes white (7.71:1)800 · takes white (12.11:1)900 · takes white (16.29:1)950 · takes white (19.04:1)
  • Aatakes white
  • Aatakes black
  • neither one
The CSS, ready to copy

It comes out as oklch() and not hex on purpose: hex is eight bits and rounding it moves the lightness enough to break the ladder. Hex values are below if you need them.

:root {
  --color1-50:   #eff6fe;
  --color1-100:  #ddebff;
  --color1-200:  #bfd9fe;
  --color1-300:  #9ac2fe;
  --color1-400:  #6ba4fd;
  --color1-500:  #3b82f6;
  --color1-600:  #2867d3;
  --color1-700:  #1b4daa;
  --color1-800:  #10347c;
  --color1-900:  #081e51;
  --color1-950:  #030f2e;

  --color2-50:   #f0f8f0;
  --color2-100:  #ddf0dd;
  --color2-200:  #bbe4be;
  --color2-300:  #8ed496;
  --color2-400:  #54bf6b;
  --color2-500:  #16a34a;
  --color2-600:  #0d843d;
  --color2-700:  #06662f;
  --color2-800:  #034720;
  --color2-900:  #012c12;
  --color2-950:  #001708;

  --color3-50:   #fff2f1;
  --color3-100:  #ffe2e0;
  --color3-200:  #fec8c3;
  --color3-300:  #fea59d;
  --color3-400:  #fd776e;
  --color3-500:  #f64943;
  --color3-600:  #dc2626;
  --color3-700:  #a61312;
  --color3-800:  #710704;
  --color3-900:  #480301;
  --color3-950:  #290200;
}

All the tools

Productivity

Design

Home Español