Rose scale

An 11-step ramp from base #F43F5E, shaped in OKLCH for even perceptual movement.

Base
#f43f5e
Steps
11
Space
OKLCH

Rose from 50 to 950

Chroma tapers toward both ends so pale and dark stops remain visibly on-hue instead of clipping.

50

#ffeaeb

100

#ffd4d6

200

#ffb1b6

300

#ff8893

400

#ff6073

500

#eb3557

600

#ca003d

700

#a7002c

800

#81001e

900

#5e0015

950

#3c000a

Create the Rose scale in PHP

Use the exact catalog values when the published token ramp must remain stable between releases.

<?php

use PhpColor\Color\Palette\ColorPalette;

$scale = ColorPalette::fromHex([
    '#ffeaeb',
    '#ffd4d6',
    '#ffb1b6',
    '#ff8893',
    '#ff6073',
    '#eb3557',
    '#ca003d',
    '#a7002c',
    '#81001e',
    '#5e0015',
    '#3c000a',
]);
use PhpColor\Color\Palette\ColorPalette; $scale = ColorPalette::fromHex([ '#ffeaeb', '#ffd4d6', '#ffb1b6', '#ff8893', '#ff6073', '#eb3557', '#ca003d', '#a7002c', '#81001e', '#5e0015', '#3c000a', ]);

Use a specific Rose step

Scale palettes use zero-based positions; the published token name remains your application-level key.

<?php

use PhpColor\Color\Color;
use PhpColor\Color\Contrast\ColorContrast;

$color500 = $scale->get(5);
$contrast = ColorContrast::calculate($color500, Color::white());
use PhpColor\Color\Color; use PhpColor\Color\Contrast\ColorContrast; $color500 = $scale->get(5); $contrast = ColorContrast::calculate($color500, Color::white());

Format Rose as CSS variables

Drop these tokens into :root, then reference any step as var(--rose-500).

css
:root {
  --rose-50: #ffeaeb;
  --rose-100: #ffd4d6;
  --rose-200: #ffb1b6;
  --rose-300: #ff8893;
  --rose-400: #ff6073;
  --rose-500: #eb3557;
  --rose-600: #ca003d;
  --rose-700: #a7002c;
  --rose-800: #81001e;
  --rose-900: #5e0015;
  --rose-950: #3c000a;
}

Keep exploring

Continue from the Rose scale