Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dylantarre avatar

Motion Sickness

  • 302 installs
  • 68 repo stars
  • Updated December 30, 2025
  • dylantarre/animation-principles

Honor prefers-reduced-motion, limit parallax and vestibular triggers, and provide static fallbacks before release so animated UIs stay accessible and comfortable.

About

Accessibility-focused motion guidance for motion sickness and vestibular sensitivity: detect reduced-motion preferences, cap parallax and zoom, supply static alternatives, and validate overlays so animated products remain inclusive at ship time.

  • prefers-reduced-motion media query patterns
  • Avoid large parallax and infinite loops
  • Offer non-animated equivalents
  • Test vestibular trigger thresholds
  • Document motion policy for QA sign-off

Motion Sickness by the numbers

  • 302 all-time installs (skills.sh)
  • Ranked #831 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/animation-principles --skill motion-sickness

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs302
repo stars68
Last updatedDecember 30, 2025
Repositorydylantarre/animation-principles

What it does

Honor prefers-reduced-motion, limit parallax and vestibular triggers, and provide static fallbacks before release so animated UIs stay accessible and comfortable.

Files

SKILL.mdMarkdownGitHub ↗

Motion Sickness Prevention

Eliminate vestibular triggers using Disney's principles safely.

Problem Indicators

  • Users report dizziness or nausea
  • Disorientation during navigation
  • Users avoid certain features
  • Complaints increase with larger screens
  • Parallax or zoom effects cause issues

Dangerous Patterns

These trigger vestibular responses:

  • Large-scale zoom animations
  • Parallax scrolling (especially multi-layer)
  • Full-screen rotations
  • Rapid direction changes
  • Continuous/looping background motion
  • Scroll-jacking

Diagnosis by Principle

Exaggeration

Issue: Over-dramatic motion Fix: Reduce scale of transforms. Max 10-20% size change. Avoid full-screen zooms.

Arcs

Issue: Curved paths cause tracking strain Fix: Use linear motion for functional UI. Save arcs for small, optional elements only.

Follow Through

Issue: Overshooting creates whiplash effect Fix: Remove bounce/overshoot from navigation. Use critically damped springs or ease-out.

Secondary Action

Issue: Multiple moving elements cause confusion Fix: Limit to one primary motion. Remove parallax layers.

Slow In and Slow Out

Issue: Acceleration patterns cause disorientation Fix: Use consistent, predictable easing. Avoid sudden speed changes.

Quick Fixes

1. Respect `prefers-reduced-motion` - Non-negotiable 2. Remove parallax effects - Common trigger 3. Avoid zoom transitions - Use fades instead 4. Keep motion small - Under 100px movement 5. No scroll-jacking - Let scroll be scroll

Troubleshooting Checklist

  • [ ] Does animation respect prefers-reduced-motion?
  • [ ] Is any element moving more than 100px?
  • [ ] Are there any zoom effects?
  • [ ] Is parallax present? Remove it.
  • [ ] Are there continuous/looping animations?
  • [ ] Can users pause or disable motion?
  • [ ] Test on large display (motion amplified)
  • [ ] Test for 5+ minutes continuously

Safe Alternatives

TriggeringSafe Alternative
Zoom transitionFade + slight scale (max 5%)
Parallax scrollStatic or single-layer
RotationFade or slide
Bounce/springEase-out (no overshoot)
Full-page slideCrossfade

Code Pattern

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .parallax {
    transform: none !important;
  }
}

/* Safe default motion */
.safe-transition {
  transition: opacity 200ms ease-out;
  /* Avoid: transform with large values */
}

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.