Color Palette Accessibility: Check Contrast Before You Ship
A palette can look polished in a design file and still fail when text, buttons, alerts, links, and disabled states are placed on real backgrounds. Color accessibility needs to be checked in context.
The most common mistake is testing one primary color and calling the palette accessible. Interfaces use many combinations: text on cards, subtle borders, hover states, badges, warnings, and focus outlines.
Test the combinations users actually see
List the foreground and background pairs in the interface before changing colors. This includes body text, muted text, buttons, links, inputs, errors, success messages, and navigation states.
- Check contrast for normal text and small labels separately.
- Test light and dark surfaces if the site supports both themes.
- Avoid relying on color alone to communicate errors or success.
- Document the allowed text colors for each background token.
Look beyond the brand color
Brand colors often need adjusted shades for UI work. A strong marketing blue may not provide enough contrast as button text, and a soft gray may disappear on tinted backgrounds.
- Create darker and lighter shades from the same base color.
- Check focus outlines against every surface where they appear.
- Preview disabled controls so they are muted but still understandable.
- Use names based on purpose, not only color appearance.
Create a palette with rules
Use a palette tool to generate shades, then test contrast before the colors enter CSS variables or a design system. The rule should be clear enough that future components use the same accessible combinations.
Accessible color work is less about taste and more about repeatable decisions. Good palettes make the correct UI choice easy.
Open Color Palette Generator →