Start a project

Tool 07 of 57 · Colour

Colour Harmony Generator

Start from one brand colour and get a balanced palette from six colour-wheel harmonies, each with ten tints and shades, ready for CSS or Tailwind.

Colour Harmony Generator at a glanceIllustration: 1, One base colour; 2, processed in your browser; 3, Harmonies + scales.Colour Harmony GeneratorAa 4.5:11One base colour3Harmonies + scales2In yourbrowser
1 One base colour 2 processed on your device 3 Harmonies + scales

Colour Harmony Generator

Base colour and rule

Hex, rgb(), hsl() or a colour name
For the CSS variables and Tailwind keys

Hues are rotated in OKLCH, so every colour keeps the base's lightness and looks equally bright, unlike HSL wheels.

Palette

    Tints and shades (50 to 900)

    Colour50100200300400500600700800900
    CSS variables
    Tailwind colours (theme.extend.colors)

    01

    What it does

    Builds complementary, analogous, triadic and other palettes from one colour, with 50 to 900 shades for CSS and Tailwind.

    • Complementary, analogous, triadic, split, tetradic and monochrome
    • Hues rotated in OKLCH so colours look equally bright
    • Ten tints and shades per colour (50 to 900)
    • Tailwind theme.extend.colors output

    02

    Private by design

    Everything happens in your browser. Nothing you type, paste or upload is sent anywhere, and it keeps working offline once the page has loaded.

    03

    What you get

    CSS variables, Tailwind colours and a PNG, with a Copy and a Download button on every result.

    • Palette
    • Tailwind
    • OKLCH

    Why it matters

    Most brands start with one colour. A site needs more: an accent for buttons, a calm background, borders, and shades for hover states. Colour-wheel harmonies are a reliable way to choose companions that look intentional rather than random.

    Classic HSL colour wheels produce companions that look mismatched in brightness, because HSL doesn't match how we see. This generator rotates hues in OKLCH, so a triadic palette keeps the same perceived lightness, and the 50 to 900 scales follow the convention Tailwind and most design systems use.

    How it works

    1. InputA base colour and a harmony rule
    2. In your browserHues rotated in OKLCH, scales stepped in lightness
    3. OutputSwatches, 50 to 900 scales, CSS variables, Tailwind config and a PNG

    Where it fits in a designer's workflow

    1. Plan
    2. Design
    3. Build
    4. Test
    5. Launch
    Early design: turn one brand colour into a full palette.

    By the numbers

    Each harmony rule from base #5865f2Complementary: #5865f2, #917700; Analogous: #5865f2, #0080c6, #954ddb; Triadic: #5865f2, #d93100, #00914f; Split complementary: #5865f2, #ae6600, #688700; Tetradic: #5865f2, #d4286c, #917700, #008d80; Monochromatic: #5865f2, #a0b1ff, #2814a6Complementary2 coloursAnalogous3 coloursTriadic3 coloursSplit complementary3 coloursTetradic4 coloursMonochromatic3 coloursThe 50 to 900 scale from #5865f250: #eff3ff, 100: #e3e9ff, 200: #cad5ff, 300: #abbbff, 400: #8194ff, 500: #5865f2, 600: #454dd0, 700: #3132ab, 800: #201689, 900: #120060Tints and shades, 50 to 900500 is the base
    Example base #5865f2, run through this tool's own code at build time. Hues are rotated in OKLCH so every colour keeps the base's lightness, then mapped back into the sRGB gamut. Source: CSS Color 4: OKLCH.
    Show the numbers as a table
    RuleColours
    Complementary#5865f2, #917700
    Analogous#5865f2, #0080c6, #954ddb
    Triadic#5865f2, #d93100, #00914f
    Split complementary#5865f2, #ae6600, #688700
    Tetradic#5865f2, #d4286c, #917700, #008d80
    Monochromatic#5865f2, #a0b1ff, #2814a6
    Scale50 #eff3ff, 100 #e3e9ff, 200 #cad5ff, 300 #abbbff, 400 #8194ff, 500 #5865f2, 600 #454dd0, 700 #3132ab, 800 #201689, 900 #120060

    How to use it

    1. Choose your base colour.
    2. Pick a harmony rule, and the spread for analogous.
    3. Check the shades table and the preview.
    4. Download the CSS variables, the Tailwind config or a PNG of the palette.

    FAQ

    Which harmony should I use?

    Analogous is calm and safe; complementary gives the strongest contrast for one accent; triadic and tetradic are lively and best with one dominant colour and the others used sparingly.

    Why is 500 not exactly my colour?

    It is: the base colour is kept as 500 and the other steps are worked out from it in OKLCH, lighter towards 50 and darker towards 900.

    Will these pass contrast checks?

    The shades are evenly spaced for looks, not tuned for WCAG. Check text pairs in the Contrast Checker; 700 to 900 on 50 to 100 usually pass.

    How do I use the Tailwind output?

    Paste it inside theme.extend.colors in tailwind.config.js (Tailwind 3), or turn each value into a --color-name-500 variable in an @theme block (Tailwind 4).

    Work with me

    Want a site that gets these right?

    I build fast, accessible websites and web apps that pass these checks from day one. Tell me about your project and I'll reply personally with honest next steps.

    All developer tools · Back to leej.uk