Tailwind CSS v3.4 color family

Tailwind zinc 11 shades, 50 to 950

Zinc is one of the 22 color families in Tailwind CSS v3.4, with eleven shades from 50 to 950. Its 500 shade, #71717A, is a near-neutral gray, with OKLCH chroma 0.014. Lightness runs from 0.985 at 50 to 0.141 at 950.

500 shade
#71717A
OKLCH hue at 500
—
Body text on white
500 to 950
Body text on black
50 to 400

Tailwind CSS 4.3.3

zinc: current colors

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

ColorExact OKLCHCSS variable
zinc-50oklch(98.5% 0 none)--color-zinc-50
zinc-100oklch(96.7% 0.001 286.375)--color-zinc-100
zinc-200oklch(92% 0.004 286.32)--color-zinc-200
zinc-300oklch(87.1% 0.006 286.286)--color-zinc-300
zinc-400oklch(70.5% 0.015 286.067)--color-zinc-400
zinc-500oklch(55.2% 0.016 285.938)--color-zinc-500
zinc-600oklch(44.2% 0.017 285.786)--color-zinc-600
zinc-700oklch(37% 0.013 285.805)--color-zinc-700
zinc-800oklch(27.4% 0.006 286.033)--color-zinc-800
zinc-900oklch(21% 0.006 285.885)--color-zinc-900
zinc-950oklch(14.1% 0.005 285.823)--color-zinc-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#FAFAFA
    White
    1.04
    Black
    20.11
  2. 100#F4F4F5
    White
    1.09
    Black
    19.10
  3. 200#E4E4E7
    White
    1.26
    Black
    16.55
  4. 300#D4D4D8
    White
    1.47
    Black
    14.20
  5. 400#A1A1AA
    White
    2.56
    Black
    8.19
  6. 500#71717A
    White
    4.83
    Black
    4.34
  7. 600#52525B
    White
    7.72
    Black
    2.71
  8. 700#3F3F46
    White
    10.44
    Black
    2.01
  9. 800#27272A
    White
    14.89
    Black
    1.40
  10. 900#18181B
    White
    17.71
    Black
    1.18
  11. 950#09090B
    White
    19.89
    Black
    1.05

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
zinc-50#FAFAFArgb(250, 250, 250)oklch(0.985 0.000 0)1.0420.11
zinc-100#F4F4F5rgb(244, 244, 245)oklch(0.967 0.001 286.4)1.0919.10
zinc-200#E4E4E7rgb(228, 228, 231)oklch(0.920 0.004 286.3)1.2616.55
zinc-300#D4D4D8rgb(212, 212, 216)oklch(0.871 0.005 286.3)1.4714.20
zinc-400#A1A1AArgb(161, 161, 170)oklch(0.712 0.013 286.1)2.568.19
zinc-500#71717Argb(113, 113, 122)oklch(0.552 0.014 285.9)4.834.34
zinc-600#52525Brgb(82, 82, 91)oklch(0.442 0.015 285.8)7.722.71
zinc-700#3F3F46rgb(63, 63, 70)oklch(0.370 0.012 285.8)10.442.01
zinc-800#27272Argb(39, 39, 42)oklch(0.274 0.005 286.0)14.891.40
zinc-900#18181Brgb(24, 24, 27)oklch(0.210 0.006 285.9)17.711.18
zinc-950#09090Brgb(9, 9, 11)oklch(0.141 0.004 285.8)19.891.05

Legibility

Which shades pass on each other

Every shade as text on every other shade. 48 of 110 pairings pass 4.5:1 for body text, and 16 more pass 3:1 for large text.

Text shade, then background shade50100200300400500600700800900950
50same shade1.051.211.412.454.637.4010.0014.2716.9719.06
1001.05same shade1.151.342.334.397.039.5013.5516.1118.10
2001.211.15same shade1.162.013.806.098.2311.7313.9615.67
3001.411.341.16same shade1.733.265.227.0610.0711.9813.46
4002.452.332.011.73same shade1.883.014.075.816.917.76
5004.634.393.803.261.88same shade1.592.163.083.664.11
6007.407.036.095.223.011.59same shade1.351.922.292.57
70010.009.508.237.064.072.161.35same shade1.421.691.90
80014.2713.5511.7310.075.813.081.921.42same shade1.181.33
90016.9716.1113.9611.986.913.662.291.691.18same shade1.12
95019.0618.1015.6713.467.764.112.571.901.331.12same 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: 50 and 100, ΔE2000 1.3

  • Protanopia

    Closest neighbors: 50 and 100, ΔE2000 1.3

  • Deuteranopia

    Closest neighbors: 50 and 100, ΔE2000 1.3

  • Tritanopia

    Closest neighbors: 50 and 100, ΔE2000 1.2

  • Achromatopsia

    Closest neighbors: 50 and 100, ΔE2000 1.2

Code

Design tokens

The whole family in six formats, ready to paste.

CSS custom properties

