Tailwind CSS v3.4 color family

Tailwind purple 11 shades, 50 to 950

Purple is one of the 22 color families in Tailwind CSS v3.4, with eleven shades from 50 to 950. Its 500 shade, #A855F7, sits at OKLCH hue 303.9°. Lightness runs from 0.977 at 50 to 0.291 at 950.

500 shade
#A855F7
OKLCH hue at 500
303.9°
Body text on white
600 to 950
Body text on black
50 to 500

Tailwind CSS 4.3.3

purple: current colors

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

ColorExact OKLCHCSS variable
purple-50oklch(97.7% 0.014 308.299)--color-purple-50
purple-100oklch(94.6% 0.033 307.174)--color-purple-100
purple-200oklch(90.2% 0.063 306.703)--color-purple-200
purple-300oklch(82.7% 0.119 306.383)--color-purple-300
purple-400oklch(71.4% 0.203 305.504)--color-purple-400
purple-500oklch(62.7% 0.265 303.9)--color-purple-500
purple-600oklch(55.8% 0.288 302.321)--color-purple-600
purple-700oklch(49.6% 0.265 301.924)--color-purple-700
purple-800oklch(43.8% 0.218 303.724)--color-purple-800
purple-900oklch(38.1% 0.176 304.987)--color-purple-900
purple-950oklch(29.1% 0.149 302.717)--color-purple-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#FAF5FF
    White
    1.07
    Black
    19.56
  2. 100#F3E8FF
    White
    1.17
    Black
    17.79
  3. 200#E9D5FF
    White
    1.36
    Black
    15.42
  4. 300#D8B4FE
    White
    1.76
    Black
    11.87
  5. 400#C084FC
    White
    2.64
    Black
    7.94
  6. 500#A855F7
    White
    3.95
    Black
    5.30
  7. 600#9333EA
    White
    5.38
    Black
    3.90
  8. 700#7E22CE
    White
    6.98
    Black
    3.00
  9. 800#6B21A8
    White
    8.72
    Black
    2.40
  10. 900#581C87
    White
    10.87
    Black
    1.93
  11. 950#3B0764
    White
    14.99
    Black
    1.40

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
purple-50#FAF5FFrgb(250, 245, 255)oklch(0.977 0.014 308.3)1.0719.56
purple-100#F3E8FFrgb(243, 232, 255)oklch(0.946 0.033 307.2)1.1717.79
purple-200#E9D5FFrgb(233, 213, 255)oklch(0.902 0.060 306.7)1.3615.42
purple-300#D8B4FErgb(216, 180, 254)oklch(0.827 0.108 306.4)1.7611.87
purple-400#C084FCrgb(192, 132, 252)oklch(0.722 0.177 305.5)2.647.94
purple-500#A855F7rgb(168, 85, 247)oklch(0.627 0.233 303.9)3.955.30
purple-600#9333EArgb(147, 51, 234)oklch(0.558 0.252 302.3)5.383.90
purple-700#7E22CErgb(126, 34, 206)oklch(0.496 0.237 301.9)6.983.00
purple-800#6B21A8rgb(107, 33, 168)oklch(0.438 0.198 303.7)8.722.40
purple-900#581C87rgb(88, 28, 135)oklch(0.381 0.166 305.0)10.871.93
purple-950#3B0764rgb(59, 7, 100)oklch(0.291 0.143 302.7)14.991.40

Legibility

Which shades pass on each other

Every shade as text on every other shade. 36 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.091.261.642.463.685.016.508.1210.1313.97
1001.09same shade1.151.492.233.354.565.917.399.2112.70
2001.261.15same shade1.291.942.903.955.126.407.9811.01
3001.641.491.29same shade1.492.233.043.954.936.158.48
4002.462.231.941.49same shade1.492.032.643.304.115.67
5003.683.352.902.231.49same shade1.361.762.202.743.79
6005.014.563.953.042.031.36same shade1.291.622.022.78
7006.505.915.123.952.641.761.29same shade1.241.552.14
8008.127.396.404.933.302.201.621.24same shade1.241.71
90010.139.217.986.154.112.742.021.551.24same shade1.37
95013.9712.7011.018.485.673.792.782.141.711.37same 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.7

  • Protanopia

    Closest neighbors: 50 and 100, ΔE2000 5.0

  • Deuteranopia

    Closest neighbors: 50 and 100, ΔE2000 4.7

  • Tritanopia

    Closest neighbors: 50 and 100, ΔE2000 3.1

  • Achromatopsia

    Closest neighbors: 50 and 100, ΔE2000 2.3

Code

Design tokens

The whole family in six formats, ready to paste.

CSS custom properties

:root {
  --color-purple-50: #faf5ff;
  --color-purple-100: #f3e8ff;
  --color-purple-200: #e9d5ff;
  --color-purple-300: #d8b4fe;
  --color-purple-400: #c084fc;
  --color-purple-500: #a855f7;
  --color-purple-600: #9333ea;
  --color-purple-700: #7e22ce;
  --color-purple-800: #6b21a8;
  --color-purple-900: #581c87;
  --color-purple-950: #3b0764;
}

Tailwind config

// tailwind.config.js — purple is built in; this pins the v3.4 values.
module.exports = {
  theme: {
    extend: {
      colors: {
        purple: {
          50: '#faf5ff',
          100: '#f3e8ff',
          200: '#e9d5ff',
          300: '#d8b4fe',
          400: '#c084fc',
          500: '#a855f7',
          600: '#9333ea',
          700: '#7e22ce',
          800: '#6b21a8',
          900: '#581c87',
          950: '#3b0764',
        },
      },
    },
  },
};

Tailwind v4 theme

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

@theme {
  /* v4 has its own purple; these pin the v3 values. */
  --color-purple-50: oklch(0.977 0.014 308.3);
  --color-purple-100: oklch(0.946 0.033 307.2);
  --color-purple-200: oklch(0.902 0.060 306.7);
  --color-purple-300: oklch(0.827 0.108 306.4);
  --color-purple-400: oklch(0.722 0.177 305.5);
  --color-purple-500: oklch(0.627 0.233 303.9);
  --color-purple-600: oklch(0.558 0.252 302.3);
  --color-purple-700: oklch(0.496 0.237 301.9);
  --color-purple-800: oklch(0.438 0.198 303.7);
  --color-purple-900: oklch(0.381 0.166 305.0);
  --color-purple-950: oklch(0.291 0.143 302.7);
}

Design tokens (W3C DTCG)

{
  "color": {
    "purple": {
      "50": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9804, 0.9608, 1],
          "hex": "#faf5ff"
        }
      },
      "100": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9529, 0.9098, 1],
          "hex": "#f3e8ff"
        }
      },
      "200": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.9137, 0.8353, 1],
          "hex": "#e9d5ff"
        }
      },
      "300": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.8471, 0.7059, 0.9961],
          "hex": "#d8b4fe"
        }
      },
      "400": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.7529, 0.5176, 0.9882],
          "hex": "#c084fc"
        }
      },
      "500": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.6588, 0.3333, 0.9686],
          "hex": "#a855f7"
        }
      },
      "600": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.5765, 0.2, 0.9176],
          "hex": "#9333ea"
        }
      },
      "700": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.4941, 0.1333, 0.8078],
          "hex": "#7e22ce"
        }
      },
      "800": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.4196, 0.1294, 0.6588],
          "hex": "#6b21a8"
        }
      },
      "900": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.3451, 0.1098, 0.5294],
          "hex": "#581c87"
        }
      },
      "950": {
        "$type": "color",
        "$value": {
          "colorSpace": "srgb",
          "components": [0.2314, 0.0275, 0.3922],
          "hex": "#3b0764"
        }
      }
    }
  }
}

SwiftUI colors

import SwiftUI

enum Palette {
    static let purple50 = Color(.sRGB, red: 0.980, green: 0.961, blue: 1.000, opacity: 1)
    static let purple100 = Color(.sRGB, red: 0.953, green: 0.910, blue: 1.000, opacity: 1)
    static let purple200 = Color(.sRGB, red: 0.914, green: 0.835, blue: 1.000, opacity: 1)
    static let purple300 = Color(.sRGB, red: 0.847, green: 0.706, blue: 0.996, opacity: 1)
    static let purple400 = Color(.sRGB, red: 0.753, green: 0.518, blue: 0.988, opacity: 1)
    static let purple500 = Color(.sRGB, red: 0.659, green: 0.333, blue: 0.969, opacity: 1)
    static let purple600 = Color(.sRGB, red: 0.576, green: 0.200, blue: 0.918, opacity: 1)
    static let purple700 = Color(.sRGB, red: 0.494, green: 0.133, blue: 0.808, opacity: 1)
    static let purple800 = Color(.sRGB, red: 0.420, green: 0.129, blue: 0.659, opacity: 1)
    static let purple900 = Color(.sRGB, red: 0.345, green: 0.110, blue: 0.529, opacity: 1)
    static let purple950 = Color(.sRGB, red: 0.231, green: 0.027, blue: 0.392, opacity: 1)
}

Jetpack Compose colors

import androidx.compose.ui.graphics.Color

object Palette {
    val Purple50 = Color(0xFFFAF5FF)
    val Purple100 = Color(0xFFF3E8FF)
    val Purple200 = Color(0xFFE9D5FF)
    val Purple300 = Color(0xFFD8B4FE)
    val Purple400 = Color(0xFFC084FC)
    val Purple500 = Color(0xFFA855F7)
    val Purple600 = Color(0xFF9333EA)
    val Purple700 = Color(0xFF7E22CE)
    val Purple800 = Color(0xFF6B21A8)
    val Purple900 = Color(0xFF581C87)
    val Purple950 = Color(0xFF3B0764)
}

Families

Other Tailwind families

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