Tailwind CSS v4 default palette
Tailwind emerald-50: #ECFDF5
In Tailwind CSS v4, emerald-50 is defined as --color-emerald-50: oklch(97.9% 0.021 166.113), which is #ECFDF5 in hex and rgb(236, 253, 245): an off-white with a green-cyan tint. In Tailwind v3, emerald-50 was #ECFDF5.
In OKLCH, emerald-50 has a lightness of 97.9%, chroma 0.021 and hue 166.1°.
The value fits inside sRGB, so the hex #ECFDF5 represents it without loss on any screen.
In v3, emerald-50 was #ECFDF5. The v4 value is ΔE OK 0.0 away, below the point where most people can tell them apart.
Tailwind emerald is a cooler, slightly bluer green than green, common for success states in finance and health products.
Color codes for emerald-50
| Tailwind v4 token | --color-emerald-50 |
|---|---|
| OKLCH (source value) | oklch(97.9% 0.021 166.113) |
| HEX | #ECFDF5 |
| RGB | rgb(236, 253, 245) |
| HSL | hsl(152, 81%, 96%) |
| HWB | hwb(152 93% 1%) |
| CMYK (naive, no ICC profile) | cmyk(7%, 0%, 3%, 1%) |
| Decimal | 15,531,509 |
| Tailwind v3 hex | #ECFDF5 |
| Utility classes | bg-emerald-50, text-emerald-50, border-emerald-50 |
Tailwind emerald scale
Contrast and accessibility
On emerald-50, black text has a contrast ratio of 19.93:1 and passes AAA at any text size; white text reaches 1.05: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 emerald-50 | 19.93:1 | Pass | Pass | Pass | Pass | 102.4 |
| White text on emerald-50 | 1.05:1 | Fail | Fail | Fail | Fail | 0.0 |
| Emerald-50 text on white | 1.05:1 | Fail | Fail | Fail | Fail | 0.0 |
| Emerald-50 text on black | 19.93:1 | Pass | Pass | Pass | Pass | −103.9 |
Tints and shades
Each step mixes var(--color-emerald-50) with white (tints) or black (shades) in gamma-encoded sRGB, the same result as color-mix(in srgb, var(--color-emerald-50), white 25%) in CSS.
Tints (mixed with white)
- 5%
#edfdf6 - 15%
#effdf7 - 25%
#f1fef8 - 35%
#f3fef9 - 45%
#f5fefa - 55%
#f6fefb - 65%
#f8fefc - 75%
#fafffd - 85%
#fcfffe - 95%
#feffff
Shades (mixed with black)
- 5%
#e0f0e9 - 15%
#c9d7d0 - 25%
#b1beb8 - 35%
#99a49f - 45%
#828b87 - 55%
#6a726e - 65%
#535956 - 75%
#3b3f3d - 85%
#232625 - 95%
#0c0d0c
Color harmonies
Rotating the hue in OKLCH while keeping lightness and chroma, emerald-50's complementary color is #FFF3FB (close to lavenderblush), its analogous colors are #F2FCEE and #E9FDFD, and its triadic partners are #F6F6FF and #FFF4ED. For text on top, black gives the higher contrast.
| Harmony | Rotation | Color |
|---|---|---|
| Complementary | +180° | #fff3fb |
| Analogous | −30°, +30° | #f2fcee#e9fdfd |
| Triadic | +120°, +240° | #f6f6ff#fff4ed |
| Split-complementary | +150°, +210° | #fef4ff#fff3f3 |
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 emerald-50 is close to neutral: its OKLCH chroma is only 0.021, so its temperature comes from context. The faint 152° hue gives it a slightly cool cast.
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-emerald-50 text-black">...</div>
<p class="text-emerald-50 border-emerald-50">...</p>.element {
color: var(--color-emerald-50);
background-color: oklch(97.9% 0.021 166.113);
border-color: #ecfdf5;
outline-color: rgb(236 253 245);
}import SwiftUI
extension Color {
static let emerald50 = Color(red: 0.925, green: 0.992, blue: 0.961)
}import androidx.compose.ui.graphics.Color
val Emerald50 = Color(0xFFECFDF5)import 'package:flutter/material.dart';
const emerald50 = Color(0xFFECFDF5);<!-- res/values/colors.xml -->
<color name="emerald_50">#ECFDF5</color>Frequently asked questions
- What is the hex code for Tailwind emerald-50?
- In Tailwind CSS v4, emerald-50 is oklch(97.9% 0.021 166.113), which converts to #ECFDF5 (rgb(236, 253, 245)) in sRGB. In Tailwind v3 the same name was #ECFDF5.
- What is the difference between emerald-50 in Tailwind v3 and v4?
- v3 used the hex #ECFDF5; v4 redefined the palette in OKLCH as oklch(97.9% 0.021 166.113). In v3, emerald-50 was #ECFDF5. The v4 value is ΔE OK 0.0 away, below the point where most people can tell them apart.
- How do I use emerald-50 in plain CSS?
- Tailwind v4 defines every palette color as a theme variable, so in CSS you write var(--color-emerald-50). By default Tailwind only emits the variables your project uses; @theme static emits all of them.
- Can you use white text on emerald-50?
- White text on emerald-50 has a contrast ratio of 1.05:1, which fails AA even for large text under WCAG 2.2. Black text reaches 19.93:1 and passes both AA and AAA. In APCA terms that is Lc 0.0 for white and Lc 102.4 for black.
- Which CSS named color is closest to emerald-50?
- The closest is honeydew (#F0FFF0) at ΔE OK 1.1, followed by azure and mintcream.
Last reviewed by Arielton Oberek.