Color Comparison

Measure contrast, perceptual similarity, and distinguishability across vision profiles.

Measure WCAG contrast

Calculate an exact WCAG ratio and test it against the selected text-size and conformance threshold.

Explore WCAG contrast
4.22:1AA normal fail

Measure APCA contrast

Measure signed APCA lightness contrast while keeping foreground and background polarity explicit.

Explore APCA contrast
+98.13 Lc-101.21 Lc

Repair text contrast

Adjust a failing foreground, serialize it, and verify the exact color the application will use.

Explore Contrast repair
Before3.98:1
After4.58:1

Solve alpha for contrast

Find the minimum foreground alpha for a target ratio, then verify the serialized translucent color.

Explore Alpha solving
alpha 0.5407294.61:1

Compare color vision profiles

Compare a complete semantic palette across simulated vision profiles before relying on hue alone.

Explore Vision simulation

Classify colors as light or dark

Apply PHPColor's relative-luminance threshold without turning the result into a contrast verdict.

Explore Light or dark
<?php

use PhpColor\Color\Color;

$color = Color::parse('#767676');
$classification = $color->isLight() ? 'light' : 'dark';
use PhpColor\Color\Color; $color = Color::parse('#767676'); $classification = $color->isLight() ? 'light' : 'dark';

Classify colors as warm or cool

Classify a hue from PHPColor's signed OKLCH temperature scale and keep neutral zero explicit.

Explore Warm or cool
<?php

use PhpColor\Color\OklchColor;

$color = new OklchColor(0.7, 0.15, 30.0);
$score = $color->temperature();
$isWarm = $color->isHot();
use PhpColor\Color\OklchColor; $color = new OklchColor(0.7, 0.15, 30.0); $score = $color->temperature(); $isWarm = $color->isHot();

Inspect color transparency

Distinguish fully transparent, partially transparent, and fully opaque alpha states.

Explore Transparency
<?php

use PhpColor\Color\Color;

$color = Color::parse('#7c3aed73');
$alpha = $color->getAlpha();
$isPartial = !$color->isTransparent() && !$color->isOpaque();
use PhpColor\Color\Color; $color = Color::parse('#7c3aed73'); $alpha = $color->getAlpha(); $isPartial = !$color->isTransparent() && !$color->isOpaque();

Compare exact color equality

Test whether two colors have the same space, alpha, and serialized channel representation.

Explore Equality
<?php

use PhpColor\Color\Color;

$hex = Color::parse('#ff0000');
$rgb = Color::parse('rgb(255 0 0)');
$sameRepresentation = $hex->equals($rgb);
use PhpColor\Color\Color; $hex = Color::parse('#ff0000'); $rgb = Color::parse('rgb(255 0 0)'); $sameRepresentation = $hex->equals($rgb);

Measure perceptual color distance

Calculate a named Lab-based color-difference formula and keep its algorithm explicit.

Explore Color distance
<?php

use PhpColor\Color\Color;
use PhpColor\Color\LabColor;

$a = new LabColor(50.0, 2.6772, -79.7751);
$b = new LabColor(50.0, 0.0, -82.7485);
$deltaE = Color::distance($a, $b, 'CIEDE2000');
use PhpColor\Color\Color; use PhpColor\Color\LabColor; $a = new LabColor(50.0, 2.6772, -79.7751); $b = new LabColor(50.0, 0.0, -82.7485); $deltaE = Color::distance($a, $b, 'CIEDE2000');

Keep building

Make color relationships measurable