Free · OKLCH · Tailwind v4

Generate a full 50→950 scale from any color.

Enter a base hex, pick its shade, copy the snippet. The generator works in OKLCH so your hue stays stable across the whole scale.

50
100
200
300
400
500
600
700
800
900
950
50#E0FEEE
100#C2F8DC
200#99EAC3
300#63D4A2
400#0FB981
500#009B64
600#007E4D
700#00643A
800#004D2C
900#00341C
950#001B0C

Base color

Anchor shade

Which shade does your base color represent?

Curve

Hue drift

0°

Small shifts change the whole scale's hue — useful if the base color feels a little off at the shade you anchored on.

Tailwind v4 @theme

@theme {
  --color-brand-50: #e0feee;
  --color-brand-100: #c2f8dc;
  --color-brand-200: #99eac3;
  --color-brand-300: #63d4a2;
  --color-brand-400: #0fb981;
  --color-brand-500: #009b64;
  --color-brand-600: #007e4d;
  --color-brand-700: #00643a;
  --color-brand-800: #004d2c;
  --color-brand-900: #00341c;
  --color-brand-950: #001b0c;
}

CSS custom properties

:root {
  --brand-50: #e0feee;
  --brand-100: #c2f8dc;
  --brand-200: #99eac3;
  --brand-300: #63d4a2;
  --brand-400: #0fb981;
  --brand-500: #009b64;
  --brand-600: #007e4d;
  --brand-700: #00643a;
  --brand-800: #004d2c;
  --brand-900: #00341c;
  --brand-950: #001b0c;
}
How it works

Four steps

  1. 1

    Paste or pick a base color

    Any hex works. Neutrals stay neutral; colored hues get full chroma treatment.

  2. 2

    Anchor it to a shade

    Tell the generator which shade your base represents — 500 is the most common, but 600 or 700 fit brand colors that feel darker.

  3. 3

    Tune the curve

    Tailwind default, flatter, or contrastier. Add a few degrees of hue drift if needed.

  4. 4

    Copy the snippet

    Tailwind v4 @theme block or CSS custom properties — paste straight into your project.

Questions

Frequently asked

Why oklch and not HSL?+

HSL is cheap but it doesn't reflect how bright colors look to the eye — a pure HSL yellow reads much brighter than a pure HSL blue at the same lightness value. OKLCH is perceptually uniform, so a generated scale looks evenly spaced across every hue.

What does anchoring do?+

It tells the generator which rung of the scale your input color is supposed to sit on. If you enter #10b981 and anchor at 500, you get Tailwind's emerald. Anchor at 700 and the same hex becomes the darker end of a lighter-ish scale.

Can I use this for shadcn / Radix themes?+

Yes — the output is just CSS variables. Shadcn-style themes consume --color-brand-500 etc. directly. Rename the @theme block's prefix to match your design token naming.

Why do my shades look different from Tailwind's own emerald?+

Tailwind's default palette was hand-tuned, so it's not purely algorithmic. This generator approximates the curve but won't reproduce Tailwind's hand-polished values 1:1. For a brand-new hue, though, the scale it generates is more consistent than rolling one manually.

More free tools

Keep building

— Shipping to the App Store?

Translating screenshots into every locale is what lokal was built for. Upload once, ship to every store.

Explore lokal