:root {
  --color-zinc-50: #fafafa;
  --color-zinc-100: #f4f4f5;
  --color-zinc-200: #e4e4e7;
  --color-zinc-300: #d4d4d8;
  --color-zinc-400: #a1a1aa;
  --color-zinc-500: #71717a;
  --color-zinc-600: #52525b;
  --color-zinc-700: #3f3f46;
  --color-zinc-800: #27272a;
  --color-zinc-900: #18181b;
  --color-zinc-950: #09090b;
}

Tailwind config

// tailwind.config.js — zinc is built in; this pins the v3.4 values.
module.exports = {
  theme: {
    extend: {
      colors: {
        zinc: {
          50: '#fafafa',
          100: '#f4f4f5',
          200: '#e4e4e7',
          300: '#d4d4d8',
          400: '#a1a1aa',
          500: '#71717a',
          600: '#52525b',
          700: '#3f3f46',
          800: '#27272a',
          900: '#18181b',
          950: '#09090b',
        },
      },
    },
  },
};

Tailwind v4 theme

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

@theme {
  /* v4 has its own zinc; these pin the v3 values. */
  --color-zinc-50: oklch(0.985 0.000 0);
  --color-zinc-100: oklch(0.967 0.001 286.4);
  --color-zinc-200: oklch(0.920 0.004 286.3);
  --color-zinc-300: oklch(0.871 0.005 286.3);
  --color-zinc-400: oklch(0.712 0.013 286.1);
  --color-zinc-500: oklch(0.552 0.014 285.9);
  --color-zinc-600: oklch(0.442 0.015 285.8);
  --color-zinc-700: oklch(0.370 0.012 285.8);
  --color-zinc-800: oklch(0.274 0.005 286.0);
  --color-zinc-900: oklch(0.210 0.006 285.9);
  --color-zinc-950: oklch(0.141 0.004 285.8);
}

Design tokens (W3C DTCG)

{
  "color": {
    "zinc": {
      "50": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9804, 0.9804, 0.9804],
          "hex": "#fafafa"
        }
      },
      "100": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9569, 0.9569, 0.9608],
          "hex": "#f4f4f5"
        }
      },
      "200": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.8941, 0.8941, 0.9059],
          "hex": "#e4e4e7"
        }
      },
      "300": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.8314, 0.8314, 0.8471],
          "hex": "#d4d4d8"
        }
      },
      "400": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.6314, 0.6314, 0.6667],
          "hex": "#a1a1aa"
        }
      },
      "500": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.4431, 0.4431, 0.4784],
          "hex": "#71717a"
        }
      },
      "600": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.3216, 0.3216, 0.3569],
          "hex": "#52525b"
        }
      },
      "700": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.2471, 0.2471, 0.2745],
          "hex": "#3f3f46"
        }
      },
      "800": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.1529, 0.1529, 0.1647],
          "hex": "#27272a"
        }
      },
      "900": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0941, 0.0941, 0.1059],
          "hex": "#18181b"
        }
      },
      "950": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.0353, 0.0353, 0.0431],
          "hex": "#09090b"
        }
      }
    }
  }
}

SwiftUI colors

import SwiftUI

enum Palette {
    static let zinc50 = Color(.sRGB, red: 0.980, green: 0.980, blue: 0.980, opacity: 1)
    static let zinc100 = Color(.sRGB, red: 0.957, green: 0.957, blue: 0.961, opacity: 1)
    static let zinc200 = Color(.sRGB, red: 0.894, green: 0.894, blue: 0.906, opacity: 1)
    static let zinc300 = Color(.sRGB, red: 0.831, green: 0.831, blue: 0.847, opacity: 1)
    static let zinc400 = Color(.sRGB, red: 0.631, green: 0.631, blue: 0.667, opacity: 1)
    static let zinc500 = Color(.sRGB, red: 0.443, green: 0.443, blue: 0.478, opacity: 1)
    static let zinc600 = Color(.sRGB, red: 0.322, green: 0.322, blue: 0.357, opacity: 1)
    static let zinc700 = Color(.sRGB, red: 0.247, green: 0.247, blue: 0.275, opacity: 1)
    static let zinc800 = Color(.sRGB, red: 0.153, green: 0.153, blue: 0.165, opacity: 1)
    static let zinc900 = Color(.sRGB, red: 0.094, green: 0.094, blue: 0.106, opacity: 1)
    static let zinc950 = Color(.sRGB, red: 0.035, green: 0.035, blue: 0.043, opacity: 1)
}

Jetpack Compose colors

import androidx.compose.ui.graphics.Color

object Palette {
    val Zinc50 = Color(0xFFFAFAFA)
    val Zinc100 = Color(0xFFF4F4F5)
    val Zinc200 = Color(0xFFE4E4E7)
    val Zinc300 = Color(0xFFD4D4D8)
    val Zinc400 = Color(0xFFA1A1AA)
    val Zinc500 = Color(0xFF71717A)
    val Zinc600 = Color(0xFF52525B)
    val Zinc700 = Color(0xFF3F3F46)
    val Zinc800 = Color(0xFF27272A)
    val Zinc900 = Color(0xFF18181B)
    val Zinc950 = Color(0xFF09090B)
}

Families

Other Tailwind families

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