Color vision simulator
Paste a palette and see which pairs converge for the four kinds of colour-vision deficiency, at any severity.
Colors
One per line, or any CSS block. HEX, RGB, HSL, OKLAB and OKLCH are all understood.
5 colors understood.
0% is unaffected vision, 100% is full dichromacy.
What this is and is not
Unaffected
- #1F4FD8
- #2F9E44
- #E03131
- #F2B134
- #F7F5EF
Deuteranopia · ~1 in 16 men
- #4545D8
- #898948
- #868620
- #C7C72B
- #F6F6EF
Absent green cones. Reds and greens converge toward yellow.
- #2F9E44 and #E03131 become hard to tell apart.
Protanopia · ~1 in 100 men
- #4B4BD8
- #969643
- #5E5E33
- #BABA35
- #F5F5EF
Absent red cones. Reds darken and converge with greens.
Tritanopia · ~1 in 15,000
- #007171
- #4B9595
- #E03131
- #F9A6A6
- #F8F4F4
Absent blue cones. Blues and greens converge; yellows turn pink.
Achromatopsia · ~1 in 30,000
- #5D5D5D
- #8A8A8A
- #767676
- #BCBCBC
- #F5F5F5
No color discrimination. Only lightness separates colors.
How this works
Roughly one man in twelve and one woman in two hundred has some form of colour-vision deficiency. The usual failure is not that a colour looks wrong — it is that two colours you were relying on to mean different things become the same colour.
The simulations
Protanopia and deuteranopia use the Viénot, Brettel & Mollon (1999) linear-RGB approximations; tritanopia uses the Brettel approximation; achromatopsia uses the sRGB luminance coefficients. Severity interpolates linearly between unaffected vision and full dichromacy.
What “converging” means here
After simulating, Colorstruct measures the distance between every pair in OKLab. Below 0.06 the two are treated as effectively the same colour and flagged. Separating them by lightness usually fixes it, because lightness survives every one of these conditions.
The deeper rule is WCAG 1.4.1: never let colour be the only thing carrying meaning. A shape, a label or a position alongside the colour makes the whole question moot.