Colorise ProOKLCH Engine
ExploreStudioNamesPickerPairs
ExploreStudioNamesPickerPairsContrastExtract
Menu

Product

  • Home
  • Explore
  • Studio
  • Color Names

Tools

  • Picker
  • Color Pairs
  • Contrast
  • Image Extract
  • Gradient Lab
  • Palette Diff
  • Brand from URL

Guides

  • All guides
  • OKLCH vs HSL
  • WCAG vs APCA
  • OKLCH color scales
  • Gamut & sRGB
  • Extract from images
  • HEX to OKLCH
  • Dark mode colors
  • Color meanings
Home/Contrast

Color Contrast Pairs: Text on White, Black & Gray

WCAG 2.2 contrast ratios and APCA Lc for thousands of named colors as text on white, black and gray, and white or black text on each color.

Each page shows the WCAG 2.2 ratio, AA and AAA results for normal and large text and UI, APCA Lc, and the smallest lightness change that reaches 4.5:1. Need a pair that is not listed? Use the contrast checker, or type /contrast/<text hex>-on-<background hex>.

Colors as text on white

  • AgBlack21.00:1
  • AgNavy Blue16.00:1
  • AgBlue8.59:1
  • AgHulk5.13:1
  • AgTeal4.77:1
  • AgGreen1.37:1
  • AgCyan1.25:1
  • AgFresh Turquoise1.64:1
  • AgIndigo12.95:1
  • AgBoa4.49:1
  • AgMaroon10.94:1
  • AgPurple9.41:1
  • AgGrey3.94:1
  • AgBBQ5.53:1
  • AgCos1.93:1
  • AgHarissa Red7.08:1
  • AgBud2.44:1
  • AgCay1.66:1
  • AgBay1.42:1
  • AgBog2.03:1
  • AgAsh1.94:1
  • AgSilver1.81:1
  • AgAce1.58:1
  • AgBff1.88:1
  • AgWild Rider Red4.98:1
  • AgMamie Pink2.31:1
  • AgAwe1.37:1
  • AgBee1.76:1
  • AgSmoked Salmon2.50:1
  • AgRed3.99:1
  • AgMagenta3.13:1
  • AgOrange1.97:1
  • AgPink1.53:1
  • AgGold1.40:1
  • AgYellow1.07:1

Colors as text on black

  • AgNavy Blue1.31:1
  • AgBlue2.44:1
  • AgHulk4.08:1
  • AgTeal4.39:1
  • AgGreen15.30:1
  • AgCyan16.74:1
  • AgFresh Turquoise12.79:1
  • AgIndigo1.62:1
  • AgBoa4.67:1
  • AgMaroon1.91:1
  • AgPurple2.22:1
  • AgGrey5.31:1
  • AgBBQ3.79:1
  • AgCos10.86:1
  • AgHarissa Red2.96:1
  • AgBud8.59:1
  • AgCay12.61:1
  • AgBay14.73:1
  • AgBog10.30:1
  • AgAsh10.77:1
  • AgSilver11.54:1
  • AgAce13.21:1
  • AgBff11.16:1
  • AgWild Rider Red4.20:1
  • AgMamie Pink9.06:1
  • AgAwe15.22:1
  • AgBee11.89:1
  • AgSmoked Salmon8.39:1
  • AgRed5.25:1
  • AgMagenta6.69:1
  • AgOrange10.63:1
  • AgPink13.65:1
  • AgGold14.97:1
  • AgYellow19.55:1
  • AgWhite21.00:1

White text on colors

  • AgBlack21.00:1
  • AgNavy Blue16.00:1
  • AgBlue8.59:1
  • AgHulk5.13:1
  • AgTeal4.77:1
  • AgGreen1.37:1
  • AgCyan1.25:1
  • AgFresh Turquoise1.64:1
  • AgIndigo12.95:1
  • AgBoa4.49:1
  • AgMaroon10.94:1
  • AgPurple9.41:1
  • AgGrey3.94:1
  • AgBBQ5.53:1
  • AgCos1.93:1
  • AgHarissa Red7.08:1
  • AgBud2.44:1
  • AgCay1.66:1
  • AgBay1.42:1
  • AgBog2.03:1
  • AgAsh1.94:1
  • AgSilver1.81:1
  • AgAce1.58:1
  • AgBff1.88:1
  • AgWild Rider Red4.98:1
  • AgMamie Pink2.31:1
  • AgAwe1.37:1
  • AgBee1.76:1
  • AgSmoked Salmon2.50:1
  • AgRed3.99:1
  • AgMagenta3.13:1
  • AgOrange1.97:1
  • AgPink1.53:1
  • AgGold1.40:1
  • AgYellow1.07:1

