Compute colorblind safety
Run the validator per mode: adjacent CVD ΔE ≥ 8, normal ΔE ≥ 15.
From dataviz (references/color-formula.md, scripts/validate_palette.js).
Two palettes that look fine
Switch to Deuteranopia and find the merged pair.
EyeballedBad
ValidatedGood
node scripts/validate_palette.js "#2a78d6,#eb6834,#1baf7a,#eda100" --mode light
node scripts/validate_palette.js "#3987e5,#d95926,#199e70,#c98500" --mode dark --surface "#1a1a19"
Palette check, live
Load Eyeballed, then press Snap until it passes.
SlotsLight
SimulatedMachado 1.0
| Check | Result | Detail |
|---|
All pairs caps the series
Drag Series past 3 with All pairs on.
ScatterAny two touch
Pair matrixAll pairs
top CVD ΔE / bottom normal ΔEnode scripts/validate_palette.js "#2a78d6,#eb6834,#1baf7a" --pairs all # PASS
const MAX_ALL_PAIRS_SERIES = 3;
Why it matters, pros and cons
Why it matters
A collision you can't see is one a reviewer can't see either. The validator turns it into a number.
Pros
- Catches merges that pass visual review.
- Checks dark steps on the dark surface.
- Snap fixes a pair, keeps the hue.
Cons
- Checks color only, not label collisions.
- A new simulation model needs recalibrated thresholds.
- A pass never excuses color-alone identity.