animate

Implements UI animations by selecting purpose, tool, properties, easing, and duration.

Updated Aug 9, 2026
One-click install
npx skills add https://github.com/jwinar/carpet_gato --skill animate-jwinar
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: animate
Source: https://github.com/jwinar/carpet_gato/tree/main/.claude/skills/emil-kowalski-design/animate
Command: npx skills add https://github.com/jwinar/carpet_gato --skill animate-jwinar

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deciding whether and how to animate a UI element is error-prone: wrong easing curves, oversized durations, layout-thrashing properties, and missing reduced-motion support make interfaces feel sluggish. This Skill turns a motion request into a reviewed implementation that follows a strict decision sequence. ## Core Features & Use Cases - Gated decision sequence: Determines whether an element should animate at all based on interaction frequency, then names the motion's purpose before writing any code. - Tool and property selection: Chooses between CSS transitions, @starting-style, WAAPI, or Motion springs, and restricts animation to transform and opacity with correct transform-origin handling. - Ready-made recipes: Provides implementations for buttons, dropdowns, tooltips, modals, drawers, toasts, accordions, staggers, hold-to-confirm, tab indicators, scroll reveals, and drag-to-dismiss gestures. - Use Case: When asked to add an entrance animation to a dropdown menu, it produces a 200ms ease-out scale-and-fade anchored to the trigger's transform-origin, with reduced-motion and hover gating included. ## Quick Start Ask the assistant to animate a component, for example: add an entrance animation to this dropdown menu using the animate skill.

Frequently Asked Questions about animate

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

FAQPage Schema
How do I animate a dropdown or popover in CSS?▼

Use a CSS transition on opacity and transform with a strong ease-out curve like cubic-bezier(0.23, 1, 0.32, 1) over 150-250ms. Set transform-origin to the trigger element so the panel scales out of what was clicked, and start from scale(0.95) with opacity 0 rather than scale(0).

CSS transitions vs Motion library for web animations?▼

Use CSS transitions for hover, press, and state toggles, and CSS @starting-style for mount animations. Reach for Motion only when you need springs, layout animations, exit animations, or gesture-driven values that users can interrupt mid-motion.

When should a UI element not be animated?▼

Skip animation for actions triggered 100+ times per day, such as keyboard shortcuts or command palette toggles. Frequent interactions need instant state changes; the delight budget belongs to rare, first-time moments like onboarding or celebrations.

Why does my animation drop frames under load?▼

Frame drops happen when animating layout properties like width, height, or top, or when using Motion's x/y/scale shorthand props which are not hardware-accelerated. Animate only transform and opacity, and in Motion pass the full transform string such as translateX(100px).

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

Wrap motion in a @media (prefers-reduced-motion: reduce) block that keeps opacity and color transitions but removes transform-based movement. Reduced motion means fewer and gentler animations, not zero, so transitions that aid comprehension should remain.

How do I implement drag to dismiss with springs?▼

Track pointer position with pointer capture, dismiss on distance threshold or flick velocity above 0.11, and settle with a spring config like duration 0.5 and bounce 0.2. Add multi-touch protection and damped resistance past boundaries so interrupted drags keep their velocity.