How to Check a Four-Color Palette for Text Contrast

A four-color palette gives you sixteen matrix cells, but only a few may belong in your design. Here is how to choose and check those pairs with Forest Paper.

Forest Paper · all 16 pairings

Rows are text colors; columns are backgrounds. Matching colors have 1:1 contrast. The matrix uses the same four values as the article.

4 × 4 opaque sRGB text contrast matrix
Text ↓ / Surface →#193A2C#F3F0E3#527B55#D9B66F
#193A2C1.00:1AA · Normal text: Fail10.92:1AA · Normal text: Pass2.57:1AA · Normal text: Fail6.46:1AA · Normal text: Pass
#F3F0E310.92:1AA · Normal text: Pass1.00:1AA · Normal text: Fail4.25:1AA · Normal text: Fail1.69:1AA · Normal text: Fail
#527B552.57:1AA · Normal text: Fail4.25:1AA · Normal text: Fail1.00:1AA · Normal text: Fail2.51:1AA · Normal text: Fail
#D9B66F6.46:1AA · Normal text: Pass1.69:1AA · Normal text: Fail2.51:1AA · Normal text: Fail1.00:1AA · Normal text: Fail

Pass or fail uses the unrounded ratio. These previews check the selected text pairs. Review focus, borders and interaction in the finished component.

Four attractive swatches can still hide a weak caption color. A contrast matrix makes those combinations easier to find. This worked example uses Forest Paper, an original ColorPairLab palette, to check body text, a caption and a highlight label.

Enter the exact four values

LabelValueWorking description
Swatch 1#193A2CDark green anchor
Swatch 2#F3F0E3Paper surface
Swatch 3#527B55Middle green accent
Swatch 4#D9B66FWarm highlight

Open Forest Paper in the matrix and confirm the four values below. For your own brand colors, use values from the design source where possible: sampling a screenshot can give you a different color.

Read a matrix by roles

Text / background#193A2C#F3F0E3#527B55#D9B66F
#193A2C1.00:110.92:12.57:16.46:1
#F3F0E310.92:11.00:14.25:11.69:1
#527B552.57:14.25:11.00:12.51:1
#D9B66F6.46:11.69:12.51:11.00:1

Read the row as text and the column as background. The diagonal is 1.00:1 because each color is paired with itself. Mirrored cells have equal ratios with reversed roles. There are sixteen cells, including four diagonal cells and six distinct non-identical pairings.

You do not need every cell to pass. A decorative accent may never carry text. Concentrate on the combinations used for paragraphs, labels and headings, with the correct size and criterion for each.

Choose pairs for a page

Proposed roleText / backgroundRatioAA normal decision
Body copy#193A2C / #F3F0E310.92:1Pass
Accent caption#527B55 / #F3F0E34.25:1Fail
Highlight label#193A2C / #D9B66F6.46:1Pass

Select each proposed pair to read all four results. The accent caption shows why a middle green can look appealing while offering less contrast than the dark anchor. If it misses the chosen threshold, change the text color or its role.

Record the text size

Use normal-text results for a 16 px paragraph or caption. A 24 px regular title qualifies as large text; a 16 px bold button label does not. Record the sizes so a later mobile style change does not quietly invalidate the decision.

Review record
Palette: Forest Paper, four exact values above
Use: body paragraph
Foreground: #193A2C
Background: #F3F0E3
Type: 16px regular
Criterion: AA normal text
Decision: use the full-precision result
Unreviewed: focus, boundaries, semantics, image overlays

Track edits and recheck affected pairs

Save a named working copy before adjusting a swatch. Changing one color affects every cell in its row and column. Recheck all of its uses, including reversed text, while leaving the original palette available as a reference.

Export the values with a short worksheet: text color, background, size, criterion and decision. Mark any unresolved row clearly so the next person knows what still needs attention.

Sources and further reading

Content reviewed: October 22, 2026