Emerald scale

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

Base
#10b981
Steps
11
Space
OKLCH

Emerald from 50 to 950

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

50

#e4fcef

100

#caf3de

200

#9fe2c1

300

#6ecea2

400

#38b885

500

#00a16b

600

#008551

700

#006b3d

800

#00512c

900

#003b20

950

#002311

Create the Emerald 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([
    '#e4fcef',
    '#caf3de',
    '#9fe2c1',
    '#6ecea2',
    '#38b885',
    '#00a16b',
    '#008551',
    '#006b3d',
    '#00512c',
    '#003b20',
    '#002311',
]);
use PhpColor\Color\Palette\ColorPalette; $scale = ColorPalette::fromHex([ '#e4fcef', '#caf3de', '#9fe2c1', '#6ecea2', '#38b885', '#00a16b', '#008551', '#006b3d', '#00512c', '#003b20', '#002311', ]);

Use a specific Emerald 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 Emerald as CSS variables

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

css
:root {
  --emerald-50: #e4fcef;
  --emerald-100: #caf3de;
  --emerald-200: #9fe2c1;
  --emerald-300: #6ecea2;
  --emerald-400: #38b885;
  --emerald-500: #00a16b;
  --emerald-600: #008551;
  --emerald-700: #006b3d;
  --emerald-800: #00512c;
  --emerald-900: #003b20;
  --emerald-950: #002311;
}

Keep exploring

Continue from the Emerald scale