animate

Implements UI animations by selecting tools, properties, easings, and durations through a gated decision sequence.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Deciding whether and how to animate a UI element is error-prone: developers often animate things that should stay static, pick wrong easings, or use non-performant properties. This Skill turns a motion request into a reviewed implementation by enforcing a strict build sequence. ## Core Features & Use Cases - Gated decision sequence: First determines whether the element should animate at all based on usage frequency, then names the animation's purpose before writing any code. - Tool and property selection: Chooses the cheapest working tool (CSS transitions, @starting-style, WAAPI, or Motion) and restricts animation to transform and opacity for GPU-accelerated rendering. - Ready-made recipes: Provides implementations for buttons, dropdowns, tooltips, modals, drawers, toasts, accordions, staggers, drag-to-dismiss, and more in RECIPES.md. - Use Case: When asked to add a dropdown entrance animation, the Skill selects a CSS transition with transform-origin at the trigger, a strong ease-out curve at 150-250ms, and ships reduced-motion and hover gating alongside it. ## Quick Start Ask the assistant to animate a component, such as adding an entrance transition to a modal or a press effect to a button, and it will produce 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 what was clicked. Keep the duration between 150 and 250ms with a strong ease-out curve.

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

Use CSS transitions for hovers, presses, and state toggles, and CSS animations for predetermined motion that must stay smooth under load. Reach for a library like Motion only when you need springs, layout animations, exit animations, or gesture-driven values.

Why should UI animations avoid animating width and height?▼

Animating width, height, margin, padding, top, or left triggers layout and paint on every frame, which is expensive. Transform and opacity skip those stages and run on the GPU, so they stay smooth even while the page is busy.

What easing and duration should a UI animation use?▼

Use ease-out for entrances and exits, ease-in-out for on-screen movement, and keep UI durations under 300ms. Prefer strong custom curves like cubic-bezier(0.23, 1, 0.32, 1) over built-in easings, and never use ease-in on UI elements.

When should an element not be animated at all?▼

Skip animation for actions triggered 100+ times per day, such as keyboard shortcuts or command palette toggles. For frequent interactions, use near-imperceptible motion or none, and reserve expressive animation for rare moments like onboarding or celebrations.

How do I handle reduced motion and touch devices in animations?▼

Ship a prefers-reduced-motion variant that keeps opacity and color transitions but drops transform-based movement. Gate hover effects behind @media (hover: hover) and (pointer: fine) so touch devices do not fire false hovers on tap.