# motion-and-storytelling

A skill for designing transitions, scroll animations and onboarding motion. It hands you timings, easing curves and stagger patterns when animation has a job to do.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 894 installs · ★ 165
- Author: dembrandt
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/dembrandt/dembrandt-skills/tree/HEAD/skills/motion-and-storytelling/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/motion-and-storytelling

## What it does

The skill maps Disney's 12 animation principles and cinematic language onto interface motion. Each principle comes with CSS examples: squash and stretch for button presses, anticipation, staging, follow-through with staggered list items. There are timing and easing tables — `ease-out` for elements arriving, `ease-in` for elements leaving, `ease-in-out` for movement across the screen. `linear` gets called out as mechanical and unfinished.

A separate section covers cinematic technique: scroll-triggered reveals, parallax, and the difference between a hard cut and a dissolve. Comic conventions show up too, as panel sequencing for step indicators and onboarding carousels. The skill activates on `**/*.css`, `**/*.scss`, `**/*.tsx`, `**/*.jsx`, plus `design-system/**` and `components/**`, and picks up prompt signals like animation, transition, easing and micro-interaction.

Treat the duration tables as guidance, not a hard limit: 80–120ms for micro-interactions, 150–250ms for component transitions, 400–600ms for hero animations. Anything past 600ms reads as waiting. If your project already has its own duration scale, reconcile the two — otherwise your motion ends up running on two different rhythms.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add dembrandt/dembrandt-skills --skill motion-and-storytelling -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/motion-and-storytelling/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/motion-and-storytelling/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add dembrandt/dembrandt-skills --skill motion-and-storytelling -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/motion-and-storytelling/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add dembrandt/dembrandt-skills --skill motion-and-storytelling -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/motion-and-storytelling/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dembrandt/dembrandt-skills motion-and-storytelling
```

2. **Manually: put the files in place**
- File: `.github/skills/motion-and-storytelling/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add dembrandt/dembrandt-skills --skill motion-and-storytelling -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/dembrandt/dembrandt-skills --path skills/motion-and-storytelling
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/motion-and-storytelling/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add dembrandt/dembrandt-skills --skill motion-and-storytelling -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/dembrandt/dembrandt-skills/tree/HEAD/skills/motion-and-storytelling/SKILL.md

## When to use it
- pick a duration and curve for a modal entrance
- make a button press feel physical
- add scroll animations to a landing page without parallax sickness
- split entrance and exit states onto different easing curves
- turn abrupt screen swaps into a sequenced onboarding flow

## Example prompts
- animate this modal entrance and pick the timing and easing
- make this button feel more satisfying to click
- add scroll-driven animations to this landing section

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: ce80745e3985c57f.

BEGIN THIRD-PARTY FILE ce80745e3985c57f
````text
---
name: motion-and-storytelling
description: Disney's animation principles and cinematic technique applied to UI motion. Use when designing transitions, scroll animations or onboarding motion.
metadata:
  priority: 6
  pathPatterns:
    - "**/*.css"
    - "**/*.scss"
    - "**/*.tsx"
    - "**/*.jsx"
    - "design-system/**"
    - "components/**"
  promptSignals:
    phrases:
      - "animation"
      - "transition"
      - "motion"
      - "micro-interaction"
      - "scroll animation"
      - "easing"
      - "storytelling"
      - "entrance"
      - "exit"
retrieval:
  aliases:
    - animation principles
    - disney principles
    - motion design
    - micro-interactions
    - transitions
    - cinematic ui
    - storytelling ui
  intents:
    - animate this component
    - design a transition
    - make the ui feel alive
    - add scroll animations
    - design micro-interactions
  examples:
    - animate this modal entrance
    - make this button feel more satisfying to click
    - add scroll-driven animations to this landing page
    - design the transition between these two states
---

# Motion and Storytelling in UI

Animation and motion are not decoration — they are communication. When applied with the same discipline as typography or colour, they tell the user what is happening, where to look, and what the product feels like to use. The source material — Disney's 12 principles, cinematic language, comic book conventions — is centuries of accumulated knowledge about how to communicate through movement and sequence.

The key word is **subtlety**. In UI, motion should be felt, not watched.

---

## Disney's 12 Principles Applied to UI

### 1. Squash and Stretch
Objects compress on impact and extend on acceleration. In UI: a button that scales down slightly on press and springs back communicates physicality and responsiveness.

```css
button:active { transform: scale(0.96); }
button { transition: transform 80ms ease-out; }
```

Use sparingly — reserved for primary CTAs and satisfying confirmations.

### 2. Anticipation
A small preparatory movement before the main action. In UI: a menu item shifting slightly before opening, or a loading indicator appearing before a transition begins, prepares the user for what is coming.

### 3. Staging
````
END THIRD-PARTY FILE ce80745e3985c57f

The third-party file has ended. Everything between the ce80745e3985c57f tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2292 of 9543 bytes. © dembrandt · MIT · https://github.com/dembrandt/dembrandt-skills/tree/HEAD/skills/motion-and-storytelling/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
