ColorWell · contrast check
White or black text on #ef4444?
Tailwind red-500
Use black text. It gives 5.58:1, which passes AA, not AAA.
White text
3.76:1
passes AA for large text only (18pt+/14pt bold)
Black text
5.58:1
passes AA, not AAA
What the thresholds mean
| Level | Needs | White text | Black text |
|---|---|---|---|
| AA, normal text | 4.5:1 | fail | pass |
| AA, large text (18pt+/14pt bold) | 3:1 | pass | pass |
| AAA, normal text | 7:1 | fail | fail |
If you need the other one to pass
Same hue, moved along the lightness ramp until the ratio clears AA.
- For white text, use
#b81521— 6.63:1
The colour itself
- Hex:
#ef4444 - RGB:
239, 68, 68 - Oklch:
63.68% 0.208 25
Shade ramp
#ffd4cb #ffb8ae #ff958c #ff6963 #e62d34 #b81521 #8c000f #620000 #3b0000
Paste this into your config
// tailwind.config.js
colors: {
brand: {
100: "#ffd4cb",
200: "#ffb8ae",
300: "#ff958c",
400: "#ff6963",
500: "#e62d34",
600: "#b81521",
700: "#8c000f",
800: "#620000",
900: "#3b0000",
},
}Text colour to pair with the 500 shade (#e62d34): black, at 4.79:1. For #ef4444 itself it is black, at 5.58:1.
Your own colours, the same way
Paste any hex and get this page for it live — ratio, verdict, ramp. Export the whole palette to CSS variables, a Tailwind config or Figma tokens when you want it in the project rather than on the screen.
Open ColorWellOther colours
- text on #f97316 Tailwind orange-500
- text on #f59e0b Tailwind amber-500
- text on #eab308 Tailwind yellow-500
- text on #84cc16 Tailwind lime-500
- text on #22c55e Tailwind green-500
- text on #10b981 Tailwind emerald-500
- text on #14b8a6 Tailwind teal-500
- text on #06b6d4 Tailwind cyan-500
- text on #0ea5e9 Tailwind sky-500
- text on #3b82f6 Tailwind blue-500
- text on #6366f1 Tailwind indigo-500
- text on #8b5cf6 Tailwind violet-500