Tailwind CSS v4 default palette
Tailwind red-500: #FB2C36
In Tailwind CSS v4, red-500 is defined as --color-red-500: oklch(63.7% 0.237 25.331), which is #FB2C36 in hex and rgb(251, 44, 54): a medium, vivid red. In Tailwind v3, red-500 was #EF4444.
In OKLCH, red-500 has a lightness of 63.7%, chroma 0.237 and hue 25.3°.
The value fits inside sRGB, so the hex #FB2C36 represents it without loss on any screen.
In v3, red-500 was #EF4444. The v4 value is ΔE OK 2.9 away; v4 is more saturated.
Tailwind red is the default choice for errors and destructive actions; the 600 and 700 shades are the usual picks for text and buttons on white.
Color codes for red-500
| Tailwind v4 token | --color-red-500 |
|---|---|
| OKLCH (source value) | oklch(63.7% 0.237 25.331) |
| HEX | #FB2C36 |
| RGB | rgb(251, 44, 54) |
| HSL | hsl(357, 96%, 58%) |
| HWB | hwb(357 17% 2%) |
| CMYK (naive, no ICC profile) | cmyk(0%, 82%, 78%, 2%) |
| Decimal | 16,460,854 |
| Tailwind v3 hex | #EF4444 |
| Utility classes | bg-red-500, text-red-500, border-red-500 |
Tailwind red scale
Contrast and accessibility
On red-500, black text has a contrast ratio of 5.51:1 and passes AA for normal text; white text reaches 3.80:1.
WCAG 2.2 contrast ratios (success criteria 1.4.3 and 1.4.6: AA needs 4.5:1 for normal text and 3:1 for large text, AAA needs 7:1 and 4.5:1). APCA Lc is the lightness contrast from the APCA-W3 0.0.98G model proposed for WCAG 3; a higher absolute value is more readable, and Lc 75 is its suggested minimum for body text.
| Pair | Ratio | AA | AA large | AAA | AAA large | APCA Lc |
|---|---|---|---|---|---|---|
| Black text on red-500 | 5.51:1 | Pass | Pass | Fail | Pass | 40.5 |
| White text on red-500 | 3.80:1 | Fail | Pass | Fail | Fail | −69.1 |
| Red-500 text on white | 3.80:1 | Fail | Pass | Fail | Fail | 63.6 |
| Red-500 text on black | 5.51:1 | Pass | Pass | Fail | Pass | −38.1 |
Tints and shades
Each step mixes var(--color-red-500) with white (tints) or black (shades) in gamma-encoded sRGB, the same result as color-mix(in srgb, var(--color-red-500), white 25%) in CSS.
Tints (mixed with white)
- 5%
#fb3740 - 15%
#fc4c54 - 25%
#fc6168 - 35%
#fc767c - 45%
#fd8b90 - 55%
#fda0a5 - 65%
#feb5b9 - 75%
#fecacd - 85%
#fedfe1 - 95%
#fff4f5
Shades (mixed with black)
- 5%
#ee2a33 - 15%
#d5252e - 25%
#bc2129 - 35%
#a31d23 - 45%
#8a181e - 55%
#711418 - 65%
#580f13 - 75%
#3f0b0e - 85%
#260708 - 95%
#0d0203
Color harmonies
Rotating the hue in OKLCH while keeping lightness and chroma, red-500's complementary color is #00A0B0 (close to cadetblue), its analogous colors are #EF2D92 and #DA6500, and its triadic partners are #00AC00 and #4A7EFF. For text on top, black gives the higher contrast.
| Harmony | Rotation | Color |
|---|---|---|
| Complementary | +180° | #00a0b0 |
| Analogous | −30°, +30° | #ef2d92#da6500 |
| Triadic | +120°, +240° | #00ac00#4a7eff |
| Split-complementary | +150°, +210° | #00a687#0097de |
Computed in OKLCH: the hue is rotated by 180° (complementary), ±30° (analogous), ±120° (triadic) and 180° ±30° (split-complementary) while lightness and chroma stay fixed. Results that fall outside sRGB are brought back with the CSS Color 4 gamut mapping algorithm. Because this uses OKLCH, the values differ from tools that rotate hue in HSL, but every color keeps the same perceived lightness.
Warm or cool?
Tailwind red-500 is a warm color: its hue is 357° on the HSL wheel, in the red, orange and yellow range (0° to about 70°, plus reds above 330°) that is conventionally called warm.
Nearest named and Tailwind colors
Distance is ΔE OK, the Euclidean distance in OKLab multiplied by 100. Values under about 2 are hard to tell apart side by side.
Code snippets
<div class="bg-red-500 text-black">...</div>
<p class="text-red-500 border-red-500">...</p>.element {
color: var(--color-red-500);
background-color: oklch(63.7% 0.237 25.331);
border-color: #fb2c36;
outline-color: rgb(251 44 54);
}import SwiftUI
extension Color {
static let red500 = Color(red: 0.984, green: 0.173, blue: 0.212)
}import androidx.compose.ui.graphics.Color
val Red500 = Color(0xFFFB2C36)import 'package:flutter/material.dart';
const red500 = Color(0xFFFB2C36);<!-- res/values/colors.xml -->
<color name="red_500">#FB2C36</color>Frequently asked questions
- What is the hex code for Tailwind red-500?
- In Tailwind CSS v4, red-500 is oklch(63.7% 0.237 25.331), which converts to #FB2C36 (rgb(251, 44, 54)) in sRGB. In Tailwind v3 the same name was #EF4444.
- What is the difference between red-500 in Tailwind v3 and v4?
- v3 used the hex #EF4444; v4 redefined the palette in OKLCH as oklch(63.7% 0.237 25.331). In v3, red-500 was #EF4444. The v4 value is ΔE OK 2.9 away; v4 is more saturated.
- How do I use red-500 in plain CSS?
- Tailwind v4 defines every palette color as a theme variable, so in CSS you write var(--color-red-500). By default Tailwind only emits the variables your project uses; @theme static emits all of them.
- Can you use white text on red-500?
- White text on red-500 has a contrast ratio of 3.80:1, which passes AA only for large text (24 px, or 18.66 px bold, and up) under WCAG 2.2. Black text reaches 5.51:1 and passes AA for normal text but not AAA. In APCA terms that is Lc −69.1 for white and Lc 40.5 for black.
- Which CSS named color is closest to red-500?
- The closest is red (#FF0000) at ΔE OK 2.8, followed by orangered and crimson.
Last reviewed by Arielton Oberek.