animate

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

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

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 not move, pick wrong easings, or ship motion without reduced-motion support. This Skill turns a motion request into a reviewed implementation by enforcing a strict build sequence. ## Core Features & Use Cases - Gated decision sequence: First decides whether the 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, CSS animations, 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, 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, the Skill checks the frequency gate, picks a CSS transition with transform-origin at the trigger, applies the strong ease-out curve at 150-250ms, and ships reduced-motion and hover gating alongside the code. ## Quick Start Ask the AI 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) at 150-250ms. Set transform-origin to the trigger element so the panel scales out of what the user clicked, and start from scale(0.95) with opacity 0 rather than scale(0).

When should I use CSS transitions vs a JavaScript animation library?

Use CSS transitions for hover, press, and state toggles, and CSS animations for predetermined motion that must stay smooth under load since they run off the main thread. Reach for a library like Motion only when you need springs, layout animations, exit animations, or gesture-driven values.

Should every UI element have an animation?

No. Elements triggered 100+ times per day, such as keyboard shortcuts or command palettes, should never animate. Frequent interactions get near-imperceptible motion at most, while the delight budget is reserved for rare moments like onboarding or success states.

Why does my animation drop frames under page load?

JavaScript requestAnimationFrame-based animation drops frames while the browser loads, scripts, or paints, and Motion's x/y/scale shorthand props are not hardware-accelerated. Use CSS animations for predetermined motion or the full transform string in Motion to stay on the GPU.

How do I support reduced motion in CSS 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, so transitions that aid comprehension should remain.

What easing and duration should UI animations use?

Use ease-out for entering and exiting, ease-in-out for on-screen movement, and never ease-in on UI since it delays the moment the user is watching. Keep UI durations under 300ms: 100-160ms for button presses, 125-200ms for tooltips, and 200-500ms for modals and drawers.