animation-accessibility

Implements reduced-motion variants for web animations using CSS, Tailwind, and Framer Motion.

1|1|Updated May 11, 2026
One-click install
npx skills add https://github.com/taxmaxi/taxmaxi --skill animation-accessibility-taxmaxi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: animation-accessibility
Source: https://github.com/taxmaxi/taxmaxi/tree/main/.codex/skills/animation-accessibility
Command: npx skills add https://github.com/taxmaxi/taxmaxi --skill animation-accessibility-taxmaxi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web animations can cause motion sickness, dizziness, and distraction for users with vestibular disorders or motion sensitivity, yet most interfaces ignore the prefers-reduced-motion preference entirely. This Skill guides you through shipping every animation as two variants so motion never harms users while still conveying meaningful state changes. ## Core Features & Use Cases - Reduced-motion transformation rules: Apply a clear decision table — remove movement (transforms, layout), keep meaning (opacity, color), disable autoplaying loops — so reduced variants stay informative instead of being deleted. - Framework implementations: Get concrete patterns for CSS media queries, Tailwind motion-safe:/motion-reduce: variants, and Framer Motion's useReducedMotion hook and MotionConfig reducedMotion="user" app-wide safety net. - Copy-ready snippets: Recipes for smooth scrolling, autoplaying GIF/video fallbacks via <picture>, pausing loops on a hero frame with negative animation-delay, a dependency-free React hook, and a worked multi-step component example. - Use Case: When reviewing a page with an autoplaying looping animation and sliding modals, use this Skill to convert the modal slide into a fade, pause the loop on a representative frame, and verify both variants with Chrome DevTools emulation. ## Quick Start Ask the AI to audit the animations in your component and add a prefers-reduced-motion variant for each one.

Frequently Asked Questions about animation-accessibility

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement prefers-reduced-motion in CSS?▼

Use the @media (prefers-reduced-motion: reduce) query to swap the animation rather than delete it. Replace movement-based keyframes with opacity or color fades so the state change remains legible without anything moving on screen.

How to use useReducedMotion with Framer Motion?▼

The useReducedMotion hook from motion/react returns true when the user prefers reduced motion, letting you branch animation values or swap entire variant sets. Also skip height animations and pass layout={false} under reduce, since layout animations move elements by definition.

Does reduced motion mean removing all animations?▼

No, reduce means gentler, not zero. Remove movement like transforms and layout changes, but keep opacity and color transitions that carry meaning, since deleting all animation makes interfaces harder to follow.

How do I handle autoplaying GIFs for reduced motion users?▼

Use the <picture> element with media="(prefers-reduced-motion: no-preference)" on animated sources and a static <img> fallback. The browser shows the static frame under reduce and never downloads the animated file, with no JavaScript required.

Why does my reduced-motion variant still move?▼

Movement usually hides in more than one place: a leftover transform in a shared class, a measured height animation, or a layout prop. Audit every animating property in the component and test with Chrome DevTools' prefers-reduced-motion emulation enabled.