WCAG Color Contrast Checker

Paste foreground and background CSS colors to see WCAG 2.2 AA/AAA and non-text 3:1 verdicts with contrast ratio. HEX, RGB, HSL, OKLCH, color(), and named colors work on pair and matrix views. Checked in your browser, never sent.

Loading…
WCAG Color Contrast Checker
Paste CSS colors to read contrast ratio and WCAG 2.2 conformance. Matrix mode accepts up to 16 colors per axis and fails with an error beyond that. APCA is optional and labeled beta, and is never merged with WCAG scores.

Developer notes

WCAG 2.2 is the default pass/fail baseline (1.4.3, 1.4.6, 1.4.11). Foreground alpha composites over the background before the ratio. Matrix cap is 16 colors per axis: a 17th color shows an error, never silent truncation. APCA uses color.js's independent implementation, not the apca-w3 npm package. Shareable URL is for workspace state; social share buttons are separate.

Options

  • APCA overlay (beta) — Shows APCA Lc in a separate labeled section. Default off. Never implies WCAG 3 compliance.
  • Text size and weight — Sets WCAG large-text thresholds and the sample preview. Default 20px / 400 (normal text).
  • Foreground alpha — Composites the foreground over the background before computing the ratio. Default 1 (opaque).
  • Matrix conformance filter — Shows or hides AAA, AA, large-AA, and failure cells on the matrix. Hidden on single-pair view.

Related CSS tools

Hub: Color & CSS Tools. Shrink or format stylesheets with Minify CSS and Beautify CSS.

WCAG Color Contrast Checker FAQ

Local checker built around WCAG

Is APCA the same as WCAG 3?

No. APCA is an optional beta overlay in a separate section. WCAG 2.2 AA/AAA remains the compliance baseline on this page.

Are my colors uploaded?

No. Parsing and contrast math run entirely in your browser. FastMinify never sends colors to a server.

What paste formats work?

HEX, RGB, HSL, OKLCH, CSS color() including display-p3, and named CSS colors. No format toggle is required.

How many matrix colors are allowed?

Up to 16 per axis (256 cells max). Beyond that, the paste fails with a visible error.

Paste-local WCAG contrast checking with modern CSS color syntax — pair and matrix views, never uploaded.