Review a design token
Check whether a text and surface token pair can support normal-size body copy.
Check hex color contrast ratios against WCAG AA and AAA thresholds for normal and large text, with an immediate browser-local preview.
Test WCAG text contrast ratios. Your result updates in the current tab as you work.
Test WCAG text contrast ratios. Nothing you enter here is uploaded or stored.
Contrast ratio: 14.27:1 Normal text (AA): Pass Large text (AA): Pass Normal text (AAA): Pass Large text (AAA): Pass Recommendation: Strong enough for AAA normal text.
Text contrast is a measurable accessibility requirement, not a matter of taste. Contrast Check compares two hexadecimal colors using relative luminance and shows the ratio against common WCAG AA and AAA text thresholds. It helps you choose a readable foreground and background before a palette reaches production.
Check whether a text and surface token pair can support normal-size body copy.
Measure low-emphasis copy before relying on appearance alone, especially on tinted backgrounds.
Record the contrast ratio for a component state alongside your design or quality review.
These examples are specific to Contrast checker. Replace their values with your own, then use the result as a clue—not as a substitute for application validation.
A design uses #64748b text on a white surface.
foreground: #64748b background: #ffffff
Contrast ratio: approximately 4.7:1 → AA normal text passes
For ordinary body text, 4.5:1 is the common AA threshold. The actual component still needs a check at its rendered opacity and size.
A disabled-looking label uses #a8b0ad on #ffffff.
foreground: #a8b0ad background: #ffffff
Contrast ratio: below 3:1 → insufficient for normal text
Muted does not need to mean unreadable. Darken the foreground or rethink whether the text is essential in that state.
Use the result to make a decision in your code or content, not merely to produce another value to copy.
Use 3- or 6-digit hexadecimal colors such as #fff or #10231f.
Normal text typically needs 4.5:1 for AA; large text can use 3:1. AAA asks for stronger contrast.
Opacity, gradients, images, font weight, size, and focus states can change the real contrast in the interface.
Contrast does not prove that a control has a visible focus state, that color is not the only signal, or that text is understandable. Test the complete component in context and include non-color cues for errors, status, and selection.
A passing default button tells you little about hover, focus, disabled, error, dark-mode, and image-overlay states. Include contrast checks in the component acceptance criteria and test keyboard focus visibly.
States to inspect:
default · hover · focus-visible · disabled
error · selected · dark mode · image overlayEach tool is deliberately narrow. These are the mistakes most likely to appear when its output is copied into a real product without checking the surrounding constraint.
Why it matters: A semi-transparent foreground blends with its actual background and can lose contrast.
Better approach: Calculate or inspect the final rendered color for each surface and state.
Why it matters: Some users cannot perceive the distinction, even if the ratio passes.
Better approach: Add text, an icon, a border, pattern, or other non-color cue.
These tools help with bounded client-side work. Production decisions still need the validation, review, and authorization appropriate to your application.
WCAG defines large text by rendered size and weight, commonly at least 24 CSS pixels regular or 18.66 pixels bold. When uncertain, meet the normal-text threshold.
The displayed results are text thresholds. Non-text UI components have related WCAG requirements; test the actual icon, border, and state in context.
Human perception adapts to context and display conditions. A numerical ratio provides a consistent baseline across devices and lighting.