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.
| Text ↓ / Surface → | #193A2C | #F3F0E3 | #527B55 | #D9B66F |
|---|---|---|---|---|
#193A2C | 1.00:1AA · Normal text: Fail | 10.92:1AA · Normal text: Pass | 2.57:1AA · Normal text: Fail | 6.46:1AA · Normal text: Pass |
#F3F0E3 | 10.92:1AA · Normal text: Pass | 1.00:1AA · Normal text: Fail | 4.25:1AA · Normal text: Fail | 1.69:1AA · Normal text: Fail |
#527B55 | 2.57:1AA · Normal text: Fail | 4.25:1AA · Normal text: Fail | 1.00:1AA · Normal text: Fail | 2.51:1AA · Normal text: Fail |
#D9B66F | 6.46:1AA · Normal text: Pass | 1.69:1AA · Normal text: Fail | 2.51:1AA · Normal text: Fail | 1.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
| Label | Value | Working description |
|---|---|---|
| Swatch 1 | #193A2C | Dark green anchor |
| Swatch 2 | #F3F0E3 | Paper surface |
| Swatch 3 | #527B55 | Middle green accent |
| Swatch 4 | #D9B66F | Warm 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 |
|---|---|---|---|---|
| #193A2C | 1.00:1 | 10.92:1 | 2.57:1 | 6.46:1 |
| #F3F0E3 | 10.92:1 | 1.00:1 | 4.25:1 | 1.69:1 |
| #527B55 | 2.57:1 | 4.25:1 | 1.00:1 | 2.51:1 |
| #D9B66F | 6.46:1 | 1.69:1 | 2.51:1 | 1.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 role | Text / background | Ratio | AA normal decision |
|---|---|---|---|
| Body copy | #193A2C / #F3F0E3 | 10.92:1 | Pass |
| Accent caption | #527B55 / #F3F0E3 | 4.25:1 | Fail |
| Highlight label | #193A2C / #D9B66F | 6.46:1 | Pass |
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 overlaysTrack 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