animate

Implements UI animations using CSS transitions, WAAPI, and Motion with defined easing and duration rules.

1|Updated Aug 28, 2026
One-click install
npx skills add https://github.com/mooch10/mochiptos --skill animate-mooch10
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: animate
Source: https://github.com/mooch10/mochiptos/tree/main/frontend/.agents/animate
Command: npx skills add https://github.com/mooch10/mochiptos --skill animate-mooch10

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deciding whether, when, and how to animate a UI element is error-prone: developers often animate things that should not move, pick wrong easing curves, or ship motion without reduced-motion support. This Skill turns a motion request into a reviewed implementation that follows a strict decision sequence. ## Core Features & Use Cases - Gated build sequence: Decides first whether an element should animate at all based on interaction frequency, then names the motion's purpose before writing any code. - Opinionated ingredient tables: Provides fixed easing curves, duration ranges, and spring configurations so no values are invented or approximated. - Ready-made recipes: Ships 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 selects a CSS transition with transform and opacity, applies the strong ease-out curve at 150-250ms, sets transform-origin at the trigger, and ships reduced-motion and hover gating. ## Quick Start Ask the assistant to animate a component, for example: add an open and close animation to this dropdown menu.

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 at 150-250ms, scaling from 0.95 rather than 0. Set transform-origin to the trigger element so the panel appears to emerge from what the user clicked.

When should I use CSS transitions versus a motion library?▼

Use CSS transitions for hovers, presses, and state toggles, and WAAPI for programmatic control without dependencies. Reach for Motion only when you need springs, layout animations, exit animations, or gesture-driven values.

What easing curve should I use for UI animations?▼

Use ease-out for entering and exiting elements, ease-in-out for on-screen movement, and linear only for constant motion like progress indicators. Never use ease-in on UI because it delays the exact moment the user is watching.

Should every UI element have an animation?▼

No. Elements triggered 100 or more times per day, such as keyboard shortcuts or command palettes, should have no animation at all. Frequently used elements get only near-imperceptible motion, while delight is reserved for rare first-time moments.

How do I handle reduced motion in CSS animations?▼

Wrap animations in a prefers-reduced-motion media query that keeps opacity and color transitions but drops transform-based movement. Reduced motion means fewer and gentler animations, not zero animation.

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, and scale shorthand props. Animate only transform and opacity, and in Motion pass the full transform string for hardware acceleration.