animate

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

Updated Aug 29, 2026
One-click install
npx skills add https://github.com/Seyamalam/pstu_final --skill animate-seyamalam
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: animate
Source: https://github.com/Seyamalam/pstu_final/tree/main/.agents/skills/animate
Command: npx skills add https://github.com/Seyamalam/pstu_final --skill animate-seyamalam

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deciding whether, why, and how to animate a UI element is error-prone: developers routinely ship animations that should not exist, use ease-in on entrances, scale from zero, or pick durations that make interfaces feel sluggish. This Skill turns a motion request into a reviewed implementation by enforcing a fixed decision sequence before any code is written. ## Core Features & Use Cases - Gated build sequence: Decides first whether the element should animate at all based on usage frequency, then names the motion's purpose (feedback, spatial consistency, state indication, delight) before choosing tools. - Opinionated tool and property selection: Walks from CSS transitions through @starting-style, WAAPI, and Motion, restricting animated properties to transform and opacity with exact easing curves and duration tables. - Ready-made recipes: Ships implementations for button press, dropdown, tooltip, modal, drawer, toast, accordion, stagger, hold-to-confirm, tab indicator, scroll reveal, and drag-to-dismiss in RECIPES.md. - Use Case: When asked to animate a dropdown menu, it produces a transform-origin-anchored scale-and-fade using the codebase's --ease-out token at 150-250ms, with reduced-motion and hover gating included. ## Quick Start Ask the assistant to animate a specific component, such as adding an entrance animation to a modal or a press effect to a button, and it will return the implementation with its reasoning.

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 scale(0.95) as the starting state, and set transform-origin to the trigger element so the panel appears to grow out of it. Keep duration between 150-250ms with a strong ease-out curve like cubic-bezier(0.23, 1, 0.32, 1).

When should I use Motion instead of CSS transitions?

Use Motion when you need springs, layout animations, exit animations, or gesture-driven values. CSS transitions cover hover, press, and class-toggled states, while WAAPI handles programmatic control without adding a dependency.

Why should UI animations avoid ease-in and scale(0)?

ease-in starts slow, delaying the exact moment the user is watching, which makes interfaces feel sluggish. scale(0) looks unnatural because nothing real appears from nothing; start from scale(0.9-0.97) with opacity 0 instead.

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, so comprehension aids remain.

When should a UI element not be animated at all?

Skip animation for actions triggered 100+ times per day, such as keyboard shortcuts or command palette toggles. Frequent interactions get near-imperceptible motion at most, while the delight budget is reserved for rare first-time moments like onboarding.

Why do Motion x and y props drop frames under load?

Motion's x, y, and scale shorthand props are not hardware-accelerated, so they drop frames when the main thread is busy. Use the full transform string, such as transform: translateX(100px), to keep animation on the GPU.