LazyTools

🔒 Every tool runs in your browser — the files and values you enter are never uploaded to any server. How it works

🔲 Contrast Grid Generator

Paste a palette and get an N×N grid of WCAG 2 contrast ratios — every color against every other, with AA and AAA pass badges.

7 colors · rows = text, columns = background · AA 4.5:1 · AA18 (large) 3:1 · AAA 7:1

Ink
Slate
Primary
Success
Warning
Danger
Surface
Ink
Aa1.0
Aa2.9
Aa4.3AA18
Aa5.9AA
Aa6.6AA
Aa4.1AA18
Aa15.5AAA
Slate
Aa2.9
Aa1.0
Aa1.5
Aa2.1
Aa2.3
Aa1.5
Aa5.4AA
Primary
Aa4.3AA18
Aa1.5
Aa1.0
Aa1.4
Aa1.5
Aa1.0
Aa3.6AA18
Success
Aa5.9AA
Aa2.1
Aa1.4
Aa1.0
Aa1.1
Aa1.4
Aa2.6
Warning
Aa6.6AA
Aa2.3
Aa1.5
Aa1.1
Aa1.0
Aa1.6
Aa2.3
Danger
Aa4.1AA18
Aa1.5
Aa1.0
Aa1.4
Aa1.6
Aa1.0
Aa3.8AA18
Surface
Aa15.5AAA
Aa5.4AA
Aa3.6AA18
Aa2.6
Aa2.3
Aa3.8AA18
Aa1.0

Exact WCAG 2 contrast ratios (sRGB relative luminance) for every text/background pair. 🔒 Computed in your browser.

Rate this tool:
Anonymous — no account, no identifier

How the contrast grid generator works

Enter one color per line (HEX, RGB or HSL, with an optional label). The tool computes the exact WCAG 2 contrast ratio for every ordered pair using sRGB relative luminance and renders a matrix: each cell shows the ratio and badges for AA (4.5:1), AA-large (3:1) and AAA (7:1), with the actual colors painted so you can see the combination.

A single-pair checker answers "do these two work?"; a contrast grid answers "which combinations in my whole palette are usable?" — the design-system question. It reuses the exact WCAG math from our contrast checker across the full matrix.

Frequently asked questions

What is a contrast grid?

A matrix that pairs every color in a palette against every other and shows the contrast ratio and WCAG pass/fail for each combination — so you can see at a glance which foreground/background pairs are accessible.

How many colors can I check?

As many as you paste, one per line. The grid grows to N×N, so large palettes produce big grids; a design-system core palette of 6–12 colors is the typical use.

What do the badges mean?

Each cell shows whether the pair meets WCAG 2 AA (4.5:1 normal text), AA-large (3:1 for large text) and AAA (7:1). A pair can pass for large text but fail for body text — the badges make that explicit.

Can I label my colors?

Yes — add a label after the color on each line (e.g. "#1d87f1 Primary") and the grid uses it in the row and column headers.

Does this use APCA?

This grid uses WCAG 2 ratios, the current legal standard. The APCA (WCAG 3) checker is a separate tool for the emerging perceptual method.

Related color tools