Check every colour pair in your palette, and fix the ones that fail

Paste your colours in any form, from hex lines to a Tailwind config. See every text and background pair scored against WCAG 2.2, try a pair in real interface, and get the nearest colour in the same hue that passes.

  • Free, no sign-up
  • Runs in your browser: Nothing you paste or drop leaves your device.

Updated 18 October 2026

Palette

Colours

Contrast grid

Rows are text colours, columns are backgrounds. Pick a cell to see the pair in use.

8 colours, 56 pairs, 18 pass AA for text

Highlight
Colour vision
Text / BackgroundInkPaperSubtleGreyGreenGreen textAmberBlue
Ink
Paper
Subtle
Grey
Green
Green text
Amber
Blue

Plan your next release

Good contrast keeps text readable in sunlight, on old screens and for people with low vision.

Get startedyou@example.com

The pair: Ink on Paper

19.16:1

  • Normal text, AA (4.5:1)Pass
  • Large text, AA (3:1)Pass
  • Enhanced, AAA (7:1)Pass
  • Buttons, inputs and icons (3:1)Pass

Nearest colours that pass

Text colour for AAAAlready passes.
Background for AAAAlready passes.

Export the passing pairs

Pairs that pass: 4.5:1

Is the whole product accessible, or just the palette?

Contrast is the first check. I design products to WCAG 2.2 AA from the first screen, so audits pass and every customer can use them.

Why check a whole palette

A contrast checker tests one pair at a time, but a design system has dozens: every text colour on every surface, every button on every background, every border against the page. A grid shows them all at once, so you can see which colours are safe for text, which only work at large sizes or for icons, and which should never carry words.

Paste the palette as you have it. The tool reads hex lines, CSS variables, SCSS variables, the colours inside a Tailwind config, and rgb(), hsl() and oklch() values, and takes each name from the text in front of it.

The WCAG 2.2 contrast levels

  • 4.5:1 (AA): the minimum for normal text.
  • 3:1 (AA large): enough for large text, 24px or more, or about 18.7px in bold, and for the parts of an interface people need to see: input borders, icons, focus rings and chart lines.
  • 7:1 (AAA): the enhanced level for normal text, worth aiming for in long reading.

Ratios are rounded down to two places, so 4.49:1 never shows as a pass. The same formula is used by WebAIM's checker, browser developer tools and audit tools, so the numbers match what an accessibility audit will report.

Fixing a pair that fails

Pick any cell and the tool finds the nearest text colour that passes against that background, and the nearest background that passes against that text. It keeps the hue and moves the lightness in OKLCH, the colour space that tracks how people see lightness, so the fixed colour still looks like your colour, only darker or lighter. When a colour would leave the sRGB range, its saturation is lowered just enough to fit.

Copy the hex, or add it to the palette and see how it does against everything else.

Colour vision deficiency

About one man in twelve and one woman in two hundred has some colour vision deficiency. Switch the grid to protanopia, deuteranopia or tritanopia to see the palette the way they do, or to no colour at all. The contrast ratio hardly changes, since it measures lightness, but colours that only differ in hue become hard to tell apart: a sign that a status or a chart needs a second cue, like an icon or a label.

Accessibility beyond the palette

Since June 2025 the European Accessibility Act has applied to many websites and apps sold in the EU, and WCAG 2.2 AA is the standard most audits use. Contrast is the first check, not the whole of it: focus, keyboard use, text size, motion and clear errors matter as much. I design products to WCAG 2.2 AA from the first screen. For type sizes that stay readable at every width, try the fluid typography calculator.

Questions people ask

  • 4.5:1 for normal text, and 3:1 for large text (24px, or about 18.7px bold) and for interface parts such as input borders, icons and focus indicators. AAA asks for 7:1 for normal text.
  • From the relative luminance of the two colours: (lighter + 0.05) divided by (darker + 0.05), where luminance weighs red, green and blue by how bright they look. The tool uses the WCAG 2 formula exactly, the same as WebAIM and browser tools.
  • Yes. Paste the colours part of your Tailwind config, or the CSS variables of a Tailwind v4 theme. Nested names like blue: { 500: ... } become blue-500.
  • It keeps the hue and moves the lightness in OKLCH until the pair passes, picking whichever direction, darker or lighter, needs the smaller change. The result is checked again after rounding to a hex value.
  • Not yet. APCA is the candidate method for WCAG 3, which is still a draft. Audits and laws today use WCAG 2.2, which is what this tool measures.
  • No. Everything runs in your browser, so unreleased brand colours and client work stay on your device.

Need more than a free tool?

I design and build products around jobs like this one. Start with a free 30 minute call, then get one written scope and one fixed quote.

Book a free intro call