Motion Sickness

dylantarre/animation-principles/skills/12-by-problem-type/motion-sickness

by dylantarre83597134ba8fNo license99 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 9 months ago

Use when animation causes dizziness, nausea, disorientation, or vestibular discomfort

Instructions onlyDesign & Creative
AI-generated overview

Guides designers and developers to remove animation patterns that trigger motion sickness and vestibular discomfort.

What it does
This skill provides guidance for diagnosing and fixing UI animations that cause dizziness, nausea, or disorientation. It lists dangerous motion patterns such as parallax, zoom transitions, and scroll-jacking, maps each to a Disney animation principle, and offers safe alternatives. It also includes a troubleshooting checklist and a CSS pattern for respecting reduced-motion preferences.
When to use it
Use it when users report dizziness, nausea, or disorientation caused by animation, or when reviewing interfaces with parallax, zoom, rotation, or looping motion. It is also useful for auditing motion accessibility before release.
Requirements
No tools, packages, or credentials are required; it is instructions only and ships no scripts.

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

css
@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 */}

Source and attribution

Source:dylantarre/animation-principlesinskills/12-by-problem-type/motion-sicknessat commit8359713

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal