animate

Design and implement web animations using CSS, Framer Motion, and SVG techniques.

1|1|Updated May 11, 2026
One-click install
npx skills add https://github.com/taxmaxi/taxmaxi --skill animate-taxmaxi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: animate
Source: https://github.com/taxmaxi/taxmaxi/tree/main/.codex/skills/animate
Command: npx skills add https://github.com/taxmaxi/taxmaxi --skill animate-taxmaxi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Web animations often feel janky, sluggish, or unnatural because developers guess at easing curves, durations, and spring configs. This Skill provides a decision framework and implementation recipes distilled from Emil Kowalski's Animations on the Web course so motion feels intentional and polished. ## Core Features & Use Cases - Animation Decision Framework: Decide whether to animate, pick the right easing curve, duration, and spring config before writing code. - Implementation Recipes: Load companion references for CSS transitions and keyframes, Framer Motion (AnimatePresence, layoutId, springs, gestures), and SVG animation (line-drawing, path morphing, transform-origin fixes). - Performance & Accessibility Guidance: Apply GPU-friendly transform/opacity rules, interruptibility patterns, and prefers-reduced-motion handling. - Use Case: When a dropdown feels sluggish, use this Skill to replace a weak default ease with a custom ease-out curve, shorten the duration to 150-250ms, and scale from the trigger origin instead of center. ## Quick Start Ask the assistant to help you animate a specific UI element, such as making a modal entrance feel smooth or fixing a janky drawer transition.

Frequently Asked Questions about animate

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make CSS animations feel smooth and natural?▼

Use a strong custom ease-out cubic-bezier curve for entering elements, keep durations under 300ms, and animate only transform and opacity. Start entrances from scale(0.9-0.95) with opacity 0 rather than scale(0).

When should I use Framer Motion instead of CSS animations?▼

Use Framer Motion for real spring physics, interruptible gestures, layout animations, shared-element transitions via layoutId, and exit animations with AnimatePresence. Prefer CSS for hovers, simple enter/exit states, and looping motion.

Why does my animation feel janky or sluggish?▼

Jank usually comes from animating layout properties like width, height, or margin instead of transform and opacity, or from easing curves that are too weak. Switch to a steeper custom curve and GPU-composited properties.

How do I animate SVG line drawing with stroke-dashoffset?▼

Set stroke-dasharray so one dash covers the path length, offset it by the full length to hide the stroke, then animate stroke-dashoffset to zero. Use pathLength="100" to normalize values and animation-fill-mode: forwards to keep the end state.

How do I handle prefers-reduced-motion in animations?▼

Replace movement and position changes with gentle opacity or color transitions rather than removing animation entirely. In Framer Motion use useReducedMotion() or MotionConfig reducedMotion="user" to animate only opacity app-wide.

Why does my Framer Motion exit animation not play?▼

Exit animations require a unique key on the motion element inside AnimatePresence; without a key the component never unmounts and the exit never fires. Also pass custom props to both AnimatePresence and the motion element to avoid stale values.