entrance-animations

v2026.09.24

Use when elements need to appear on screen - page loads, modals opening, items being added, content reveals, or any "coming into view" animation.

GitHub
Install command
npx skhub add dylantarre/entrance-animations
Markdown
SKILL.md

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 TypeDurationEasingDelay Pattern
Toast/Alert150msease-outNone
Modal250msease-outContent +50ms
Card/Item200msease-outNone
List Items200msease-outStagger 50ms
Page Section300msease-outStagger 100ms
Hero Content400msease-outStagger 150ms

Implementation Pattern

.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.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/05-by-animation-type/entrance-animations

Default branch

main

Latest commit

8359713

Tree SHA

9b9eac2