Measure WCAG contrast
Calculate an exact WCAG ratio and test it against the selected text-size and conformance threshold.
Explore WCAG contrastMeasure contrast, perceptual similarity, and distinguishability across vision profiles.
Calculate an exact WCAG ratio and test it against the selected text-size and conformance threshold.
Explore WCAG contrastMeasure signed APCA lightness contrast while keeping foreground and background polarity explicit.
Explore APCA contrastAdjust a failing foreground, serialize it, and verify the exact color the application will use.
Explore Contrast repairFind the minimum foreground alpha for a target ratio, then verify the serialized translucent color.
Explore Alpha solvingCompare a complete semantic palette across simulated vision profiles before relying on hue alone.
Explore Vision simulationCheck whether two colors remain separated after applying a selected color vision simulation.
Explore DistinguishabilityApply 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 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();
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();
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);
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');