Shades & tints

A full tonal ramp from any color, ready to paste into a design system.

Tonal ramp

Contrast against black and white

StepHexvs whitevs blackSafe for body text on
50#fdf5f21.0819.52black
100#fbebe51.1618.12black
200#f5d0c21.4314.68black
300#eeb19b1.8411.4black
400#e68c6b2.528.33black
500#de663b3.466.07black
600#c44d214.744.43white
700#9d3d1a6.743.12white
800#762e149.672.17white
900#4f1f0d13.691.53white
950#30130817.181.22white

CSS custom properties

:root {
  --brand-50: #fdf5f2;
  --brand-100: #fbebe5;
  --brand-200: #f5d0c2;
  --brand-300: #eeb19b;
  --brand-400: #e68c6b;
  --brand-500: #de663b;
  --brand-600: #c44d21;
  --brand-700: #9d3d1a;
  --brand-800: #762e14;
  --brand-900: #4f1f0d;
  --brand-950: #301308;
}

Tailwind config

brand: {
  50: '#fdf5f2',
  100: '#fbebe5',
  200: '#f5d0c2',
  300: '#eeb19b',
  400: '#e68c6b',
  500: '#de663b',
  600: '#c44d21',
  700: '#9d3d1a',
  800: '#762e14',
  900: '#4f1f0d',
  950: '#301308',
}

How it works

A tonal ramp takes one hue and generates a series of lightness steps, giving you a full scale from a near-white tint to a near-black shade — the backbone of any design system.

The 50–950 numbering

The convention popularised by Material Design and Tailwind: 50 is lightest, 500 is the base, 950 is darkest. Numbering rather than naming means adding a step later does not force a rename, and it makes “one step darker” an obvious operation.

Why lightness alone is not quite enough

This ramp holds hue and saturation constant and varies lightness, which is simple and predictable. Perceptually, though, equal HSL lightness steps do not look equally spaced — blues read as darker than yellows at the same value. Ramps built in a perceptual space such as OKLCH handle that better; the trade-off is that they are harder to reason about by hand.

Check contrast before you commit

The table above shows which steps are safe for body text on white and on black. A common outcome is that only steps 600 and above work on white — useful to know before building an interface around step 400.