Sapphire
A mid, cool indigo -- the dependable foundation of trustworthy interfaces.
Create Sapphire in PHP
Parse the catalog’s canonical value once, then keep the resulting color object throughout the rest of your code.
<?php
use PhpColor\Color\Color;
$sapphire = Color::parse('#3B82F6');
use PhpColor\Color\Color;
$sapphire = Color::parse('#3B82F6');
ColorInterface
$sapphire
#3b82f6 · oklch(0.6231 0.1880 259.8)
Build a Sapphire harmony
tetradic() keeps Sapphire and adds three partners at equal quarter-turns around the OKLCH hue wheel.
<?php
$harmony = $sapphire->tetradic();
foreach ($harmony as $color) {
echo $color->toHex().PHP_EOL;
}
$harmony = $sapphire->tetradic();
foreach ($harmony as $color) {
echo $color->toHex().PHP_EOL;
}
- 0
#3b82f6 - 1
#d54b97 - 2
#c17400 - 3
#00a875
Generate a Sapphire scale
Keep the original hue and chroma, then vary OKLCH lightness to produce perceptually ordered steps.
<?php
$oklch = $sapphire->to('oklch');
foreach ([0.97, 0.92, 0.84, 0.74, 0.66, 0.58, 0.48, 0.40, 0.32, 0.24, 0.16] as $lightness) {
$step = $oklch->withChannel('l', $lightness);
}
$oklch = $sapphire->to('oklch');
foreach ([0.97, 0.92, 0.84, 0.74, 0.66, 0.58, 0.48, 0.40, 0.32, 0.24, 0.16] as $lightness) {
$step = $oklch->withChannel('l', $lightness);
}
50
100
200
300
400
500
600
700
800
900
950
Format Sapphire for the web
The same object can emit a compact Hex value, an sRGB CSS function, or its perceptual OKLCH coordinates.
<?php
$hex = $sapphire->toHex();
$rgb = $sapphire->toCss('srgb');
$oklch = $sapphire->to('oklch')->toCss();
$hex = $sapphire->toHex();
$rgb = $sapphire->toCss('srgb');
$oklch = $sapphire->to('oklch')->toCss();
- hex
#3b82f6- rgb
rgb(59 130 246)- oklch
oklch(0.623083 0.188015 259.815)