Approximately 300 million people worldwide have color vision deficiency, and another 2.2 billion have some form of vision impairment. Designing with sufficient color contrast isn't just a nice-to-have — it's the difference between a site that works for everyone and one that excludes a significant portion of your audience. The good news: checking contrast takes seconds, and fixing it usually takes minutes.
What contrast ratios mean
- WCAG AA (minimum) — 4.5:1 for normal text, 3:1 for large text (18pt+ or 14pt bold). This is the legal minimum for most accessibility standards.
- WCAG AAA (enhanced) — 7:1 for normal text, 4.5:1 for large text. Higher standard, better readability for users with low vision.
- Non-text elements — icons, borders, and focus indicators need at least 3:1 contrast against adjacent colors.
How to check contrast
- Browser DevTools — Chrome and Firefox both show contrast ratios in the color picker. Hover over any color and the ratio appears.
- Online contrast checkers — enter foreground and background colors to get the exact ratio and pass/fail status.
- Design tools — Figma, Sketch, and Adobe XD all have plugins that flag contrast failures across your entire design.
Common contrast mistakes
- Placeholder text too light — input placeholders at 25% opacity on white fail contrast badly. Users with low vision can't see what to type.
- Disabled buttons — gray-on-gray text that's unreadable. Disabled states still need to be legible.
- Links that rely only on color — if links are blue text on a white background with no underline, color-blind users can't distinguish them from surrounding text.
- Gradients as backgrounds — a gradient might have sufficient contrast at the dark end but fail at the light end. Test both extremes.
- Status colors without labels — red for errors, green for success — 8% of men are red-green color-blind. Always pair color with text or an icon.
Color is not the only signal
Never use color alone to convey meaning. An error state should be red AND have an error icon AND text saying 'Error'. A success state should be green AND have a checkmark AND text saying 'Success'. This isn't extra work — it's the baseline for inclusive design.
Build accessible gradients
ForgePlug's CSS Gradient Generator previews your gradient live, so you can check contrast at every point along the transition before exporting.
Open CSS Gradient Generator