Tailwind CSS v3.4 color family

Tailwind cyan 11 shades, 50 to 950

Cyan is one of the 22 color families in Tailwind CSS v3.4, with eleven shades from 50 to 950. Its 500 shade, #06B6D4, sits at OKLCH hue 215.2°. Lightness runs from 0.984 at 50 to 0.302 at 950.

500 shade
#06B6D4
OKLCH hue at 500
215.2°
Body text on white
700 to 950
Body text on black
50 to 600

Tailwind CSS 4.3.3

cyan: current colors

11 shades with exact official OKLCH values. Use bg-cyan-500, text-cyan-500 or border-cyan-500 in Tailwind. Wide-gamut colors are preserved; these are not the v3 hex values.

ColorExact OKLCHCSS variable
cyan-50oklch(98.4% 0.019 200.873)--color-cyan-50
cyan-100oklch(95.6% 0.045 203.388)--color-cyan-100
cyan-200oklch(91.7% 0.08 205.041)--color-cyan-200
cyan-300oklch(86.5% 0.127 207.078)--color-cyan-300
cyan-400oklch(78.9% 0.154 211.53)--color-cyan-400
cyan-500oklch(71.5% 0.143 215.221)--color-cyan-500
cyan-600oklch(60.9% 0.126 221.723)--color-cyan-600
cyan-700oklch(52% 0.105 223.128)--color-cyan-700
cyan-800oklch(45% 0.085 224.283)--color-cyan-800
cyan-900oklch(39.8% 0.07 227.392)--color-cyan-900
cyan-950oklch(30.2% 0.056 229.695)--color-cyan-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.

  1. 50#ECFEFF
    White
    1.04
    Black
    20.18
  2. 100#CFFAFE
    White
    1.11
    Black
    18.75
  3. 200#A5F3FC
    White
    1.24
    Black
    16.82
  4. 300#67E8F9
    White
    1.44
    Black
    14.48
  5. 400#22D3EE
    White
    1.80
    Black
    11.62
  6. 500#06B6D4
    White
    2.42
    Black
    8.64
  7. 600#0891B2
    White
    3.68
    Black
    5.70
  8. 700#0E7490
    White
    5.35
    Black
    3.91
  9. 800#155E75
    White
    7.26
    Black
    2.88
  10. 900#164E63
    White
    9.11
    Black
    2.30
  11. 950#083344
    White
    13.39
    Black
    1.56

Values

Hex, RGB and OKLCH values

The Tailwind CSS v3.4 values, with the contrast of white and black text on each shade.

ShadeHEXRGBOKLCHWhite textBlack text
cyan-50#ECFEFFrgb(236, 254, 255)oklch(0.984 0.019 200.9)1.0420.18
cyan-100#CFFAFErgb(207, 250, 254)oklch(0.956 0.044 203.4)1.1118.75
cyan-200#A5F3FCrgb(165, 243, 252)oklch(0.917 0.077 205.0)1.2416.82
cyan-300#67E8F9rgb(103, 232, 249)oklch(0.865 0.115 207.1)1.4414.48
cyan-400#22D3EErgb(34, 211, 238)oklch(0.797 0.134 211.5)1.8011.62
cyan-500#06B6D4rgb(6, 182, 212)oklch(0.715 0.126 215.2)2.428.64
cyan-600#0891B2rgb(8, 145, 178)oklch(0.609 0.111 221.7)3.685.70
cyan-700#0E7490rgb(14, 116, 144)oklch(0.520 0.094 223.1)5.353.91
cyan-800#155E75rgb(21, 94, 117)oklch(0.450 0.077 224.3)7.262.88
cyan-900#164E63rgb(22, 78, 99)oklch(0.398 0.066 227.4)9.112.30
cyan-950#083344rgb(8, 51, 68)oklch(0.302 0.054 229.7)13.391.56

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 14 more pass 3:1 for large text.

Text shade, then background shade50100200300400500600700800900950
50same shade1.071.191.391.732.333.535.156.988.7612.88
1001.07same shade1.111.291.612.163.284.786.498.1411.96
2001.191.11same shade1.161.441.942.954.295.827.3010.73
3001.391.291.16same shade1.241.672.543.695.016.289.24
4001.731.611.441.24same shade1.342.032.964.025.047.41
5002.332.161.941.671.34same shade1.512.202.993.755.51
6003.533.282.952.542.031.51same shade1.451.972.473.63
7005.154.784.293.692.962.201.45same shade1.351.702.50
8006.986.495.825.014.022.991.971.35same shade1.251.84
9008.768.147.306.285.043.752.471.701.25same shade1.47
95012.8811.9610.739.247.415.513.632.501.841.47same 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 sees
  • Typical vision

    Closest neighbors: 800 and 900, ΔE2000 5.4

  • Protanopia

    Closest neighbors: 50 and 100, ΔE2000 2.6

  • Deuteranopia

    Closest neighbors: 50 and 100, ΔE2000 4.4

  • Tritanopia

    Closest neighbors: 300 and 400, ΔE2000 4.2

  • Achromatopsia

    Closest neighbors: 50 and 100, ΔE2000 1.6

Code

Design tokens

The whole family in six formats, ready to paste.

CSS custom properties

