# entrance-animations

Teaches coding agents to apply Disney animation principles to UI entrance effects. It provides exact CSS timings, easing curves, and stagger formulas for modals, lists, and cards.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 527 installs · ★ 129
- Author: dylantarre
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/dylantarre/animation-principles/tree/HEAD/skills/05-by-animation-type/entrance-animations/SKILL.md
- Updated: 2025-12-30
- HTML: https://affpapa.org/en/nevibecode/skills/entrance-animations

## What it does

This skill guides your coding assistant when building elements that enter the viewport. It translates classic animation principles into concrete CSS rules, combining opacity transitions with coordinate shifts and slight scaling. Entrances rely on `cubic-bezier(0, 0, 0.2, 1)` to achieve a fast launch followed by a decelerating landing.

The skill provides a duration reference table for interface components. Toasts and alerts run for 150ms, cards for 200ms, modal windows for 250ms with a 50ms inner content lag, and page sections for 300ms. Grouped items use a sequential formula where each item waits an extra 50ms.

Sequences must stay capped. Total stagger duration cannot exceed 500ms, and automated sequences should never animate more than five items in a row without direct user input.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill entrance-animations -a claude-code
```

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

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill entrance-animations -a codex
```

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

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill entrance-animations -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dylantarre/animation-principles entrance-animations
```

2. **Manually: put the files in place**
- File: `.github/skills/entrance-animations/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill entrance-animations -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/dylantarre/animation-principles --path skills/05-by-animation-type/entrance-animations
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill entrance-animations -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/dylantarre/animation-principles/tree/HEAD/skills/05-by-animation-type/entrance-animations/SKILL.md

## When to use it
- create smooth entrance transitions for modal dialogs
- calculate staggered CSS animation delays for list items
- apply Disney animation principles like squash and anticipation to web UI
- configure proper ease-out bezier curves and durations for UI cards

## Example prompts
- Create a CSS entrance animation for this modal and its inner content
- Animate these dashboard metric cards coming into view
- Add a staggered entrance effect for our product list items

## 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: 5a492bae656f8551.

BEGIN THIRD-PARTY FILE 5a492bae656f8551
````text
---
name: entrance-animations
description: Use when elements need to appear on screen - page loads, modals opening, items being added, content reveals, or any "coming into view" animation.
---

# Entrance Animations

Apply Disney's 12 principles when bringing elements into view.

## Principle Application

**Squash & Stretch**: Scale from 95% to 100% on entry. Elements feel elastic, not rigid.

**Anticipation**: Start slightly below/smaller than final position. A -10px offset before sliding up creates expectation.

**Staging**: Enter from the direction of user attention. New list items from the top, modals from center, sidebars from their edge.

**Straight Ahead vs Pose-to-Pose**: Use pose-to-pose. Define clear start state (invisible, offset) and end state (visible, positioned).

**Follow Through & Overlapping**: Child elements should lag slightly. Container enters first, content 50-100ms after.

**Slow In/Slow Out**: Use ease-out for entrances. Fast start, gentle landing: `cubic-bezier(0, 0, 0.2, 1)`.

**Arcs**: Combine Y and X movement. Don't just fade - slide in on a subtle curve.

**Secondary Action**: Pair fade with scale. Opacity 0→1 while scaling 0.95→1 adds depth.

**Timing**:
- Quick entrances: 150-200ms (toasts, tooltips)
- Standard entrances: 200-300ms (modals, cards)
- Dramatic reveals: 300-500ms (hero sections, page transitions)

**Exaggeration**: Scale can start at 0.8 for dramatic effect, 0.95 for subtle polish.

**Solid Drawing**: Maintain consistent 3D space. Elements entering from "behind" should scale up; from sides should slide.

**Appeal**: Entrances should feel welcoming. Avoid jarring pops - everything deserves an introduction.

## Timing Recommendations

| Element Type | Duration | Easing | Delay Pattern |
|-------------|----------|--------|---------------|
| Toast/Alert | 150ms | ease-out | None |
| Modal | 250ms | ease-out | Content +50ms |
| Card/Item | 200ms | ease-out | None |
| List Items | 200ms | ease-out | Stagger 50ms |
| Page Section | 300ms | ease-out | Stagger 100ms |
| Hero Content | 400ms | ease-out | Stagger 150ms |

## Implementation Pattern

```css
.entering {
  animation: entrance 250ms cubic-bezier(0, 0, 0.2, 1) forwards;
}

@keyframes entrance {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
```

## Stagger Formula

For multiple items: `delay = index * 50ms`, cap at 500ms total sequence time.

Never exceed 5 items in a stagger sequence without user-initiated action.
````
END THIRD-PARTY FILE 5a492bae656f8551

The third-party file has ended. Everything between the 5a492bae656f8551 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.

© dylantarre · MIT · https://github.com/dylantarre/animation-principles/tree/HEAD/skills/05-by-animation-type/entrance-animations/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
