Accessible palette generator — colour schemes checked against WCAG contrast as they are generated

Vision

How it reads to everyone

Your palette as it appears under the three most common types of colour vision deficiency. If two swatches collapse into the same tone, the scheme is carrying meaning by hue alone.

Contrast between swatches

Ratios for every pair. Green clears 4.5:1 — safe for one colour as text on the other. Red means those two should not be text and background together.

See it on a real interface

your-palette — live preview

Ship the scheme, not a screenshot of it.

Every element below is painted live from the palette above. Change a colour in the studio and this interface follows — no refresh, no export step.

Get startedSecondaryOutline
Measured contrast
CVD-safe pairs
One-click export
Weekly usage
Accessibility report
AA passAAA bodyFill only

Pull a palette out of an image

decoded in your browser — never uploaded
or drag and drop here · paste with Ctrl+V
JPG, PNG or WebP — decoded in your browser, never uploaded
No image handy? Try one of ours:

Export

Why generate and check in the same place

Accessibility treated as a final review step gets skipped. Treated as part of generation, it is free.

4.5

Every swatch is measured

Each colour reports its contrast against white and against black the moment it appears, with the level it clears. You never have to copy a hex into another tab to find out whether text will work on it.

CVD

Built for colour-blind readers

Around 8% of men have a colour vision deficiency. The simulator shows your palette under protanopia, deuteranopia and tritanopia, so a scheme that only works for full-colour vision is caught here rather than in a bug report.

⇩

Straight into your codebase

Export CSS custom properties, SCSS variables, a Tailwind theme extension, JSON, or an SVG swatch sheet. Copy in one click — no account, no save button, no paywall on the export formats.

How to build a scheme in about thirty seconds

A short workflow that gets you to something usable rather than something merely pleasant.

1 · Pick a mood, then a rule

Mood sets saturation and lightness range — Earthy keeps things low-saturation and warm, Neon pushes both to the top. Harmony sets where the hues sit relative to each other. Start with Analogous if you want something safe, Complementary if you need a call to action that jumps.

2 · Lock the one you love

Hit the spacebar until a single swatch feels right, lock it with the ring icon, then keep rolling. The generator builds around what you locked instead of throwing it away. Two locked colours and it will fill in the rest of the scheme around both.

3 · Check what the swatch says

A swatch labelled AA on white can carry body text on a white background. One labelled fill only cannot carry text against white or black at all — use it for large areas, borders or decoration, and let a different swatch do the words.

Frequently asked

How is this different from other palette generators?

Most generators produce colours and stop there. Every swatch here is measured as it is created, so you see its contrast ratio against white and black, and whether it clears AA or AAA for text. The accessibility check happens during generation rather than afterwards in a separate tool.

What does “AA on white” mean on a swatch?

It means that colour reaches at least 4.5:1 against pure white, which is the WCAG AA threshold for normal body text. AAA on white means it reaches 7:1. A swatch marked fill or accent only falls short against both white and black, so use it for backgrounds, borders or decoration rather than for words.

Why simulate colour blindness?

Roughly one in twelve men and one in two hundred women have some form of colour vision deficiency. Two palette colours that look clearly different to you can collapse into nearly the same tone under deuteranopia, the most common type. The simulator renders your palette as it would appear under protanopia, deuteranopia and tritanopia so you can catch that before shipping.

What are colour harmony rules?

They are fixed relationships on the colour wheel. Analogous uses neighbouring hues for calm, cohesive schemes. Complementary pairs opposites for maximum tension. Triad and tetrad spread hues evenly. Split complementary softens the contrast of a complementary pair, and monochrome varies lightness within a single hue.

Can I keep a colour I like and regenerate the rest?

Yes. Click the ring icon on any swatch to lock it, then generate again — locked colours stay put and the unlocked ones are replaced around them. You can also click a swatch to pick an exact colour by hand, add or remove swatches, and undo any step.

Are images I drop in uploaded anywhere?

No. Image extraction runs entirely in your browser using a canvas element. The file is decoded locally, sampled, and discarded — it never reaches a server, and there is no upload request to intercept.

Which export formats are supported?

CSS custom properties, SCSS variables, a Tailwind config snippet, JSON, a standalone SVG swatch sheet, and a plain comma-separated hex list. Copy any of them with one click.

Is a passing palette the same as an accessible interface?

No. Contrast and colour-vision safety are two checkpoints out of many. Keyboard users need visible focus, motion-sensitive users need reduced-motion support, and no meaning should be carried by colour alone. A passing palette makes your colours safe to use; it does not make the whole interface usable.