What
The Techniques page ships ~17 loader animations, but the @media (prefers-reduced-motion: reduce) block in docs/assets/techniques.css (around line 196) only quiets a subset — the logo loaders, .s-dots, .s-bar, and the skeletons. The spinner and the .s-load-* family (dual, dash, arc, orbit, bars, pulse, ripple, grid, wave, flip, bounce, typing) keep spinning for users who have asked their OS to reduce motion.
Continuous spinners are exactly the kind of motion that setting should stop, so this is a real accessibility gap.
Why it's a good first issue
Pure CSS, one file, and there's already a block to extend — you're following an established pattern, not inventing one.
What to build
How to find them all
grep -oE "animation:[^;]*" docs/assets/techniques.css
lists every animated declaration; make sure each animated class has a reduced-motion counterpart.
Where
docs/assets/techniques.css (the existing block is near line 196)
Done when
With "Reduce motion" enabled in the OS, none of the loaders spin or pulse, they remain visible and legible, and npm run verify:docs still passes.
What
The Techniques page ships ~17 loader animations, but the
@media (prefers-reduced-motion: reduce)block indocs/assets/techniques.css(around line 196) only quiets a subset — the logo loaders,.s-dots,.s-bar, and the skeletons. The spinner and the.s-load-*family (dual, dash, arc, orbit, bars, pulse, ripple, grid, wave, flip, bounce, typing) keep spinning for users who have asked their OS to reduce motion.Continuous spinners are exactly the kind of motion that setting should stop, so this is a real accessibility gap.
Why it's a good first issue
Pure CSS, one file, and there's already a block to extend — you're following an established pattern, not inventing one.
What to build
@media (prefers-reduced-motion: reduce)block indocs/assets/techniques.cssso every animated loader is covered.animation: none) leaving a static, still-legible shape, or slow it to a gentle, non-spinning state — whichever reads better for that loader.animation: noneshould still show its ring, not disappear).How to find them all
lists every animated declaration; make sure each animated class has a reduced-motion counterpart.
Where
docs/assets/techniques.css(the existing block is near line 196)Done when
With "Reduce motion" enabled in the OS, none of the loaders spin or pulse, they remain visible and legible, and
npm run verify:docsstill passes.