animate

Animation patterns and best practices for Next.js/React applications. Use this skill when implementing animations, transitions, hover effects, page transitions, modals, or any motion in React components. Based on Emil Kowalski's "Animations on the Web" course.

By delphi-ai · 3,004 installs

npx skills add delphi-ai/animate-skill --skill animate

Source repository · Upstream listing

Next.js Animations Overview This skill provides comprehensive guidance for implementing smooth, performant, and accessible animations in Next.js and React applications. It covers CSS animations, Framer Motion, easing principles, and accessibility considerations. Quick Reference Easing Cheat Sheet Animation Type Easing Duration Element entering ease out 200 300ms Element moving on screen ease in out 200 300ms Element exiting ease in 150 200ms Hover effects ease 150ms Opacity only linear varies CSS Custom Properties (Recommended) Common Animation Patterns 1. Hover Lift Effect 2. Button Press 3. Fade In on Mount (Framer Motion) 4. Modal with Exit Animation 5. Tab Indicator (Shared Layout) 6. Staggered List Animation Golden Rules 1. Exits faster than enters : Exit animations should be ~75% of enter duration 2. Only animate transform and opacity : These are GPU accelerated 3. 200 300ms is the sweet spot : Most animations should be in this range 4. Always respect prefers reduced motion : See accessibility section in references 5. Use springs for interruptible animations : Better UX when users interrupt Examples Complete working examples from the course are in the examples/ directory: Example Description Key Techniques card hover.tsx Slide up description on hover CSS transitions, transform, opacity toast stacking.tsx Animated toast notifications CSS custom properties, data triggers text reveal.tsx Staggered letter animation @keyframes, animation delay, calc() shared layout.tsx Element position/size morph Framer Motion layoutId animate height.tsx Smooth height changes useMeasure, animate height multi step flow.tsx Directional step wizard AnimatePresence, custom variants feedback popover.tsx Button to popover expansion Nested layoutId, form states app store card.tsx iOS style card expansion Multiple layoutId elements To use an example, read it with: Read examples/<name .tsx References For detailed documentation, read the reference files: references/easing and timing.md Easing functions, timing guidelines, spring configuration references/css animations.md Transforms, transitions, keyframes, clip path references/framer motion.md Motion components, AnimatePresence, variants, layout animations, hooks references/performance accessibility.md 60fps optimization, prefers reduced motion, accessibility When to Use What Scenario Recommended Approach Simple hover effects CSS transitions Enter/exit animations Framer Motion + AnimatePresence Layout changes Framer Motion layout prop Shared element transitions Framer Motion layoutId Scroll linked animations Framer Motion useScroll Complex orchestrated animations Framer Motion variants Drag interactions Framer Motion drag gestures Performance critical CSS only with transforms Dependencies For Framer Motion examples, install: