Skip to main content
ImageColorPix

Contrast Checker

Check if your text and background combination is accessible. Pick colors manually with the color windows, use White / Black presets, or upload an image and click any pixel. Instant WCAG AA & AAA grades.

Text color

rgb(59, 130, 246)

Background color

rgb(255, 255, 255)

Contrast ratio

4.10 : 1

Good contrast

A+A

WCAG grades

AA Normal text (≥ 4.5)✓ Pass
AA Large text (≥ 3)✓ Pass
AAA Normal text (≥ 7)✕ Fail
AAA Large text (≥ 4.5)✕ Fail

The quick brown fox jumps over the lazy dog, normal text 16px.

Large text 24px bold

What is contrast checking?

Readable text for everyone

Contrast ratio measures how distinguishable text is from its background, from 1:1 (same color) to 21:1 (black on white). Our checker uses the WCAG relative luminance formula, the same standard auditors and design systems rely on.

Aim for at least 4.5:1 for normal text (AA), 3:1 for large text, and 7:1 for AAA. Test your brand colors, button styles, or any image text overlay before shipping.

How to use

01

Choose colors

Type HEX, use the native color window, or hit White / Black / Random presets. Swap anytime.

02

Or pick from image

Click the camera icon, upload any JPG/PNG/WebP, then click the image or its extracted palette. Toggle Text / Background target.

03

Ship accessible UI

Read the ratio, AA/AAA grades, and live preview. Copy CSS or download the TXT report.

Real-life examples

Body copy 16px: #767676 on #FFFFFF (4.54:1 pass) vs #999999 (2.85:1 fail)

The #1 real check. Secondary gray text looks clean but light grays fail. Try both pairs above: darken muted text to #767676 or #595959 to cross AA. Smallest long-read text needs the full 4.5:1.

Button labels: white on blue

Most-tested UI check. Vivid blues (~3.9:1) pass large text only; darken button fills to ~5–6:1 for normal-size labels. Test normal, hover and disabled states separately.

Links inside body text

Users paste link blue + body background to see if links identified by color alone still hit 4.5:1. If not, darken the link or add underline (color alone must not be the only cue).

Inputs, borders & small print 13px

Input borders, checkboxes and 13px disclaimers are where contrast dies. Borders/UI need 3:1; 13px captions need 4.5:1 like body. Paste your border gray + field background here.

Headings 24–32px & graphics

Large text (24px+, or 19px bold+) only needs 3:1, same as icons, chart strokes and focus rings. Test headings, icons and data-viz lines as separate pairs from body copy.

Text over photos & gradients

Top image use-case: upload the hero, click the lightest and darkest pixels behind the headline. If either fails, add a scrim or text-shadow and re-test the blended color. Never test just one stop of a gradient.

Frequently asked questions

1What WCAG contrast ratio is required: AA or AAA?
The most-asked query. AA: 4.5:1 normal text, 3:1 large text, the legal/practical target for most sites. AAA: 7:1 normal, 4.5:1 large, for highly accessible content. Most teams ship AA; we grade all four so you see both.
2Does font size and weight change the requirement?
Yes, the second most common question. Large = 24px+ regular or 19px+ bold (18pt / 14pt bold). Large needs only 3:1 for AA. Test body and headings separately: the same pair can fail body but pass headings.
3How do I fix a failing combination without rebranding?
Top user workflow: keep hue, shift lightness: darken text or lighten background until you cross the threshold. Or restrict the failing color to large text/icons (3:1), add a scrim/outline over images, or pair it with a compliant darker shade for body copy.
4Can I check gradients, images or transparency?
Checkers work on solid pairs, so users test the worst pixels: upload the hero, click lightest + darkest spots behind text, and test both. For opacity, screenshot the blended UI and sample the rendered pixel, a 50% overlay is not its raw HEX.
5Do links, buttons, inputs and icons need checking?
Yes, the most-tested UI set. Buttons/links need text ratios (4.5:1 normal). Input borders, checkboxes, icons, chart strokes and focus rings need 3:1 non-text against adjacent colors. Test each state: default, hover, focus, disabled.
6How do I use the eyedropper / pick from screen?
Click the camera icon, upload or paste any screenshot, then click any pixel to load it as Text or Background (toggle at top). Click palette swatches for quick variants. Nothing uploads, all Canvas-local.
7Does it work for mobile apps and dark mode?
Same luminance math applies to iOS/Android and dark themes. Users check both modes separately, a pair passing on light often fails on dark. Test each theme, including outdoor-bright viewing.
8Can I share, save or automate the result?
Copy the URL (?text=…&bg=…) to share the exact pair, Copy CSS for handoff, or Download the TXT report. Power users append pairs to docs or test matrices of brand tokens one by one.