animate

Implements UI animations by deciding purpose, tool, properties, easing, and duration before writing code.

Updated Jul 15, 2026
One-click install
npx skills add https://github.com/Alex918-stack/papertrader --skill animate-alex918-stack
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: animate
Source: https://github.com/Alex918-stack/papertrader/tree/main/agent/skills/animate
Command: npx skills add https://github.com/Alex918-stack/papertrader --skill animate-alex918-stack

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deciding whether and how to animate a UI element is error-prone: wrong easings, sluggish durations, non-accelerated properties, and missing reduced-motion support make interfaces feel sluggish or broken. This Skill turns a motion request into a reviewed implementation by enforcing a strict decision sequence before any code is written. ## Core Features & Use Cases - Gated build sequence: Decides first whether the element should animate at all (frequency tiers, keyboard-initiated disqualifiers), then names the purpose (feedback, spatial consistency, state indication, delight) before choosing tools. - Tool and property selection: Picks the cheapest working tool (CSS transitions, @starting-style, CSS animation, WAAPI, or Motion) and restricts animation to transform and opacity with correct transform-origin handling. - Concrete values, no guessing: Provides exact easing curves (cubic-bezier tokens), duration tables per component, and spring configs, plus ready-made recipes for buttons, popovers, tooltips, modals, drawers, toasts, accordions, drag-to-dismiss, and more. - Use Case: When asked to add a dropdown entrance animation, it produces a 200ms ease-out scale-from-trigger transition with reduced-motion and hover gating, rather than a generic keyframe fade. ## Quick Start Ask the agent to animate a component, for example: add an entrance animation to the settings dropdown menu in this Next.js app.

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 and start from scale(0.95) with opacity 0 rather than scale(0).

CSS transitions vs Motion library for 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 CSS cannot express.

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 hover effects should be near-imperceptible, and delight animations belong only to rare first-time moments like onboarding.

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. Animate transform and opacity only, and in Motion pass the full transform string so it stays hardware-accelerated.

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 drops transform-based movement. Reduced motion means fewer and gentler animations, not zero animation.

What easing and duration should UI animations use?

Use ease-out for entrances and exits, ease-in-out for on-screen movement, and never ease-in on UI. Keep UI durations under 300ms: 100-160ms for presses, 125-200ms for tooltips, and 200-500ms for modals and drawers.