Tailwind CSS v3.4 color family
Tailwind teal 11 shades, 50 to 950
Teal is one of the 22 color families in Tailwind CSS v3.4, with eleven shades from 50 to 950. Its 500 shade, #14B8A6, sits at OKLCH hue 182.5°. Lightness runs from 0.984 at 50 to 0.277 at 950.
- 500 shade
- #14B8A6
- OKLCH hue at 500
- 182.5°
- Body text on white
- 700 to 950
- Body text on black
- 50 to 600
Tailwind CSS 4.3.3
teal: current colors
11 shades with exact official OKLCH values. Use bg-teal-500, text-teal-500 or border-teal-500 in Tailwind. Wide-gamut colors are preserved; these are not the v3 hex values.
| Color | Exact OKLCH | CSS variable |
|---|---|---|
| teal-50 | oklch(98.4% 0.014 180.72) | --color-teal-50 |
| teal-100 | oklch(95.3% 0.051 180.801) | --color-teal-100 |
| teal-200 | oklch(91% 0.096 180.426) | --color-teal-200 |
| teal-300 | oklch(85.5% 0.138 181.071) | --color-teal-300 |
| teal-400 | oklch(77.7% 0.152 181.912) | --color-teal-400 |
| teal-500 | oklch(70.4% 0.14 182.503) | --color-teal-500 |
| teal-600 | oklch(60% 0.118 184.704) | --color-teal-600 |
| teal-700 | oklch(51.1% 0.096 186.391) | --color-teal-700 |
| teal-800 | oklch(43.7% 0.078 188.216) | --color-teal-800 |
| teal-900 | oklch(38.6% 0.063 188.416) | --color-teal-900 |
| teal-950 | oklch(27.7% 0.046 192.524) | --color-teal-950 |
Source: Tailwind CSS 4.3.3 theme.css (MIT). Values are pinned to this release. Older v3 reference values below are kept separately for existing projects.
Scale
Every shade, 50 to 950
Each shade has a page of its own. Under each, white and black text on it; a bold figure passes 4.5:1.
Values
Hex, RGB and OKLCH values
The Tailwind CSS v3.4 values, with the contrast of white and black text on each shade.
| Shade | HEX | RGB | OKLCH | White text | Black text |
|---|---|---|---|---|---|
| teal-50 | #F0FDFA | rgb(240, 253, 250) | oklch(0.984 0.014 180.7) | 1.04 | 20.13 |
| teal-100 | #CCFBF1 | rgb(204, 251, 241) | oklch(0.953 0.050 180.8) | 1.12 | 18.63 |
| teal-200 | #99F6E4 | rgb(153, 246, 228) | oklch(0.910 0.093 180.4) | 1.26 | 16.65 |
| teal-300 | #5EEAD4 | rgb(94, 234, 212) | oklch(0.855 0.125 181.1) | 1.47 | 14.19 |
| teal-400 | #2DD4BF | rgb(45, 212, 191) | oklch(0.785 0.133 181.9) | 1.86 | 11.28 |
| teal-500 | #14B8A6 | rgb(20, 184, 166) | oklch(0.704 0.123 182.5) | 2.48 | 8.43 |
| teal-600 | #0D9488 | rgb(13, 148, 136) | oklch(0.600 0.104 184.7) | 3.74 | 5.60 |
| teal-700 | #0F766E | rgb(15, 118, 110) | oklch(0.511 0.086 186.4) | 5.47 | 3.83 |
| teal-800 | #115E59 | rgb(17, 94, 89) | oklch(0.437 0.071 188.2) | 7.58 | 2.76 |
| teal-900 | #134E4A | rgb(19, 78, 74) | oklch(0.386 0.059 188.4) | 9.47 | 2.21 |
| teal-950 | #042F2E | rgb(4, 47, 46) | oklch(0.277 0.045 192.5) | 14.47 | 1.45 |
Legibility
Which shades pass on each other
Every shade as text on every other shade. 34 of 110 pairings pass 4.5:1 for body text, and 16 more pass 3:1 for large text.
| Text shade, then background shade | 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 950 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 50 | same shade | 1.08 | 1.20 | 1.41 | 1.78 | 2.38 | 3.59 | 5.24 | 7.27 | 9.08 | 13.87 |
| 100 | 1.08 | same shade | 1.11 | 1.31 | 1.65 | 2.20 | 3.32 | 4.85 | 6.73 | 8.40 | 12.84 |
| 200 | 1.20 | 1.11 | same shade | 1.17 | 1.47 | 1.97 | 2.96 | 4.34 | 6.01 | 7.51 | 11.47 |
| 300 | 1.41 | 1.31 | 1.17 | same shade | 1.25 | 1.68 | 2.53 | 3.69 | 5.12 | 6.40 | 9.78 |
| 400 | 1.78 | 1.65 | 1.47 | 1.25 | same shade | 1.33 | 2.01 | 2.94 | 4.07 | 5.09 | 7.77 |
| 500 | 2.38 | 2.20 | 1.97 | 1.68 | 1.33 | same shade | 1.50 | 2.19 | 3.04 | 3.80 | 5.81 |
| 600 | 3.59 | 3.32 | 2.96 | 2.53 | 2.01 | 1.50 | same shade | 1.46 | 2.02 | 2.53 | 3.86 |
| 700 | 5.24 | 4.85 | 4.34 | 3.69 | 2.94 | 2.19 | 1.46 | same shade | 1.38 | 1.73 | 2.64 |
| 800 | 7.27 | 6.73 | 6.01 | 5.12 | 4.07 | 3.04 | 2.02 | 1.38 | same shade | 1.24 | 1.90 |
| 900 | 9.08 | 8.40 | 7.51 | 6.40 | 5.09 | 3.80 | 2.53 | 1.73 | 1.24 | same shade | 1.52 |
| 950 | 13.87 | 12.84 | 11.47 | 9.78 | 7.77 | 5.81 | 3.86 | 2.64 | 1.90 | 1.52 | same shade |
Rows are the text shade, columns the background. A bold figure on a tinted cell passes 4.5:1 for body text; a plain one passes 3:1 for large text only; a faint one fails.
Color vision
The scale with color blindness
The same eleven shades as seen with each color vision deficiency. Lightness keeps a ramp in order even where its hue collapses.
Simulated with Machado et al. (2009) at full severity, in linear light.
What each type seesTypical vision
Closest neighbors: 800 and 900, ΔE2000 5.3
Protanopia
Closest neighbors: 50 and 100, ΔE2000 1.9
Deuteranopia
Closest neighbors: 50 and 100, ΔE2000 2.3
Tritanopia
Closest neighbors: 300 and 400, ΔE2000 5.0
Achromatopsia
Closest neighbors: 50 and 100, ΔE2000 1.8
Code
Design tokens
The whole family in six formats, ready to paste.
:root {
--color-teal-50: #f0fdfa;
--color-teal-100: #ccfbf1;
--color-teal-200: #99f6e4;
--color-teal-300: #5eead4;
--color-teal-400: #2dd4bf;
--color-teal-500: #14b8a6;
--color-teal-600: #0d9488;
--color-teal-700: #0f766e;
--color-teal-800: #115e59;
--color-teal-900: #134e4a;
--color-teal-950: #042f2e;
}
// tailwind.config.js — teal is built in; this pins the v3.4 values.
module.exports = {
theme: {
extend: {
colors: {
teal: {
50: '#f0fdfa',
100: '#ccfbf1',
200: '#99f6e4',
300: '#5eead4',
400: '#2dd4bf',
500: '#14b8a6',
600: '#0d9488',
700: '#0f766e',
800: '#115e59',
900: '#134e4a',
950: '#042f2e',
},
},
},
},
};
/* app.css — Tailwind CSS v4 */
@import "tailwindcss";
@theme {
/* v4 has its own teal; these pin the v3 values. */
--color-teal-50: oklch(0.984 0.014 180.7);
--color-teal-100: oklch(0.953 0.050 180.8);
--color-teal-200: oklch(0.910 0.093 180.4);
--color-teal-300: oklch(0.855 0.125 181.1);
--color-teal-400: oklch(0.785 0.133 181.9);
--color-teal-500: oklch(0.704 0.123 182.5);
--color-teal-600: oklch(0.600 0.104 184.7);
--color-teal-700: oklch(0.511 0.086 186.4);
--color-teal-800: oklch(0.437 0.071 188.2);
--color-teal-900: oklch(0.386 0.059 188.4);
--color-teal-950: oklch(0.277 0.045 192.5);
}
{
"color": {
"teal": {
"50": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.9412, 0.9922, 0.9804],
"hex": "#f0fdfa"
}
},
"100": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.8, 0.9843, 0.9451],
"hex": "#ccfbf1"
}
},
"200": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.6, 0.9647, 0.8941],
"hex": "#99f6e4"
}
},
"300": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.3686, 0.9176, 0.8314],
"hex": "#5eead4"
}
},
"400": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.1765, 0.8314, 0.749],
"hex": "#2dd4bf"
}
},
"500": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0784, 0.7216, 0.651],
"hex": "#14b8a6"
}
},
"600": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.051, 0.5804, 0.5333],
"hex": "#0d9488"
}
},
"700": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0588, 0.4627, 0.4314],
"hex": "#0f766e"
}
},
"800": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0667, 0.3686, 0.349],
"hex": "#115e59"
}
},
"900": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0745, 0.3059, 0.2902],
"hex": "#134e4a"
}
},
"950": {
"$type": "color",
"$value": {
"colorSpace": "srgb",
"components": [0.0157, 0.1843, 0.1804],
"hex": "#042f2e"
}
}
}
}
}
import SwiftUI
enum Palette {
static let teal50 = Color(.sRGB, red: 0.941, green: 0.992, blue: 0.980, opacity: 1)
static let teal100 = Color(.sRGB, red: 0.800, green: 0.984, blue: 0.945, opacity: 1)
static let teal200 = Color(.sRGB, red: 0.600, green: 0.965, blue: 0.894, opacity: 1)
static let teal300 = Color(.sRGB, red: 0.369, green: 0.918, blue: 0.831, opacity: 1)
static let teal400 = Color(.sRGB, red: 0.176, green: 0.831, blue: 0.749, opacity: 1)
static let teal500 = Color(.sRGB, red: 0.078, green: 0.722, blue: 0.651, opacity: 1)
static let teal600 = Color(.sRGB, red: 0.051, green: 0.580, blue: 0.533, opacity: 1)
static let teal700 = Color(.sRGB, red: 0.059, green: 0.463, blue: 0.431, opacity: 1)
static let teal800 = Color(.sRGB, red: 0.067, green: 0.369, blue: 0.349, opacity: 1)
static let teal900 = Color(.sRGB, red: 0.075, green: 0.306, blue: 0.290, opacity: 1)
static let teal950 = Color(.sRGB, red: 0.016, green: 0.184, blue: 0.180, opacity: 1)
}
import androidx.compose.ui.graphics.Color
object Palette {
val Teal50 = Color(0xFFF0FDFA)
val Teal100 = Color(0xFFCCFBF1)
val Teal200 = Color(0xFF99F6E4)
val Teal300 = Color(0xFF5EEAD4)
val Teal400 = Color(0xFF2DD4BF)
val Teal500 = Color(0xFF14B8A6)
val Teal600 = Color(0xFF0D9488)
val Teal700 = Color(0xFF0F766E)
val Teal800 = Color(0xFF115E59)
val Teal900 = Color(0xFF134E4A)
val Teal950 = Color(0xFF042F2E)
}
Families
Other Tailwind families
The rest of the Tailwind CSS v3.4 palette, in the order Tailwind lists it.