motion-sickness
0
总安装量
16
周安装量
安装命令
npx skills add https://github.com/dylantarre/animation-principles --skill motion-sickness
Agent 安装分布
claude-code
14
gemini-cli
11
antigravity
11
opencode
11
windsurf
10
Skill 文档
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
- Respect
prefers-reduced-motion– Non-negotiable - Remove parallax effects – Common trigger
- Avoid zoom transitions – Use fades instead
- Keep motion small – Under 100px movement
- 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
| Triggering | Safe Alternative |
|---|---|
| Zoom transition | Fade + slight scale (max 5%) |
| Parallax scroll | Static or single-layer |
| Rotation | Fade or slide |
| Bounce/spring | Ease-out (no overshoot) |
| Full-page slide | Crossfade |
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 */
}