High Contrast Color Palette

Pairs chosen so every text/background combination clears WCAG AAA — accessibility as the design constraint. Palette anchors: #000000, #FFFFFF, #FFFF00.

accessiblecontrast
#000000
#FFFFFF
#FFFF00
#0000FF
#FF0000
#000000 #ffffff #ffff00 #0000ff #ff0000
#000000 #FFFFFF #FFFF00 #0000FF #FF0000

Semantic roles

Assigned deterministically: lightest = background, darkest = text, most saturated = primary.

background#FFFFFF
surface#FFFF00
text#000000
text-muted#0000FF
primary#FFFF00
secondary#0000FF
accent#FF0000

CSS variables

:root {
  --background: #ffffff;
  --surface: #ffff00;
  --text: #000000;
  --text-muted: #0000ff;
  --primary: #ffff00;
  --secondary: #0000ff;
  --accent: #ff0000;
}
Preview in UIs →

Accessibility matrix

Text color (rows) on background (columns). Green = WCAG AA pass for normal text (≥4.5:1).

Text \ BG#000000#FFFFFF#FFFF00#0000FF#FF0000
#000000
1.0
21.0
19.6
2.4
5.3
#FFFFFF
21.0
1.0
1.1
8.6
4.0
#FFFF00
19.6
1.1
1.0
8.0
3.7
#0000FF
2.4
8.6
8.0
1.0
2.1
#FF0000
5.3
4.0
3.7
2.1
1.0

Under deuteranopia

Machado et al. (2009) simulation, severity 1.0 — approximation, not a medical tool.

Colors in this palette

Similar palettes

FAQ

How do I use the high contrast color palette in CSS?

Copy the CSS variables below into :root and use var(--primary), var(--background) etc. Full palette: #000000, #FFFFFF, #FFFF00, #0000FF, #FF0000.

Do these colors pass accessibility checks?

See the WCAG matrix on this page: every text-on-background pairing with ratio ≥ 4.5 passes AA for normal text; ≥ 3 passes AA for large text and UI components.