Tailwind CSS colors

Every shade of the default Tailwind CSS palette, from 50 to 950. Click a colour to copy it. Switch between v4 (OKLCH colours) and v3 (HEX colours), and choose what gets copied.

red

orange

amber

yellow

lime

green

emerald

teal

cyan

sky

blue

indigo

violet

purple

fuchsia

pink

rose

slate

gray

zinc

neutral

stone

mauve

olive

mist

taupe

What changed in the Tailwind v4 colors

Tailwind CSS v4 defines its colours in OKLCH instead of HEX. OKLCH describes a colour by lightness, chroma (how colourful it is) and hue, so shades of the same palette step up in lightness more evenly.

OKLCH can also describe colours that a standard sRGB screen cannot show. 95 of the 286 v4 shades are wide-gamut (P3) colours — they look more vivid on newer phones and laptops. A HEX code cannot hold those colours, so for them the HEX here is the colour clipped to the standard sRGB range — the value most references list. It is a fallback, not an exact match. These shades are marked P3.

v4 has 26 palettes; v3 has 22. The palettes only in v4 are: mauve, olive, mist, taupe. v4 also exposes every colour as a CSS variable, such as var(--color-blue-500).

How to use a Tailwind color

Put the palette name and step after a utility: bg-blue-500 for a background, text-blue-700 for text, border-blue-200 for a border. In v4 you can also use the variable in your own CSS: color: var(--color-blue-700);

Need your own brand colour as a full 50–950 scale? Use the Tailwind shade generator.

Questions

Where do these values come from?

Straight from the published Tailwind CSS packages: v4 from tailwindcss@4.3.3 (theme.css) and v3 from tailwindcss@3.4.19 (colors.js). The v4 OKLCH values and v3 HEX values are exactly as published. The other formats are converted from them.

Why does a v4 colour look slightly different from the same name in v3?

The v4 palette was rebuilt in OKLCH, so most shades moved a little. If you are upgrading and need the old look, copy the v3 values into your theme.

Is the HEX value of a P3 colour wrong?

It is a fallback. The OKLCH value is the real colour; a HEX code can only describe sRGB colours, so the HEX is the OKLCH colour clipped to sRGB. On a wide-gamut screen, use the OKLCH value to get the more vivid version.