motion-sickness — Claude Code skill: stop animation-induced nausea
Finds the animations that make users dizzy or queasy — parallax, zoom, rotation — and swaps them for safer motion. Useful when complaints about navigation keep coming in.
npx skills add dylantarre/animation-principles --skill motion-sickness -a claude-codeWhat motion-sickness does
The skill maps animation problems onto Disney's principles and names the vestibular trigger behind each one. Over-dramatic transforms, curved paths, bounce and overshoot, several elements moving at once, sudden speed changes: every case gets a concrete fix, from shrinking the scale to dropping overshoot entirely.
What you get is a list of dangerous patterns, a table of safe alternatives and a ready CSS block for prefers-reduced-motion. It advises keeping movement under 100px, cutting scroll-jacking, and replacing zoom transitions with a fade plus a scale of at most 5%. Honouring prefers-reduced-motion is treated as non-negotiable.
Test on a large display, where motion reads stronger. And leave the page running for five minutes or more — a quick pass won't surface the cumulative effect.
What it helps with
- remove parallax that makes scrolling nauseating
- replace zoom transitions with fades
- add
prefers-reduced-motionsupport to the stylesheet - shrink transform scale to a safe range
- trace the source of dizziness complaints in navigation
Example prompts for the agent
- Users say the homepage scroll makes them queasy — audit the animations with the motion-sickness skill
- Drop the parallax and zoom transitions, keep only safe motion patterns
- Add the
prefers-reduced-motionCSS block and check nothing moves more than 100px
How to install motion-sickness
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill motion-sickness -a claude-code2Manually: put the files in place
~/.claude/skills/motion-sickness/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/motion-sickness/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill motion-sickness -a codex2Manually: put the files in place
.agents/skills/motion-sickness/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill motion-sickness -a cursor2Manually: put the files in place
.cursor/skills/motion-sickness/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles motion-sickness2Manually: put the files in place
.github/skills/motion-sickness/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill motion-sickness -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/12-by-problem-type/motion-sicknessManually: put the files in place
.devin/skills/motion-sickness/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill motion-sickness -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about motion-sickness
How do I install motion-sickness in Claude?
Run npx skills add dylantarre/animation-principles --skill motion-sickness -a claude-code. The skill lands in ~/.claude/skills/motion-sickness/SKILL.md.
What does motion-sickness do?
It spots interface animations that cause dizziness or nausea and suggests replacements: a fade instead of a zoom, a static background instead of parallax, ease-out instead of bounce.
Which platforms does the skill support?
Beyond Claude there are installs for Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode. GitHub Copilot uses a different command: gh skill install dylantarre/animation-principles motion-sickness.
Source text
SKILL.md · MIT
---
name: motion-sickness
description: Use when animation causes dizziness, nausea, disorientation, or vestibular discomfort
---
# 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
| 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
```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 */
}
```
© dylantarre · MIT · dylantarre/animation-principles