Release / publish (push) Canceled after 0s
Migrates the storefront's colourblind palettes into tokens, generated as [data-cb] CSS blocks (dark mode only) for both brands. The storefront's ΔE / contrast check now runs in the tokens build and fails on a bad palette; it caught the deuteranopia error orange at 4.4:1 on classic's navy, so that value is now #c86000. Animation speed rides along: animations.css scales durations by --motion-scale, and both data-motion="0" and the classic brand bypass animation outright. Brand tokens carry an `animations` flag so React Native forces motion to 0 for classic too. DTWebThemeProvider and DTThemeProvider take colorVision and motionScale; buildThemeFromBrand moves into the react-native package from the showcase. DTSettingsPanel (react and react-native) renders theme, animation speed and colour vision as controlled sections. Changesets: onlyUpdatePeerDependentsWhenOutOfRange, so a minor on tokens no longer majors react through its `*` peer range. Versions bumped: tokens 0.4.0, web 0.6.0, react 2.2.0, react-native 0.5.0. Design: docs/plans/2026-09-12-color-vision-and-settings-design.md Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>