APCA Contrast Checker
Calculate the APCA lightness contrast (Lc) for any text and background pair, with the draft WCAG 3 font size and weight lookup and a live preview.
APCA lightness contrast
Large heading, 36px
Content text at 18px, weight 400.
Small bold text at 14px, weight 700.
What is actually readable at this Lc
| Lc | Use | Smallest font / weight |
|---|---|---|
| 90 | Preferred for body text and any small or thin text | 14px / 700, 15px / 400 and up |
| 75 | Minimum for columns of body text | 16px / 400, 14px / 700, 24px / 300 |
| 60 | Minimum for content text you expect people to read | 18px / 400, 16px / 500, 24px / 300 |
| 45 | Minimum for large headings and sub-headings | 24px / 400, 21px / 500, 36px / 300 |
| 30 | Absolute minimum for any text — plus icons and UI outlines | 36px / 400, 24px / 700 |
| 15 | Invisibility floor — decorative, non-informational elements only | Not for text |
APCA is a draft of WCAG 3 and is not a legal conformance requirement anywhere today. If you have to certify against WCAG 2.1 or 2.2, use the ratio shown above and its 4.5:1 / 3:1 thresholds. This table follows the APCA-W3 0.1.9 “bronze simple mode” guidance.
Screen luminance behind the score
APCA raises each channel to the power 2.4 and weights them 0.2126 / 0.7152 / 0.0722, then applies a soft clamp below Y 0.022 so very dark colours do not run away. Because the curve is polarity dependent, dark text on a light background and light text on a dark background score differently even when the WCAG ratio is identical.
What is the APCA Contrast Checker?
APCA is the contrast method drafted for WCAG 3, and it fixes a real problem with the old ratio: WCAG 2.
- APCA-W3 0.1.9 Lc score with correct polarity handling
- Font size and weight lookup for each readability level
- Live preview at heading, content and small-text sizes
- WCAG 2.1 ratio shown alongside for conformance work
- Exposes the screen luminance figures behind the score
- Runs fully offline in your browser
How to use the APCA Contrast Checker
- 1
Enter your text colour and your background colour, in that order — polarity matters.
- 2
Use the Swap button to check the reversed pairing without retyping.
- 3
Read the Lc value and check the live preview block at 36px, 18px and 14px.
- 4
Find your Lc in the lookup table to see the smallest font size and weight that stays readable.
About the APCA Contrast Checker
APCA is the contrast method drafted for WCAG 3, and it fixes a real problem with the old ratio: WCAG 2.1 treats dark-on-light and light-on-dark as identical, when your eye does not. APCA is polarity-aware, so it returns a positive Lc for dark text on a light background and a negative one for the reverse.
The score comes from screen luminance — each channel raised to the power 2.4 and weighted 0.2126, 0.7152 and 0.0722 — with a soft clamp applied to very dark values so near-blacks do not run away, then a polarity-dependent power curve. This implementation uses the APCA-W3 0.1.9 constants and reproduces the published black-on-white value of Lc 106.
APCA is still a draft and is not a legal conformance requirement anywhere, so the WCAG 2.1 ratio is shown alongside for anything you have to certify. Everything runs locally in your browser with no uploads.
Frequently asked questions
What is a good APCA Lc value?
Lc 75 is the working minimum for columns of body text, and Lc 90 is preferred for anything small or thin. Lc 60 suits larger content text, Lc 45 covers headlines, and below Lc 30 nothing should carry information. The sign only tells you the polarity, not the quality.
Why is my APCA score negative?
A negative Lc means light text on a dark background. That is not a failure — judge it by the absolute value. APCA deliberately separates the two polarities because a light-on-dark pairing needs different treatment to read as well as its dark-on-light mirror.
Should I use APCA or the WCAG 2.1 contrast ratio?
If you have a legal or contractual obligation, use WCAG 2.1 or 2.2 and its 4.5:1 and 3:1 thresholds — APCA is a draft and confers no conformance. Use APCA as a design aid when the old ratio gives an answer that clearly disagrees with what you can see.
Why does APCA disagree with the WCAG contrast ratio?
The two model the eye differently. WCAG 2.1 uses a simple luminance ratio that ignores polarity and font size, and it is known to be too lenient with dark backgrounds and too strict with some light pairings. APCA folds in polarity and the spatial characteristics of text.
Is APCA part of WCAG 2.2?
No. WCAG 2.2 kept the 2.1 contrast ratio unchanged. APCA is being developed for WCAG 3, which is still a working draft with no confirmed publication date, so treat these numbers as guidance rather than a standard.
Related tools
Contrast Checker
Check the contrast ratio between text and background colors against WCAG AA and AAA standards. Live preview, pass/fail badges and a one-click color swap.
Accessible Color Finder
Find the nearest colour that passes WCAG contrast by adjusting only OKLCH lightness, so your brand hue survives while the text becomes readable.
Color Contrast Grid
Paste a palette and get every foreground-on-background contrast ratio in one matrix, colour-coded by WCAG pass level and exportable as CSV or Markdown.
Dark Mode Palette Generator
Map a light-theme palette to its dark counterpart by inverting OKLCH lightness within bounds you set, then re-check every pairing for 4.5:1 contrast.
Color Picker
Pick any color and get its HEX, RGB and HSL values instantly. Free online color picker with shades, tints and one-click copy for designers and developers.