motion-performance-architect

Defines motion budgets, compositor-only property rules, and reduced-motion contracts for animation-heavy frontends.

1|Updated Aug 25, 2026
One-click install
npx skills add https://github.com/sabiscore/swarmxq --skill motion-performance-architect-sabiscore
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: motion-performance-architect
Source: https://github.com/sabiscore/swarmxq/tree/main/.ai/skills/motion-performance-architect
Command: npx skills add https://github.com/sabiscore/swarmxq --skill motion-performance-architect-sabiscore

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Animation-heavy frontends often suffer from jank, layout thrash, and dropped frames because developers animate layout-triggering properties without a performance budget. This Skill establishes the motion contract before any animation code is written, so every animation respects frame budgets and accessibility requirements. ## Core Features & Use Cases - Motion Intent Classification: Categorizes animations as feedback, transition, reveal, decoration, or loading, each with a strict duration budget. - Compositor-Safe Property Rules: Enforces animating only transform, opacity, and filter while banning layout-triggering properties like width, height, top, and margin. - Performance Measurement Protocol: Provides Long Animation Frame observers, FPS monitors, and Chrome DevTools Protocol checks to detect frames exceeding 16.67ms. - Reduced Motion Contract: Exports a MotionContract object defining reduced-motion equivalents so accessibility is designed in from the start. - Use Case: Before building a page with route transitions and staggered list reveals, run this Skill to produce the motion contract, route-level budgets, and an anti-pattern audit checklist that the implementation skill then follows. ## Quick Start Ask the AI to set up the motion strategy and performance budget for your animation-heavy page before writing any animation code.

Frequently Asked Questions about motion-performance-architect

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix janky animations in my web app?

Janky animations usually come from animating layout-triggering properties like width, height, top, or margin. Switch to compositor-only properties such as transform, opacity, and filter, then measure with a Long Animation Frame observer to confirm no frame exceeds 16.67ms.

Which CSS properties are safe to animate at 60fps?

Transform, opacity, and filter are compositor-safe and can be animated without triggering layout or paint. Properties like width, height, top, left, margin, padding, and font-size force layout recalculation and should never be animated in production.

How do I measure animation performance in the browser?

Use the Long Animation Frame API via a PerformanceObserver to log frames exceeding 16.67ms, or run a requestAnimationFrame-based FPS monitor in development. For CI, capture frame metrics through the Chrome DevTools Protocol during Playwright tests.

When should I use will-change in CSS animations?

Apply will-change only during an active animation and remove it immediately after, typically via animationstart and animationend event listeners. Applying it globally or permanently creates excess GPU layers and causes memory bloat.

How do I implement reduced motion for accessibility?

Design the no-motion path first: replace spatial transforms with opacity fades, collapse durations to near-zero (0.001s), and remove stagger delays. Gate decorative animations behind the prefers-reduced-motion media query so state changes still communicate without movement.

Why does my staggered list animation feel slow?

Staggering 100 or more items creates entrance sequences lasting many seconds. Cap staggered items at 8 to 10 and batch the remainder, keeping total reveal duration within the 250 to 400ms reveal budget.