Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add dylantarre/animation-principles --skill motion-sickness -a claude-code
Open on GitHub

What 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-motion support 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-motion CSS 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-code

2Manually: put the files in place

~/.claude/skills/motion-sickness/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/motion-sickness/

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

Similar skills

Everything for Frontend and UI →

From the same set86

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor