What problem does it solve? Deciding whether, why, and how to animate a UI element is error-prone: wrong easing curves, sluggish durations, keyframes on rapidly-triggered elements, and missing reduced-motion support all make interfaces feel worse. This Skill turns a request for motion into a reviewed-quality implementation by walking a fixed decision sequence before writing any code. ## Core Features & Use Cases - Gated build sequence: First decides whether the element should animate at all (frequency tiers, keyboard-initiated disqualifiers), names the motion's purpose, then picks the cheapest tool — CSS transition, @starting-style, CSS animation, WAAPI, or Motion. - Opinionated ingredient tables: Fixed easing curves (cubic-bezier(0.23, 1, 0.32, 1) and friends), duration budgets per component type, spring configs, and GPU-safe property rules (transform/opacity only, never scale(0)). - Ready-made recipes: RECIPES.md ships implementations for button press, dropdown, tooltip, modal, drawer, toast, accordion, stagger, hold-to-confirm, tab indicator, scroll reveal, and drag-to-dismiss. - Use Case: Ask to animate a dropdown menu, and get a popover that scales from its trigger's transform-origin at 200ms with a strong ease-out, plus reduced-motion and hover gating shipped in the same change. ## Quick Start Ask the assistant to animate the dropdown menu opening so it scales out of its trigger with proper easing and reduced-motion support.