Color Contrast Checker & Harmony Generator

Build a palette of up to five colors, see every pairwise WCAG contrast ratio at a glance, and generate harmonious color schemes – free, no sign-up, entirely in your browser.

Applying a harmony replaces the palette. Click any hex in the matrix to copy it.

Contrast matrix

Each cell shows the contrast ratio of the row color as text on the column color as background, plus WCAG AA/AAA pass for normal text.

≥ 4.5 AA normal text ≥ 3 AA large text only ≥ 7 AAA normal text ✓ / ✗ pass / fail

Why color contrast matters

Color contrast decides whether people can actually read your interface. Low contrast text may look elegant on the designer's calibrated monitor, but it becomes unreadable in sunlight, on cheap screens, or for the roughly one in twelve men and one in two hundred women with a color-vision deficiency. Getting contrast right is one of the highest-impact, lowest-effort accessibility wins there is.

The Web Content Accessibility Guidelines (WCAG) express contrast as a ratio between the relative luminance of two colors, ranging from 1:1 (no contrast – identical colors) to 21:1 (pure black on pure white). The tool above calculates this ratio for every pair of colors in your palette using the exact WCAG 2.1 formula.

WCAG contrast levels explained

Rule of thumb: aim for AA everywhere, and treat AAA as the target for long-form reading and small text.

Understanding color harmonies

A harmony is a set of colors whose hues sit in a predictable relationship on the color wheel. Harmonies give a palette a sense of intent instead of looking random. The generator above builds five classic types:

Harmony makes a palette look good; contrast makes it work. That is why this tool combines both – generate a scheme you like, then immediately verify that the text and background pairs you intend to use actually pass WCAG.

How to use this tool

  1. Start from the default palette or pick a base color and apply a harmony.
  2. Fine-tune any swatch with the color picker or by typing a hex value.
  3. Read the matrix: green-ish cells pass AA for normal text, amber pass only for large text, red fail.
  4. Click any hex code to copy it to your clipboard.

FAQ

What is a good color contrast ratio?

For normal body text, aim for at least 4.5:1 (WCAG AA) or 7:1 (AAA). Large text needs 3:1 (AA) or 4.5:1 (AAA). The maximum possible ratio is 21:1.

What is the difference between AA and AAA?

AA is the required baseline for accessible sites; AAA is the stricter enhanced level for the highest legibility. Meeting AA is the practical goal for most projects.

Does the contrast ratio depend on font size?

The ratio itself does not, but the threshold you need to pass does: large text is allowed a lower ratio (3:1 for AA) because bigger shapes are easier to read.

Is my color data uploaded anywhere?

No. Everything is computed locally in your browser with JavaScript. Nothing is sent to a server.