WCAG Contrast Checker
Put a text colour against a background colour and get the WCAG 2.1 ratio, plus a straight pass or fail for AA and AAA at both text sizes.
Contrast ratio
19.75:1
About this tool
Set the two colours with the pickers or type hex values directly. The sample sentence updates as you go, so you can see the pairing at real text weight rather than judging it from two swatches sitting side by side.
The ratio underneath runs from 1:1 (identical colours) to 21:1 (black on white), and the four badges map it onto the thresholds that matter: 4.5 and 7 for body copy at AA and AAA, 3 and 4.5 for large text.
Everything runs in your browser — nothing you enter here is sent to a server or stored. Provided as is, without warranty.
Where contrast quietly fails on most product sites
The headline and the main paragraph text are almost never the problem. Founders pick a readable body colour early and leave it alone. What fails is everything around it: the grey timestamp under a card, the placeholder text in a form field, the disabled button that still needs to be readable, the caption under a chart, the footer links. These get styled late, usually by nudging opacity down until it “looks right” on a bright laptop screen, and they routinely land around 2.5:1.
A quick way to audit your own site: list every distinct text colour you actually ship, not every colour in the design file. Most products have between four and seven. Run each one against the surfaces it appears on — your page background, your card background, and any tinted or branded panel. That is usually a dozen checks and it catches nearly everything. Fixing them at the token level, rather than per component, means the fix holds as the product grows.
One caveat that trips people up: the WCAG 2.1 formula is a ratio of relative luminance, and luminance is dominated by the green channel. That makes the maths noticeably unkind to some pairings and far too generous to others. Mid-grey on black tends to score better than it looks, while the same grey on white scores worse than it looks. If a pairing passes at 4.6:1 but still feels thin on a dark interface, trust your eyes and check it with the APCA calculator, which models perceived lightness instead.
Worth remembering that contrast is only the floor. Passing AA does not make a colour a good choice — pure saturated red on pure white clears 4.5:1 and is still unpleasant to read for a paragraph. If you are still settling on your scheme, start from the colour palette generator and test the candidate text colours here before you commit them to CSS variables.
Ready to see where agents can take cost out of your business?
Tell us about the process you want to optimise. Vlad personally reviews every brief and replies within one business day.