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

WCAG

15.30:1

Lc

86

AAA

Tools

Contrast Checker

Pair text and background, read WCAG + APCA, preview UI, and export tokens or a share card.

Text / Background

Text

Foreground

Background

Surface

Open in PickerOpen in Studio

Scores

Normal textAA + AAANeed ≥4.5:1 · AAA ≥7:1
Large textAA + AAANeed ≥3:1 · AAA ≥4.5:1
APCA UILc 86 · PassThreshold ≥45
APCA BodyLc 86 · PassThreshold ≥75

Live preview

Normal AAALarge AAALc 86

Design that holds up in daylight and at night.

Body copy should stay readable at paragraph length. This block uses your text color on the chosen background.

Secondary / caption style for metadata and hints.

Inline link sample →

Card

Inverted surface

Useful check for chips, toasts, and filled controls.

Large Aa

AAA

Aa

Normal Aa

AAA

Aa

CVD preview

Approximate color-vision simulation on the live preview.

Frequently asked questions

What is APCA contrast?
APCA (Accessible Perceptual Contrast Algorithm) estimates perceived contrast as Lc. It better models light text on dark backgrounds than WCAG 2.x ratios alone.
Should I use WCAG or APCA?
Use WCAG 2.1 when you need compliance checklists; use APCA when tuning modern UI readability. Colorise Pro shows both side by side on live type samples.
What contrast do body text and UI need?
WCAG AA typically wants 4.5:1 for normal text and 3:1 for large text or UI. APCA targets depend on size and weight — check Lc on real samples in the tool.
What is a good contrast ratio?
For WCAG AA, aim for at least 4.5:1 for normal text and 3:1 for large text and UI components. WCAG AAA asks for 7:1 for normal text and 4.5:1 for large text. Higher is generally easier to read.
Is APCA required?
No. WCAG 2.2 is the current W3C Recommendation and uses the contrast ratio. APCA is being evaluated for WCAG 3, which is still a working draft, so use it as an additional check rather than a compliance requirement.
What counts as large text in WCAG?
Text of at least 18 point (24 CSS px), or at least 14 point (about 18.66 CSS px) in bold. Large text only needs 3:1 for AA instead of 4.5:1.
What contrast do icons and form borders need?
WCAG 2.1 and later require at least 3:1 for the visual parts of UI components needed to identify them, such as input borders, and for graphics needed to understand content. Disabled controls and decorative graphics are exempt.

Understanding color contrast: WCAG, APCA and fixing failing pairs

The WCAG 2.x contrast ratio

WCAG's contrast ratio compares the relative luminance of two colors: (L1 + 0.05) / (L2 + 0.05), where L1 is the lighter color. The result runs from 1:1 (identical colors) to 21:1 (black on white). The same formula is used in WCAG 2.0, 2.1 and 2.2.

At level AA, normal text needs at least 4.5:1 and large text needs at least 3:1. At level AAA the numbers are 7:1 and 4.5:1. WCAG defines large text as at least 18 point (24 CSS pixels) or at least 14 point (about 18.66 CSS pixels) when bold. Anything smaller counts as normal text, so a 16px paragraph in regular weight must reach 4.5:1 for AA. The ratio is a pass or fail threshold, not a score: 4.4:1 does not meet 4.5:1, even if it looks fine.

APCA and Lc values

APCA, the Accessible Perceptual Contrast Algorithm, reports contrast as a lightness contrast value, Lc. It differs from the WCAG ratio in three ways. First, it is polarity-aware: dark text on a light background and light text on a dark background give different Lc values, and the sign of the number shows which is which (the magnitude is what you compare). Second, it models perceived contrast better for dark colors, where the WCAG formula tends to be generous. Third, the target depends on the size and weight of the text, so a thin 14px label needs a higher Lc than a bold 32px heading.

The APCA guidance maps font size and weight to a minimum Lc. As a rough orientation, body text at normal weight needs a magnitude in the range of Lc 75 to 90, while large headlines can work at lower values. Treat those numbers as a starting point and check the current APCA documentation for the exact lookup table, which has been revised over time. The checker shows both numbers next to live type samples so you can see what each one implies.

Which standard should you use?

WCAG 2.2 is the current W3C Recommendation, and accessibility laws and procurement requirements that mention WCAG point to the 2.x versions. If you need to show conformance, use the WCAG ratio. APCA is not part of WCAG 2 and is not required by it. It is being evaluated for the contrast guidance of the WCAG 3 working drafts, which are not finished and may change, so it is best described as a candidate rather than a standard.

A practical approach is to meet the WCAG thresholds as the baseline and use APCA as a second opinion, especially for light text on dark backgrounds or for thin and small type. When the two disagree, take the stricter result. The WCAG vs APCA guide compares them in more depth.

Non-text contrast: icons, borders and controls

Success criterion 1.4.11 (Non-text Contrast), added in WCAG 2.1, asks for a ratio of at least 3:1 against adjacent colors for the parts of user interface components that are needed to identify them, such as the border of a text input or the outline of a checkbox, and for graphics required to understand the content, such as chart lines. Disabled controls and purely decorative graphics are exempt, as are logos. Focus indicators fall under this rule too, so a faint focus ring on a white page is a common failure.

Common mistakes

Grey placeholder and helper text is the most frequent one. A light grey such as #999999 on white measures below 3:1, well short of 4.5:1, while #767676 on white is about the lightest grey that reaches 4.5:1. Placeholders are still text and need to be readable. The second is text over photographs: the contrast changes from one part of the image to the next, so add a solid or semi-opaque scrim behind the text and measure against the worst-case background.

Brand colors are the third. A mid-tone brand color often passes as a button background with white text in one shade and fails in another, and the same color used as text on white can be too light. Define a darker text variant of the brand hue instead of reusing the logo color everywhere. Also remember that states count: hover, disabled-looking and error text each need to be tested. For ready-made measurements of common combinations, the contrast pairs pages list ratios for named colors, and each color page shows its ratio on white and black.

Fixing a failing pair with OKLCH lightness

Contrast is mostly a function of lightness, so the cleanest fix is to change L and leave hue and chroma alone. Take the failing color into the OKLCH picker, lower L for text on a light background (or raise it on a dark one), and re-check until the ratio crosses the threshold. Because hue and chroma stay put, the color still looks like the same brand color, just deeper or lighter. If the chroma is high, you may also need to reduce it slightly so the result stays inside sRGB.

When changing the text color is not an option, move the background instead, or switch the roles of foreground and background. Larger or bolder text lowers the required threshold, but only to 3:1 under WCAG, so do not rely on size alone. To check ideas against real palettes, look through the palette library, or see how tokens are generated for your own system with the color API. The color meaning guides also list the ratio of each color on white and black, and the comparisons with Coolors and Adobe Color show how other tools handle contrast checks.

Related tools

  • OKLCH picker
  • Color pairs
  • Contrast pairs
  • WCAG vs APCA
  • Studio
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