How it works

How the Colour Palette Generator works

Build a harmonious palette from one colour using OKLCH, so every step is perceptually even. Includes tints, shades and an automatic WCAG check on each swatch.

Last updated Jul 28

Try Colour Palette Generator now

The method

Harmonies are computed in OKLCH, not HSL: HSL lightness does not match perceived lightness, so HSL yellow and blue at the same value differ by roughly 4x in actual luminance, producing lumpy palettes. OKLCH is perceptually uniform, so holding lightness constant looks even across hues, and the ten-step ramp stays evenly spaced.

Step by step

  1. 1

    Pick a base colour.

  2. 2

    Choose a harmony — complementary, analogous, triadic or a monochrome ramp.

  3. 3

    Check the contrast badge on each swatch.

  4. 4

    Copy the palette as CSS custom properties or Tailwind tokens.

What it doesn't do

  • Very saturated inputs may shift slightly, since out-of-gamut OKLCH colours get clamped to sRGB.
  • A generated palette is a starting point, not a brand — it carries no meaning of its own.
Colour Palette Generator shown in the browser

Palettes you can copy — with contrast built in

Every palette this tool generates is checked against WCAG contrast as you go, so your text stays readable. Here are a few starting points — open the generator above to build and tweak your own.

  • Modern SaaS: #0F172A · #2563EB · #38BDF8 · #F1F5F9 · #FFFFFF
  • Warm & friendly: #7C2D12 · #EA580C · #FDBA74 · #FFF7ED · #1C1917
  • Premium dark: #0B0B0F · #6D28D9 · #A78BFA · #E5E7EB · #FFFFFF
  • Fresh & natural: #14532D · #16A34A · #86EFAC · #F0FDF4 · #052E16

Export in one click — CSS custom properties or a Tailwind v4 @theme block:

CSS custom properties

:root {
  --brand-primary: #2563EB; /* oklch(54% 0.18 258) */
  --brand-accent: #38BDF8; /* oklch(74% 0.12 228) */
}

Tailwind v4

@theme {
  --color-brand-primary: #2563EB;
  --color-brand-accent: #38BDF8;
}

Tailwind v4 is CSS-first — colours are declared in @theme, not a JS config file.

JSON (with every contrast figure included) and an SVG swatch sheet export too. Like everything else about this tool, why WCAG AA matters is worth knowing: a palette that fails 4.5:1 contrast on body text isn't usable, however good it looks — that's why every pairing here is checked automatically rather than left for you to guess.

Frequently asked

Why OKLCH instead of HSL?

Because HSL lightness does not match perceived lightness. In OKLCH, holding lightness constant across hues produces swatches that actually look equally light.

Are the generated colours accessible?

Each swatch is checked against white and black text and labelled with its ratio, so you can see immediately which ones can carry text.

Can I use these commercially?

Yes. Colours are not copyrightable and there is nothing to attribute.

How are the palettes generated?

From a base colour using one of four harmony rules — complementary, analogous, triadic, or a monochrome ramp — computed in OKLCH so each hue holds the lightness step you'd expect instead of the lumpy results HSL produces.

Can I lock a colour and regenerate the rest?

Yes — lock any swatch you want to keep, and regenerating only recomputes the unlocked ones around it.

What can I export?

CSS custom properties, a Tailwind v4 @theme block, JSON with every contrast figure included, or an SVG swatch sheet.

Is it free?

Yes — free, no signup, and no limit on how many palettes you generate.

Need this built into your business?

This tool is free because it's a small, solved problem. If what you actually need is bigger — branding & design, built and maintained for you — that's Scult's day job.

Read next

Build a documented button, badge, and card variant systemBrief your visual identity in words before you touch a colour pickerGenerate an on-brand Canva deck from your Brand KitWrite a thumbnail concept brief a designer or image model can actually executeDesign a seamless repeating pattern with --tileTurn a hex palette into a brand mood-board flat-lay with Nano BananaHow to Name a Business: 5 Naming Strategies (Free Generator)How to Write a Slogan That Is Not Generic AI Mush (Free Generator)How Many Favicon Sizes Do You Actually Need in 2026? (Just Four)OKLCH vs HSL for Colour Palettes: Why Your Old Palette Looks UnevenFree Business Name Generator — No AI Credits, No PaywallFree Email Signature Generator — No Monthly Fee Per EmployeeFree Favicon Generator — Full Set, No SubscriptionFree Colour Palette Generator — WCAG Contrast Checked, No Pro TierBrand Strategy Prompts — the Thinking Behind the Name and SloganGamma & Canva Prompts: Where Prompt Quality Changes the Deck the MostSuno & ElevenLabs Prompts: the Two-Field Format That Actually WorksMidjourney V7 Prompts: Natural Language Beats a Keyword Stack NowNano Banana Prompts: Product Photography Without a StudioFlux Prompts: Why There Is No Negative-Prompt FieldIdeogram V3 Prompts: the Image Model That Actually Spells Words RightKling AI Prompts: Built for High-Motion, Physically Realistic ScenesVeo Prompts: the Layered Brief Structure That Separates a Real Clip From a Lottery TicketDIY Brand Kit vs. Hiring a Branding Agency: An Honest ComparisonFree Colour Palette Generator With WCAG Contrast Built InDesign Prompts: Brand Strategy and Presentation DecksMidjourney vs Nano Banana vs Flux vs Ideogram: Which Image Model for WhatVeo vs Kling vs Suno vs ElevenLabs: AI Video and Audio, by StrengthFrom Idea to Pitch Deck: A First-Time Founder PlaybookBuilding a Complete Brand Identity in One Weekend, FreeRebranding an Established Business Without Losing CustomersFigma AI vs. Dedicated AI Design Tools: How They Actually CompareHow to Build a WCAG-Compliant Color Palette (Not Just a Passing One)Brand Style Guide Essentials: What Generated Guides Usually SkipHow to Rebrand Your Business Without Hiring an Agency

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY