TwoColorPalette

Indigo and Pink color palette

nearest CSS color: indigo · 0

The lightness gap does most of the work here. Indigo at #4B0082 is deep and saturated, while pink at #EC4899 is bright and hot. They sit only 52 degrees apart on the wheel, both leaning into the purple-to-red side, so the pairing feels related rather than clashing. The measured is 3.67 to 1, which passes AA for large text but not body copy.

This is a popular gradient combination on the web, and it has a clear reason for being so common. Blending the two through their midpoint gives a deep pink-purple (#963190), which means the transition stays smooth and saturated the whole way through. No muddy middle.

In Tailwind, the pair maps cleanly to indigo-900 territory next to pink-500, so the full 50-900 scales give you plenty of room for backgrounds, hover states, and accents. It suits hero sections, marketing pages, and anything that wants energy without going neon.

See Indigo and Pink in use

Background ⇄ tap a mockup to swap colors
Get startedLearn more
App UI
Continue
Mobile screen
IndigoPink
Data dashboard
Build
better
Start free
Marketing hero
Logo lockup
IP
Poster / type

Indigo Tailwind scale (50-900)

Pink Tailwind scale (50-900)

Indigo to Pink blend

A continuous interpolation from Indigo to Pink, sampled into the 10 steps below. Tap any swatch to copy its hex.

Why Indigo and Pink blend best in OKLab

The same two colors blended three ways. This site uses OKLab, which keeps the blend smooth and evenly lit. The other two are shown so you can see what to avoid: sRGB darkens and muddies the middle, and HSL detours through colors that are not in your palette.

OKLabsmooth, evenly lit (used here)
sRGBmuddy, darker middle
HSLdetours through other hues

Accessibility

AA large ✓AA normal ✗AAA ✗

Do not place Indigo text on Pink (or the reverse) for body copy. For readable text, pair a dark scale step such as indigo-800 or pink-900 with a light one like pink-50.

Contrast pairing grid

Rows are Indigo steps, columns are Pink steps. Each mark is a Indigo step shown on a Pink step: a check means it clears WCAG AA for text (4.5:1). If you can read the mark, the pairing is legible.

50100200300400500600700800900
50
100
200
300
400
500
600
700
800
900

✓ passes AA ✗ fails AA

Copy for Tailwind

Tailwind v4 — @theme (paste into your CSS)
@theme {
  --color-indigo-50: #F3F0F8;
  --color-indigo-100: #E7E2F1;
  --color-indigo-200: #D4CAE5;
  --color-indigo-300: #B9A9D5;
  --color-indigo-400: #967CBD;
  --color-indigo-500: #4B0082;
  --color-indigo-600: #3C0069;
  --color-indigo-700: #2B004E;
  --color-indigo-800: #16002C;
  --color-indigo-900: #05000F;

  --color-pink-50: #FFF5F9;
  --color-pink-100: #FFEBF2;
  --color-pink-200: #FFDAE8;
  --color-pink-300: #FFC2D9;
  --color-pink-400: #FCA1C6;
  --color-pink-500: #EC4899;
  --color-pink-600: #C1397C;
  --color-pink-700: #92295D;
  --color-pink-800: #561435;
  --color-pink-900: #250514;
}
Tailwind v3 — tailwind.config.js
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        'indigo': {
        50: '#F3F0F8',
        100: '#E7E2F1',
        200: '#D4CAE5',
        300: '#B9A9D5',
        400: '#967CBD',
        500: '#4B0082',
        600: '#3C0069',
        700: '#2B004E',
        800: '#16002C',
        900: '#05000F',
        },
        'pink': {
        50: '#FFF5F9',
        100: '#FFEBF2',
        200: '#FFDAE8',
        300: '#FFC2D9',
        400: '#FCA1C6',
        500: '#EC4899',
        600: '#C1397C',
        700: '#92295D',
        800: '#561435',
        900: '#250514',
        },
      },
    },
  },
};
CSS variables
:root {
  --indigo-50: #F3F0F8;
  --indigo-100: #E7E2F1;
  --indigo-200: #D4CAE5;
  --indigo-300: #B9A9D5;
  --indigo-400: #967CBD;
  --indigo-500: #4B0082;
  --indigo-600: #3C0069;
  --indigo-700: #2B004E;
  --indigo-800: #16002C;
  --indigo-900: #05000F;

  --pink-50: #FFF5F9;
  --pink-100: #FFEBF2;
  --pink-200: #FFDAE8;
  --pink-300: #FFC2D9;
  --pink-400: #FCA1C6;
  --pink-500: #EC4899;
  --pink-600: #C1397C;
  --pink-700: #92295D;
  --pink-800: #561435;
  --pink-900: #250514;
}
SCSS variables
$indigo-50: #F3F0F8;
$indigo-100: #E7E2F1;
$indigo-200: #D4CAE5;
$indigo-300: #B9A9D5;
$indigo-400: #967CBD;
$indigo-500: #4B0082;
$indigo-600: #3C0069;
$indigo-700: #2B004E;
$indigo-800: #16002C;
$indigo-900: #05000F;

$pink-50: #FFF5F9;
$pink-100: #FFEBF2;
$pink-200: #FFDAE8;
$pink-300: #FFC2D9;
$pink-400: #FCA1C6;
$pink-500: #EC4899;
$pink-600: #C1397C;
$pink-700: #92295D;
$pink-800: #561435;
$pink-900: #250514;
JSON tokens
{
  "indigo": {
    "50": "#F3F0F8",
    "100": "#E7E2F1",
    "200": "#D4CAE5",
    "300": "#B9A9D5",
    "400": "#967CBD",
    "500": "#4B0082",
    "600": "#3C0069",
    "700": "#2B004E",
    "800": "#16002C",
    "900": "#05000F"
  },
  "pink": {
    "50": "#FFF5F9",
    "100": "#FFEBF2",
    "200": "#FFDAE8",
    "300": "#FFC2D9",
    "400": "#FCA1C6",
    "500": "#EC4899",
    "600": "#C1397C",
    "700": "#92295D",
    "800": "#561435",
    "900": "#250514"
  }
}

How we name colors

There is no single official authority for naming colors. We use the common, widely recognized name as the primary label for each color (here, Indigo and Pink); many common names are themselves W3C CSS named colors. For transparency we also show the nearest W3C CSS named color and the perceptual distance, ΔE, measured in OKLab. A small ΔE means the name is essentially exact; a larger one means it is the closest standard name rather than a perfect match.

Sources: W3C CSS Color Module Level 4 and the open color-name-list dataset, used to verify every color sits near a recognized name.