Skip to content
All tools

Colour Contrast Checker

Check text contrast, find colours that pass WCAG, and test every pair in a palette. Free, with nothing to upload.

DesignWCAG 2.2 AA and AAARuns in your browser

Choose your colours

Sample heading

This is normal body text on your chosen background.

Sample label

Contrast ratio

AA normal text

AA large text and UI

AAA normal text

AAA large text

Large text means at least 24px, or 18.67px bold. Borders, icons and other interface parts need the same 3:1 as large text. The ratio is rounded down to two places, and pass or fail uses the full value, so a near miss never looks like a pass.

Share this result

Check a whole palette

Need a palette? Build one

Separate them with spaces, commas or new lines.

How to use it

  1. Type a text colour and a background colour as hex codes (like #3454D1) or rgb values, or pick them with the colour squares.
  2. Read the contrast ratio and the four WCAG results. Each one says Pass or Fail.
  3. If a pair fails, choose a target and try one of the suggested text colours.
  4. Paste two to eight colours into the palette checker to test every pair at once.

Thresholds and calculation follow W3C’s contrast guidance.

How it works

What do AA and AAA mean?

WCAG sets contrast targets for readable text. AA needs 4.5:1 for normal text or 3:1 for large text. AAA needs 7:1 for normal text or 4.5:1 for large text.

Does passing make my whole website accessible?

This checks solid, opaque text and background colours only. You still need to check text size, focus indicators, keyboard access, images and other accessibility requirements.

How are the alternatives chosen?

The tool moves your text colour towards black and towards white, keeping the background fixed. It offers the first passing colour it finds in each direction. These are practical alternatives, not a claim of the closest possible colour.

Are my colours saved or uploaded?

The calculation happens in your browser. An imported palette appears in the URL fragment so you can bookmark it or share that link. Fragments are not sent to the site server. No account is needed.