Lexideck Technologies

APCA contrast grid

Every colour as text on every other colour as background, scored in APCA lightness contrast (Lc). Unlike a WCAG ratio this is polarity aware, so dark-on-light and light-on-dark are two different readings and the grid is not symmetric.

Advisory, not a compliance test. APCA is a candidate contrast method being developed for WCAG 3. WCAG 3 is a Working Draft: it is unfinished, it is not a standard, and nothing here certifies anything against it.

If you need a conformance result today, that is WCAG 2.x, on the 2.2 grid. Use this one to find pairs that read badly in practice even when the ratio passes, and pairs the ratio punishes that are actually fine.

One per line. Bare hex, name #hex, or a CSS custom-property block pasted straight from a stylesheet.

Results

Rows are the text colour. Columns are the background behind it. Read a row across to see how one ink performs on every surface.

A negative Lc means light text on a dark background. The sign carries the polarity, not the quality: judge the magnitude.

Reading an Lc value

These are the published APCA use-case levels, summarised. They are guidance about what a value is good enough for, not thresholds anything is certified against.

LcWhat it supports
90 and upPreferred for body text at any size down to 14px regular
75Minimum for columns of body text, roughly 16px regular
60Other content text, around 18px regular or 16px medium
45Large text and headlines, around 24px regular or 18px bold
30Floor for any text at all. Spot text, placeholders, incidental labels
15Non-text elements. Dividers, disabled states, decorative boundaries

Smaller and lighter type needs a higher Lc, and the relationship is not linear, which is the point of the method. Treat the size figures as the middle of a range rather than a line.

How it is calculated

Channels are raised to the power 2.4 and combined with the coefficients 0.2126729, 0.7151522 and 0.0721750 to give screen luminance Y. Values below 0.022 are soft-clamped to model flare in dark tones. Text and background are then raised to different exponents depending on which is lighter, 0.57 and 0.56 for dark text on light, 0.62 and 0.65 for light on dark, scaled by 1.14 and offset by 0.027. Differences under 0.0005 and results inside the low clip return zero rather than a misleading small number. This is APCA-W3 0.1.9.

Where it disagrees with WCAG 2.x

Most visibly on dark backgrounds. WCAG 2.x tends to overrate light grey text on near black, which APCA marks down, and it underrates some mid-tone pairs that read cleanly. Comparing the two grids on the same palette is the useful exercise.

Runs entirely in your browser. Nothing is uploaded, nothing is stored, nothing is logged. All tools