Generate palettes that stay distinguishable under color-blindness. Candidates are scored by their worst-case separation across protanopia, deuteranopia and tritanopia simulations simultaneously, and the generator maximizes that weakest link — then still tells you to add a second cue beyond color.
Settings
Generated locally in your browser — your settings and results never leave this page.
Optimizing for the worst case, on purpose
Most palette generators optimize for beauty under typical vision and hope for the rest. This one inverts the objective: it maximizes the minimum — the smallest pairwise difference across normal vision and all three simulated dichromacies simultaneously. The weakest link is the score, printed with every palette. Optimizing the worst case is the correct frame for accessibility: users do not experience your palette’s average distinctness, they experience its failures.
Greedy max-min, explained briefly
Candidates form a structured grid over hue and lightness in OKLCH (lightness variation is deliberate ammunition — it survives every vision type). Selection is greedy: each new color is the candidate whose worst-case simulated distance to everything already chosen is largest. The result is deterministic for a given seed and count, reproducible, and — by construction — free of the single catastrophic pair that dooms hand-picked “colorful” palettes.
Honest ceilings
The mathematics enforces what practitioners learn slowly: reliably-distinguishable-for-everyone palettes top out around 5–7 members. The celebrated safe palettes — Okabe-Ito’s eight, ColorBrewer’s qualitative sets — live at that ceiling because the perceptual space, compressed by CVD, simply lacks room for more mutually-distant points. When categories exceed the ceiling, the solution is structural (direct labels, patterns, small multiples, aggregation), and pretending otherwise with an eleven-color “safe” palette helps no one.
Verification and the second cue
The output round-trips through the Color Blindness Simulator — same math, independent view — where the hardest-pair report should echo this generator’s score. And the exported palette ships with its standing advice: color reinforces, never solely carries. A chart whose series are also directly labeled, patterned or positionally distinct is robust even where simulations disagree with someone’s actual eyes — which, sometimes, they will.
Comparing against the famous fixed palettes
Okabe-Ito, the eight-color standard from the vision-science community, is the benchmark this generator should be judged against — and the comparison clarifies when to use which. Fixed palettes are pre-verified, citable and free; their cost is aesthetic rigidity (their orange is their orange). Generated palettes anchor to your brand hue and match its temperature; their cost is that verification lives in the printed score rather than a literature citation. For regulated or scientific contexts, cite the fixed palette; for products where brand coherence matters, generate and verify — the Simulator’s hardest-pair report provides the receipts either way.
How to use the Color Vision Safe Palette Generator
- Set how many colors you need and a start color.
- The generator maximizes the weakest pairwise difference across all three simulated deficiencies.
- Review the normal and deutan strips plus the safety score.
- Export; keep the second-cue advice.
Frequently asked questions
What does "color-vision safe" mean here, concretely?
That the palette's minimum pairwise ΔE – measured after simulating protanopia, deuteranopia and tritanopia – is as large as the generator could make it. The weakest link across all vision types is the score, printed with the palette. No pair is optimized at another's expense.
How does the algorithm choose colors?
Greedy max-min selection from a structured candidate pool (hues × lightness levels in OKLCH): each new color is the candidate whose worst-case simulated distance to the already-chosen set is largest. Deterministic given your seed and count – same inputs, same palette.
Why does the palette vary lightness so much?
Lightness is the channel every vision type shares – hue collapses, lightness survives. Palettes that separate by lightness as well as hue are robust by construction; the candidate pool builds that in deliberately.
How many distinguishable colors can a CVD-safe palette have?
Honest ceiling: 5-7 for reliably-distinguishable-by-everyone at chart size. The famous safe palettes (Okabe-Ito at 8, ColorBrewer sets) hover there for a reason. Need more categories? That is a labeling/pattern problem, not a color problem.
Is a safe palette enough for an accessible chart?
No – the tool says so in its own output: color must never be the only cue. Direct labels, patterns, shapes or position carry the message with color as reinforcement. Safe palettes reduce harm; redundancy removes it.
How does this differ from the Okabe-Ito palette I have seen?
Okabe-Ito is a fixed, excellent 8-color set; this generator builds a set anchored to your brand hue with the same design goal. When brand coherence does not matter, fixed published palettes are a fine choice – when it does, generate.
Can I verify the output independently?
Paste it into the Color Blindness Simulator – the hardest-pair report there should agree with the safety score here (they share the simulation math). Independent verification in one click is the point of keeping both tools.