CVD-safe default categorical palette#61
Conversation
Merging this PR will not alter performance
Comparing Footnotes
|
…lette Tableau10's adjacent red/green collapsed to dE 1.2 under deuteranopia and half its slots sat below the chroma floor. The new eight-slot palette keeps every step in the OKLCH lightness band shared by light and dark surfaces (L 0.48-0.67) and passes the validator on both reference surfaces: worst adjacent-pair CVD dE 8.5 (>=8 target), worst adjacent normal-vision dE 19.1 (>=15 floor), all slots >=3:1 contrast. Slot order is the safety mechanism (adjacency drives the dE gate), so the palette must be re-validated before any re-order or extension. Updates the hardcoded segment colors in the Reflex demo app and the visual-regression chrome shell.
b605467 to
5701f77
Compare
|
Reviewed — the palette itself is solid, but the committed demo assets don't match the PR description and actively mislabel colors. Blocking: the regenerated The PR body says these assets were regenerated, but the diff only touches 3 files and the committed assets still embed the old Tableau10 colors — Fix: run Non-blocking:
The palette design itself checks out — I independently reproduced the CVD claims (Machado protan/deutan simulation + Lab ΔE76): the old palette does collapse ( |
Summary
Replaces the Tableau10 default categorical palette with an eight-slot CVD-safe palette (§20/§36 default theme).
Why: Tableau10's adjacent red/green pair collapsed to ΔE 1.2 under deuteranopia — effectively indistinguishable — and slots 1/5/7/9/10 sat below the chroma floor.
The new palette keeps every step in the OKLCH lightness band shared by light and dark surfaces (L 0.48–0.67) and validates against both reference surfaces (
#fcfcfb/#1a1a19):The slot order is the safety mechanism — adjacency drives the ΔE gate — so the config comment now warns against re-ordering or extending without re-running the validator.
Also in this PR
examples/reflex/assets/charts/*.html, which also picks up the current embedded render client (colormap stops, colorbar chrome CSS) from recent main commits.Checks
pre-commit run --all-files,ruff check,ruff format --checkall pass.