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
Validator checks
CheckResultDetail

All pairs caps the series

Drag Series past 3 with All pairs on.

ScatterAny two touch
Pair matrixAll pairs
CVD and normal-vision delta E for every slot pair
top CVD ΔE / bottom normal ΔE
node 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.