Black text on colors

  • AgNavy Blue1.31:1
  • AgBlue2.44:1
  • AgHulk4.08:1
  • AgTeal4.39:1
  • AgGreen15.30:1
  • AgCyan16.74:1
  • AgFresh Turquoise12.79:1
  • AgIndigo1.62:1
  • AgBoa4.67:1
  • AgMaroon1.91:1
  • AgPurple2.22:1
  • AgGrey5.31:1
  • AgBBQ3.79:1
  • AgCos10.86:1
  • AgHarissa Red2.96:1
  • AgBud8.59:1
  • AgCay12.61:1
  • AgBay14.73:1
  • AgBog10.30:1
  • AgAsh10.77:1
  • AgSilver11.54:1
  • AgAce13.21:1
  • AgBff11.16:1
  • AgWild Rider Red4.20:1
  • AgMamie Pink9.06:1
  • AgAwe15.22:1
  • AgBee11.89:1
  • AgSmoked Salmon8.39:1
  • AgRed5.25:1
  • AgMagenta6.69:1
  • AgOrange10.63:1
  • AgPink13.65:1
  • AgGold14.97:1
  • AgYellow19.55:1
  • AgWhite21.00:1

Common backgrounds

Every named color has a page for text on each of these, and for white or black text on the color itself. Open any color page to find them.

  • #FFFFFF
  • #000000
  • #333333
  • #808080
  • #EEEEEE

Color contrast pairs: how the ratios work and how to fix failures

What a contrast ratio is

A contrast ratio is a single number that says how far apart the brightness of two colors is, usually text against its background. It runs from 1:1 (identical colors, nothing to read) up to 21:1 (black on white). The pages listed above each take one text color and one background and report the ratio, whether it passes the accessibility thresholds, and a suggested fix. If your pair is not listed, the contrast checker works for any two colors.

How the ratio is computed

The WCAG 2.x formula works in three steps. First, each sRGB channel (0 to 255) is divided by 255 and linearised: values at or below 0.04045 are divided by 12.92, and larger values become ((c + 0.055) / 1.055) raised to the power 2.4. This undoes the gamma curve so the numbers are proportional to light. Second, the relative luminance is a weighted sum, L = 0.2126 R + 0.7152 G + 0.0722 B, where green counts most because the eye is most sensitive to it. Third, the ratio is (L1 + 0.05) / (L2 + 0.05), with L1 the lighter color and L2 the darker one. The 0.05 term stands in for ambient light and stops the ratio from exploding near black.

Two things follow from the formula. The ratio is symmetric, so black on white and white on black give the same 21:1. And it is based on luminance only, so it says nothing about hue: a red and a green with similar luminance have a ratio close to 1:1 even though they look different. Our WCAG vs APCA guide goes through the limits of the formula in more detail.

WCAG 2.2 thresholds

Level AA, the usual legal and procurement target, asks for at least 4.5:1 for normal text and 3:1 for large text. Large means at least 24 CSS pixels (18pt) in regular weight, or at least about 18.66 pixels (14pt) in bold. Success criterion 1.4.11 Non-text Contrast adds 3:1 for user interface components and graphical objects that you need to understand the content, such as input borders, icons that carry meaning, focus indicators and chart elements. Level AAA, which is stricter and rarely required for a whole site, asks for 7:1 for normal text and 4.5:1 for large text.

Logos and purely decorative elements are exempt, and so is text in disabled controls. Thresholds are minimums, not targets: a 4.5:1 pair passes, but thin type at small sizes, low-quality screens or bright sunlight all make reading harder, so aim above the line for body text. Rounding is not allowed, so 4.49:1 fails.

APCA and the Lc score

APCA (the Accessible Perceptual Contrast Algorithm) is a newer method that scores a pair as a lightness contrast value, Lc, from about 0 to about 106 in magnitude. Unlike the WCAG ratio it is polarity-aware: dark text on a light background and light text on a dark background give different scores, which matches how people actually read. It also expects you to read the score against font size and weight. As a rough guide, Lc 75 is a common target for body text, about Lc 60 for larger text, about Lc 45 for large or bold headlines, and roughly Lc 15 to 30 for non-text elements such as faint separators. These are guidelines that depend on the font, not fixed pass marks.

APCA is a candidate method for WCAG 3, which is still a draft. It is not part of WCAG 2.2, so it is not a current conformance or legal requirement, and you should keep using the WCAG 2 ratio for compliance. Treat Lc as a second opinion, especially for dark mode and thin fonts where the WCAG ratio can be too generous or too strict. Every pair page shows both numbers side by side.

Common failing pairs and how to fix them

