Tailwind CSS v4 default palette
Tailwind red-800: #9F0712
In Tailwind CSS v4, red-800 is defined as --color-red-800: oklch(44.4% 0.177 26.899), which is #9F0712 in hex and rgb(159, 7, 18): a dark, vivid red. In Tailwind v3, red-800 was #991B1B.
In OKLCH, red-800 has a lightness of 44.4%, chroma 0.177 and hue 26.9°.
The value fits inside sRGB, so the hex #9F0712 represents it without loss on any screen.
In v3, red-800 was #991B1B. The v4 value is ΔE OK 1.6 away, below the point where most people can tell them apart; 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-800
| Tailwind v4 token | --color-red-800 |
|---|---|
| OKLCH (source value) | oklch(44.4% 0.177 26.899) |
| HEX | #9F0712 |
| RGB | rgb(159, 7, 18) |
| HSL | hsl(356, 92%, 33%) |
| HWB | hwb(356 3% 38%) |
| CMYK (naive, no ICC profile) | cmyk(0%, 96%, 89%, 38%) |
| Decimal | 10,422,034 |
| Tailwind v3 hex | #991B1B |
| Utility classes | bg-red-800, text-red-800, border-red-800 |
Tailwind red scale
Contrast and accessibility
On red-800, white text has a contrast ratio of 8.35:1 and passes AAA at any text size; black text reaches 2.51: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-800 | 2.51:1 | Fail | Fail | Fail | Fail | 17.5 |
| White text on red-800 | 8.35:1 | Pass | Pass | Pass | Pass | −91.3 |
| Red-800 text on white | 8.35:1 | Pass | Pass | Pass | Pass | 86.5 |
| Red-800 text on black | 2.51:1 | Fail | Fail | Fail | Fail | −15.6 |
Tints and shades
Each step mixes var(--color-red-800) with white (tints) or black (shades) in gamma-encoded sRGB, the same result as color-mix(in srgb, var(--color-red-800), white 25%) in CSS.
Tints (mixed with white)
- 5%
#a4131e - 15%
#ad2c36 - 25%
#b7454d - 35%
#c15e65 - 45%
#ca777d - 55%
#d48f94 - 65%
#dda8ac - 75%
#e7c1c4 - 85%
#f1dadb - 95%
#faf3f3
Shades (mixed with black)
- 5%
#970711 - 15%
#87060f - 25%
#77050e - 35%
#67050c - 45%
#57040a - 55%
#480308 - 65%
#380206 - 75%
#280205 - 85%
#180103 - 95%
#080001
Color harmonies
Rotating the hue in OKLCH while keeping lightness and chroma, red-800's complementary color is #00616E (close to darkslategray), its analogous colors are #970855 and #863B00, and its triadic partners are #006A03 and #2846B4. For text on top, white gives the higher contrast.
| Harmony | Rotation | Color |
|---|---|---|
| Complementary | +180° | #00616e |
| Analogous | −30°, +30° | #970855#863b00 |
| Triadic | +120°, +240° | #006a03#2846b4 |
| Split-complementary | +150°, +210° | #006552#005b8e |
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-800 is a warm color: its hue is 356° 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-800 text-white">...</div>
<p class="text-red-800 border-red-800">...</p>.element {
color: var(--color-red-800);
background-color: oklch(44.4% 0.177 26.899);
border-color: #9f0712;
outline-color: rgb(159 7 18);
}import SwiftUI
extension Color {
static let red800 = Color(red: 0.624, green: 0.027, blue: 0.071)
}import androidx.compose.ui.graphics.Color
val Red800 = Color(0xFF9F0712)import 'package:flutter/material.dart';
const red800 = Color(0xFF9F0712);<!-- res/values/colors.xml -->
<color name="red_800">#9F0712</color>Frequently asked questions
- What is the hex code for Tailwind red-800?
- In Tailwind CSS v4, red-800 is oklch(44.4% 0.177 26.899), which converts to #9F0712 (rgb(159, 7, 18)) in sRGB. In Tailwind v3 the same name was #991B1B.
- What is the difference between red-800 in Tailwind v3 and v4?
- v3 used the hex #991B1B; v4 redefined the palette in OKLCH as oklch(44.4% 0.177 26.899). In v3, red-800 was #991B1B. The v4 value is ΔE OK 1.6 away, below the point where most people can tell them apart; v4 is more saturated.
- How do I use red-800 in plain CSS?
- Tailwind v4 defines every palette color as a theme variable, so in CSS you write var(--color-red-800). By default Tailwind only emits the variables your project uses; @theme static emits all of them.
- Can you use white text on red-800?
- White text on red-800 has a contrast ratio of 8.35:1, which passes both AA and AAA under WCAG 2.2. Black text reaches 2.51:1 and fails AA even for large text. In APCA terms that is Lc −91.3 for white and Lc 17.5 for black.
- Which CSS named color is closest to red-800?
- The closest is brown (#A52A2A) at ΔE OK 4.1, followed by darkred and firebrick.
Last reviewed by Arielton Oberek.