:root {
  --color-cyan-50: #ecfeff;
  --color-cyan-100: #cffafe;
  --color-cyan-200: #a5f3fc;
  --color-cyan-300: #67e8f9;
  --color-cyan-400: #22d3ee;
  --color-cyan-500: #06b6d4;
  --color-cyan-600: #0891b2;
  --color-cyan-700: #0e7490;
  --color-cyan-800: #155e75;
  --color-cyan-900: #164e63;
  --color-cyan-950: #083344;
}

Tailwind config

// tailwind.config.js — cyan is built in; this pins the v3.4 values.
module.exports = {
  theme: {
    extend: {
      colors: {
        cyan: {
          50: '#ecfeff',
          100: '#cffafe',
          200: '#a5f3fc',
          300: '#67e8f9',
          400: '#22d3ee',
          500: '#06b6d4',
          600: '#0891b2',
          700: '#0e7490',
          800: '#155e75',
          900: '#164e63',
          950: '#083344',
        },
      },
    },
  },
};

Tailwind v4 theme

/* app.css — Tailwind CSS v4 */
@import "tailwindcss";

@theme {
  /* v4 has its own cyan; these pin the v3 values. */
  --color-cyan-50: oklch(0.984 0.019 200.9);
  --color-cyan-100: oklch(0.956 0.044 203.4);
  --color-cyan-200: oklch(0.917 0.077 205.0);
  --color-cyan-300: oklch(0.865 0.115 207.1);
  --color-cyan-400: oklch(0.797 0.134 211.5);
  --color-cyan-500: oklch(0.715 0.126 215.2);
  --color-cyan-600: oklch(0.609 0.111 221.7);
  --color-cyan-700: oklch(0.520 0.094 223.1);
  --color-cyan-800: oklch(0.450 0.077 224.3);
  --color-cyan-900: oklch(0.398 0.066 227.4);
  --color-cyan-950: oklch(0.302 0.054 229.7);
}

Design tokens (W3C DTCG)

{
  "color": {
    "cyan": {
      "50": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9255, 0.9961, 1],
          "hex": "#ecfeff"
        }
      },
      "100": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.8118, 0.9804, 0.9961],
          "hex": "#cffafe"
        }
      },
      "200": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.6471, 0.9529, 0.9882],
          "hex": "#a5f3fc"
        }
      },
      "300": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.4039, 0.9098, 0.9765],
          "hex": "#67e8f9"
        }
      },
      "400": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.1333, 0.8275, 0.9333],
          "hex": "#22d3ee"
        }
      },
      "500": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0235, 0.7137, 0.8314],
          "hex": "#06b6d4"
        }
      },
      "600": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0314, 0.5686, 0.698],
          "hex": "#0891b2"
        }
      },
      "700": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0549, 0.4549, 0.5647],
          "hex": "#0e7490"
        }
      },
      "800": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0824, 0.3686, 0.4588],
          "hex": "#155e75"
        }
      },
      "900": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0863, 0.3059, 0.3882],
          "hex": "#164e63"
        }
      },
      "950": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0314, 0.2, 0.2667],
          "hex": "#083344"
        }
      }
    }
  }
}

SwiftUI colors

import SwiftUI

enum Palette {
    static let cyan50 = Color(.sRGB, red: 0.925, green: 0.996, blue: 1.000, opacity: 1)
    static let cyan100 = Color(.sRGB, red: 0.812, green: 0.980, blue: 0.996, opacity: 1)
    static let cyan200 = Color(.sRGB, red: 0.647, green: 0.953, blue: 0.988, opacity: 1)
    static let cyan300 = Color(.sRGB, red: 0.404, green: 0.910, blue: 0.976, opacity: 1)
    static let cyan400 = Color(.sRGB, red: 0.133, green: 0.827, blue: 0.933, opacity: 1)
    static let cyan500 = Color(.sRGB, red: 0.024, green: 0.714, blue: 0.831, opacity: 1)
    static let cyan600 = Color(.sRGB, red: 0.031, green: 0.569, blue: 0.698, opacity: 1)
    static let cyan700 = Color(.sRGB, red: 0.055, green: 0.455, blue: 0.565, opacity: 1)
    static let cyan800 = Color(.sRGB, red: 0.082, green: 0.369, blue: 0.459, opacity: 1)
    static let cyan900 = Color(.sRGB, red: 0.086, green: 0.306, blue: 0.388, opacity: 1)
    static let cyan950 = Color(.sRGB, red: 0.031, green: 0.200, blue: 0.267, opacity: 1)
}

Jetpack Compose colors

import androidx.compose.ui.graphics.Color

object Palette {
    val Cyan50 = Color(0xFFECFEFF)
    val Cyan100 = Color(0xFFCFFAFE)
    val Cyan200 = Color(0xFFA5F3FC)
    val Cyan300 = Color(0xFF67E8F9)
    val Cyan400 = Color(0xFF22D3EE)
    val Cyan500 = Color(0xFF06B6D4)
    val Cyan600 = Color(0xFF0891B2)
    val Cyan700 = Color(0xFF0E7490)
    val Cyan800 = Color(0xFF155E75)
    val Cyan900 = Color(0xFF164E63)
    val Cyan950 = Color(0xFF083344)
}

Families

Other Tailwind families

The rest of the Tailwind CSS v3.4 palette, in the order Tailwind lists it.