The same few combinations fail again and again. Light grey text on white is the classic one: mid grey #808080 on white reaches only about 3.9:1, short of 4.5:1 for body text. White on yellow, as in white on #FFFF00, is close to 1:1, and white on orange reaches only about 2:1, so both need dark text instead. Pure white on red is just under 4:1, enough for large text but not for body copy. Saturated mid-blues on dark backgrounds, for example pure blue on black, fall around 2.4:1 even though they look vivid. Red against green is a different problem: the luminance can be nearly equal, and many people with red-green color vision deficiency cannot tell the two apart at all.

The most reliable fix is to change lightness and leave hue and chroma alone. In OKLCH the L channel tracks perceived brightness, so lowering L on a grey or a blue text color darkens it without turning it into a different color, and raising L does the same on a dark background. Change L in small steps, re-check the ratio, and stop at the first step that passes, which keeps the color as close to your brand as possible. If the chroma becomes too high for sRGB at the new lightness, reduce it slightly. That is exactly what the suggested fix on every pair page does. You can do it by hand in the OKLCH picker. When you pass a pair, also check that meaning is not carried by color alone, as described in our color meaning guide.

How the pair pages here are organised

Each page is addressed as /contrast/<text hex>-on-<background hex>. The lists above are generated from the site's color data rather than written by hand. They take the most commonly searched colors from our named-color dictionary and show each as text on white and on black, and white and black text on each color. Beyond those lists, the full set also includes the CSS named colors and pairs against a few common backgrounds: black, white and three greys. Because the page is calculated from the two hex values, any valid pair works if you type it into the address bar, but only the curated pairs are listed in our sitemap. Each page shows the WCAG 2.2 ratio with AA and AAA results for normal text, large text and UI, the APCA Lc score, and the smallest OKLCH lightness change that reaches 4.5:1.

To go from a pair to the color itself, open its page in the color library for conversions, tints and shades. For ready-made palettes with contrast already checked, browse Explore. If you want the numbers in your own tooling, the developer API returns color values as JSON, and the comparison pages show how contrast checks differ between palette tools.

Frequently asked questions

What is a good contrast ratio for text?
At WCAG 2.2 level AA you need at least 4.5:1 for normal text and 3:1 for large text, which means 24px or larger regular, or about 18.66px or larger bold. Level AAA asks for 7:1 for normal text and 4.5:1 for large text. For long reading, going above the minimum helps.
How is the contrast ratio calculated?
Each sRGB channel is linearised, then relative luminance is L = 0.2126 R + 0.7152 G + 0.0722 B. The ratio is (L1 + 0.05) / (L2 + 0.05), where L1 is the lighter color. The result runs from 1:1 for identical colors to 21:1 for black on white.
Do icons and borders need contrast too?
Yes. WCAG 2.2 success criterion 1.4.11 asks for at least 3:1 against adjacent colors for user interface components, such as input borders and focus indicators, and for graphical objects needed to understand the content. Pure decoration and logos are exempt.
Is APCA required for accessibility compliance?
No. APCA is a candidate method for WCAG 3, which is still a draft. Conformance and legal requirements currently refer to the WCAG 2.x contrast ratio. APCA Lc scores are a useful extra readability check, particularly for dark mode and thin fonts.
Why does white text on yellow or orange fail?
Yellow and orange are very light in luminance terms, so white on yellow has a ratio close to 1:1 and white on orange is about 2:1. Dark text on those colors passes easily, or you can darken the background by lowering its OKLCH lightness.
How do I fix a failing color pair without changing the brand hue?
Adjust lightness in OKLCH while keeping hue and chroma, in small steps, and recheck the ratio after each one. Darken the text on a light background or lighten it on a dark one. If the color falls out of the sRGB gamut, reduce chroma slightly. Every pair page suggests the smallest change that reaches 4.5:1.
Colorise Pro

Free OKLCH color workspace: precision color picker, color pairs, WCAG & APCA contrast checker, palette from image, Studio systems, names, gradients, and brand tools. Export HEX, CSS, Tailwind & DTCG.

OKLCH Engine

Product

  • Home
  • Explore
  • Studio
  • Color Names
  • Color Codes

Tools

  • Color Picker
  • Color Pairs
  • Contrast Checker
  • Image Extract
  • Gradient Lab
  • Palette Diff
  • Brand from URL
  • For presentations
  • For business cards
  • For SaaS landings
  • Duo pairs
  • Trio systems

Guides

  • All guides
  • OKLCH vs HSL
  • WCAG vs APCA
  • OKLCH color scales
  • Gamut & sRGB
  • Extract from images
  • HEX to OKLCH
  • Dark mode colors
  • Color meanings

Legal

  • Privacy
  • Terms

© 2026 Colorise Pro. All rights reserved.

© 2026 Colorise Pro. Built for precision color work.

Report infringement: [email protected] (Colorise Pro)

PrivacyTermsOKLCH · WCAG · APCA