Accessibility

How to Design Color-Blind-Friendly Palettes

By the colorPaletteFinder Team8 min read

The first time I really understood color blindness wasn't from a spec — it was from a code review. I'd built a status dashboard where green dots meant "healthy" and red dots meant "down," and a backend engineer on the team mentioned, almost apologetically, that he couldn't tell which servers were on fire. He's one of roughly one in twelve men with red-green color vision deficiency. My beautiful traffic-light system was, to him, a grid of identical brownish-grey circles. Nothing was broken in the code. Everything was broken in the design.

That's the thing about designing a color blind friendly palette: the failures are invisible to the person who shipped them. You can't feel the bug. So you have to build the habit of designing as if color is information you might lose at any moment — because for a meaningful slice of your users, it already is.

How common is it, and what actually goes wrong

Color vision deficiency (CVD) affects about 8% of men and 0.5% of women of Northern European descent — roughly 1 in 12 men and 1 in 200 women. On a product with any real audience, that's not an edge case. That's a column in your analytics.

The deficiency isn't "seeing in black and white" — true monochromacy is vanishingly rare. What happens is that one type of cone in the eye is shifted or missing, which collapses certain colors toward each other. The main types, by how common they are:

The practical headline: about 99% of CVD is red-green. If your palette survives a red-green simulation, you've covered the overwhelming majority of affected users. That's where to spend your attention first.

This is a different problem from contrast

Here's the distinction that trips up even careful teams. Luminance contrast (the WCAG kind) is about light versus dark — can you read the text. Color vision deficiency is about hue confusion — can you tell two colors apart when they happen to be similar in lightness. They are independent problems, and you can fail one while acing the other.

The classic example: pure red #FF0000 text on pure green #008000 has a luminance contrast of roughly 1.3:1, which fails WCAG badly — but even if you "fixed" the contrast, a deuteranope would still struggle because the two hues themselves collapse together. Conversely, two colors can have lovely contrast and still be a CVD trap if you're using their hue, and only their hue, to carry meaning.

So a color-blind-friendly palette and a WCAG-compliant palette are overlapping circles, not the same circle. You need both. If you haven't already, it's worth reading WCAG Contrast Ratios Explained alongside this — luminance contrast is the foundation, and CVD-safe design is the layer on top.

The one rule that fixes most of it: never rely on color alone

If you take a single principle from this article, take this: do not rely on color alone to convey information. The W3C makes this an explicit requirement — WCAG Success Criterion 1.4.1, Use of Color — and it's the highest-leverage habit you can build.

The fix is almost always redundancy. Whenever color carries meaning, pair it with a second, non-color signal:

The quick test I run on any screen: imagine it printed on a black-and-white laser printer. If you can still understand it, you're not relying on color alone. If two states become identical, you've found your bug.

Choosing hues that survive CVD

Redundancy handles meaning. But you still want the colors themselves to stay distinguishable wherever possible — especially in data visualization, where you can't put a text label on every one of 200 data points.

A few rules of thumb from the trenches:

Rather than reinvent this, stand on the shoulders of people who solved it rigorously. The Okabe-Ito palette (also called the Wong palette after Bang Wong's 2011 Nature Methods article) is an eight-color set engineered to stay distinguishable across all common CVD types. The hex codes are worth bookmarking: orange #E69F00, sky blue #56B4E9, bluish green #009E73, yellow #F0E442, blue #0072B2, vermillion #D55E00, reddish purple #CC79A7, and black #000000. I've used it as the categorical palette for more dashboards than I can count, and it has never failed a simulation.

When you're building a brand or UI palette rather than a chart, you usually don't need eight CVD-distinct colors — you need a couple of accents that don't collide. That's where the color palette generator earns its place: build your harmony (a split-complementary or triadic scheme), read off the HSL values, and then deliberately push your two most semantically important colors apart in lightness as well as hue. The HSL readout makes that easy — drop the lightness on one, raise it on the other, and you've bought yourself separation that survives CVD. If you want to understand why certain wheel relationships clash more than others, Split-Complementary vs Triadic Palettes gets into the geometry.

Test it — don't trust your own eyes

You cannot eyeball this, because (statistically) you probably have normal color vision and the whole point is that the failure is invisible to you. You simulate.

My actual workflow: design normally, then run the key screens — dashboards, charts, form errors, anything where color means something — through deuteranopia first (most common), then protanopia, then a quick tritanopia pass. Ninety percent of the problems I find are in that first deuteranopia view. Fix those and you've helped the most people for the least effort.

The mistakes I keep seeing

None of this asks you to design ugly interfaces or to abandon color. Color is wonderful and you should use it freely. The discipline is just this: let color be the delightful layer, never the only layer. Pair every meaningful hue with a label, an icon, or a shape; pick pairings that survive red-green collapse; lean on lightness as much as hue; and run the simulator before you call it done. Do that, and the next engineer who can't see your green dots will still know exactly which servers are on fire.

Frequently Asked Questions

What's the difference between a color-blind-friendly palette and a WCAG-compliant one?

They solve different problems. WCAG contrast is about luminance — light versus dark — so text and UI elements are readable. Color-blind-friendly design is about hue confusion — making sure colors that carry meaning stay distinguishable for people whose cones collapse certain hues together. A palette can pass WCAG contrast everywhere and still fail in deuteranopia, because two colors with great contrast can still rely on a red-green distinction that disappears. You need to design for, and test, both independently.

What is the safest color pairing for color blindness?

Blue and orange is the most reliable opposed pair — it stays clearly distinct across deuteranopia, protanopia, and tritanopia, the three main types of color vision deficiency. Blue and red is a strong second. The pairing to avoid as your only contrast is red and green, which collapses for the roughly 99% of CVD that is red-green deficiency. When you need more than two distinct colors, use a researched set like the Okabe-Ito (Wong) palette rather than picking by eye.

Why shouldn't I rely on color alone to show information?

Because roughly 1 in 12 men and 1 in 200 women have some form of color vision deficiency, and for them a status shown only by color (red dot = error, green dot = success) can be completely indistinguishable. WCAG Success Criterion 1.4.1 (Use of Color) requires that color is never the sole means of conveying information. The fix is redundancy: pair every meaningful color with a label, an icon, a shape, a pattern, or position so the information survives even when the hue doesn't.

How do I test whether my palette is color-blind-friendly?

Use a simulator, because if you have normal color vision the failures are invisible to you. Coblis (the Color Blindness Simulator) lets you upload a screenshot and view it through eight deficiency types. Chrome DevTools has an 'Emulate vision deficiencies' option in the Rendering panel that applies protanopia, deuteranopia, or tritanopia to the live page. Figma plugins like Stark do the same for designs. Check deuteranopia first since it's the most common, then protanopia and tritanopia.

What is the Okabe-Ito palette and why is it recommended?

The Okabe-Ito palette (also called the Wong palette, after Bang Wong's 2011 Nature Methods article) is an eight-color set engineered so the colors stay distinguishable across all common types of color vision deficiency. It's the de facto standard for accessible data visualization. The hex codes are #E69F00 (orange), #56B4E9 (sky blue), #009E73 (bluish green), #F0E442 (yellow), #0072B2 (blue), #D55E00 (vermillion), #CC79A7 (reddish purple), and #000000 (black). Reach for it whenever you need several categorical colors that won't collide for CVD viewers.

Want to experiment with colors?

Try our free color palette generator to find your perfect harmony — with a built-in WCAG contrast checker.

Open the Generator