agentsclimarketplace

Design motion

Skill fusengine/agents/plugins/design-expert/skills/design-motion

Motion pass on a settled layout — the animation-decision gate, transform/opacity-first materials, the 100/300/500 duration scale, exponential/emphasized easing (no bounce), mandatory reduced-motion, and the AI-motion-signature ban.From its SKILL.md

Install
npx -y skills add fusengine/agents --skill design-motion

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

10.5 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it

Design Motion — Timing, Easing, Materials, Restraint

When

After the static body/component exists. Motion is applied on top of a settled layout — never used to compensate for or distract from an unfinished one. Hands off to design-review next (Part 1 checks the reduced-motion fallback + transform/opacity discipline; Part 2's motion-verdict.md issues the Block/Approve).

Input

  • design-system.md motion personality / MOTION_INTENSITY dial (1-10).
  • The static markup/components to animate.

The animation gate — before writing any motion code

Run every candidate through references/animation-decision-framework.md's 4 questions, in order: (1) should this animate at all — frequency decides, never animate keyboard-initiated or 100+/day actions; (2) what's the one-sentence purpose (spatial consistency / state indication / explanation / feedback / preventing jarring change); (3) what easing; (4) what duration. Most "let's animate this" ideas should die at question 1 — that is the point, not a formality to skip.

Materials — transform/opacity first, other properties gated

Default to transform and opacity — they skip layout and paint and run on the GPU. Animating width/height/top/left/margin/padding triggers layout+paint+composite and drops frames; see references/motion-performance.md for the Framer Motion shorthand caveat (x/y/scale shorthands are NOT hardware-accelerated, use the full transform string), the CSS-var recalc trap (never drive child transforms via a custom property on the parent), CSS transitions vs. keyframes for interruptible UI, and velocity-based drag dismissal (~0.11 threshold, not distance alone). Other atmospheric materials — blur, backdrop-filter, clip-path, shadow bloom, masks — are allowed when they demonstrably read as premium and stay smooth on the target viewports, verified in-browser, never a default reach; keep expensive effects bounded to small/isolated areas. references/motion-physics.md covers physical-correctness rules for whichever material is used: never scale(0), origin-aware popovers, asymmetric enter/exit timing (exit ~75% of enter duration), staggered lists (cap total stagger time), blur masking, @starting-style.

Durations — the 100/300/500 rule

TierDurationUse
Micro100-150msbutton press, toggle, instant feedback
State200-300msmenu open, tooltip, hover states
Layout300-500msaccordion, modal, drawer
Entrance500-800mspage load, hero reveal

Exit animations run at ~75% of the matching enter duration. Hard rule for anything that isn't a marketing/explanatory sequence: UI feedback stays under 300ms — a 180ms dropdown reads as more responsive than a 400ms one (references/animation-decision-framework.md §4).

Easing — exponential/emphasized, no bounce

Entering/exiting → ease-out. Moving/morphing on-screen (A→B) or state toggles → ease-in-out. Hover/color change → ease. Constant motion (marquee, progress) → linear. Never ease-in on UI — it delays the exact moment the user is watching most closely. Use the strong custom curves in references/motion-tokens.md (--ease-out: cubic-bezier(0.23, 1, 0.32, 1), --ease-in-out, --ease-drawer) or the exponential/quint-out family (cubic-bezier(0.16, 1, 0.3, 1) and similar) — never the weak built-in CSS easings. Bounce and elastic curves are banned outright — they read as a toy interaction, not a premium one. Hard mechanical gate, zero tolerance: any cubic-bezier with a y-control-point > 1, or the literal elastic/bounce keywords, fails design-review/references/pre-flight-checklist.md check 9. Springs (when used — gesture-driven/interruptible motion only) keep bounce in 0.1-0.3, biased toward 0.1 for dashboards/product register and up to 0.3 for playful/brand register.

Reduced motion — mandatory, not optional

Every animated deliverable ships a prefers-reduced-motion: reduce fallback in the same commit — never a follow-up pass. Full patterns: references/reduced-motion.md (global override, Framer Motion's useReducedMotion()/MotionConfig, per-animation-type disable-vs-simplify table, WCAG 2.2 SC 2.3.3/2.3.1/2.2.2). Disable spatial movement entirely (parallax, auto-playing carousels, zoom/scale transitions — vestibular risk); simplify functional feedback rather than remove it (progress bars and loading spinners stay, slowed and non-spatial; page-slide transitions become an instant swap that keeps navigation feedback). ~35% of adults over 40 are affected by vestibular disorders — this is not an edge case. design-review Part 1 treats a missing reduced-motion fallback as a Critical-severity finding (audit-checklist.md Motion row) that blocks the review.

Ban — the AI motion signature

The single most common AI-generated motion tell: opacity: 0 + translateY(20px) + ease-in-out, applied uniformly to every entrance on the page with zero variation by element role (grounding: ~83% of AI-generated pages ship this exact pattern). Vary instead: stagger timing and entrance direction/distance by section role, easing chosen per the Q3 decision table above, duration chosen per the tier table above — never one blanket transition rule copy-pasted down every section. design-review catches leftovers of this at pre-flight-checklist.md check 4 (motion-claimed-motion-shown: a declared MOTION_INTENSITY > 4 must ship actual motion code) and check 10 (layout-property animation, warning-tier), plus the co-occurrence detectors in anti-ai-slop-audit.md.

Steps

  1. Gate every candidate animation through references/animation-decision-framework.md.
  2. Pick the duration tier (table above) and the easing token from references/motion-tokens.md.
  3. Choose the material — transform/opacity by default; consult references/motion-physics.md for physical correctness and references/motion-performance.md for the GPU/perf guardrails before reaching for anything else.
  4. Apply the category pattern: references/entrance-patterns.md (stagger/fade/slide/scale), references/micro-interactions.md (buttons/toggles/copy actions/loading), references/page-transitions.md (route changes/drill-down/modal), references/patterns-buttons.md / references/patterns-cards.md / references/patterns-navigation.md / references/patterns-microinteractions.md for component-specific treatments, references/interactive-states-ref.md for hover/active/focus/disabled/loading state choreography. references/gsap-scroll-skeletons.md for pinned/scroll-driven sections (Sticky-Stack, Horizontal-Pan) — carries the same motion-claimed/motion-shown honesty rule as the ban above. references/glassmorphism-advanced-ref.md and references/layered-backgrounds-ref.md are gated-use references (blur/layering effects), never a default reach — see design-method's cluster 4 AI-slop warning (glassmorphism + rounded-2xl applied everywhere instead of gated).
  5. Ship the reduced-motion fallback in the same pass — not a follow-up.
  6. Name every effect in the handoff/spec using references/animation-glossary.md's feel→term vocabulary ("the springy thing when a popover opens" → the exact word) — precise handoff, not vibes.

Failure Handling

  • An effect needs blur/filter/backdrop-filter and visibly drops frames on target viewports → fall back to transform/opacity only, note the tradeoff in the handoff.
  • A purely spatial effect (e.g. parallax) has no sane reduced form → disable entirely under the media query rather than approximate a "lite" version.

Output

  • Animated component/page reusing motion tokens (durations/easings) from references/motion-tokens.md — never hand-rolled per instance.
  • prefers-reduced-motion fallback shipped in the same pass.
  • Effects named per references/animation-glossary.md for handoff to design-review or another agent.

Next → design-review — Part 1 checks the reduced-motion fallback and the

transform/opacity discipline mechanically; Part 2's motion-verdict.md issues the Block/Approve on feel, physicality, and accessibility.

References

FilePurpose
references/animation-decision-framework.mdThe 4-question gate — run first, every time
references/motion-performance.mdGPU/perf guardrails, Framer Motion caveat, drag velocity
references/motion-tokens.mdNamed easing curves + spring configs (the token layer)
references/motion-physics.mdPhysical-correctness rules (never scale(0), origin, stagger, @starting-style)
references/reduced-motion.mdMandatory — media query, Framer Motion hooks, WCAG 2.2, disable-vs-simplify table
references/animation-glossary.mdFeel → term vocabulary for specs/handoff
references/entrance-patterns.mdStagger/fade/slide/scale entrance patterns
references/micro-interactions.mdButton/toggle/copy-action/loading micro-animations
references/page-transitions.mdRoute changes, drill-down, modal transitions
references/patterns-buttons.mdButton component motion patterns
references/patterns-cards.mdCard motion/hover patterns
references/patterns-navigation.mdNavigation/responsive-navbar motion
references/patterns-microinteractions.mdBroader micro-interaction/transition patterns
references/interactive-states-ref.mdHover/active/focus/disabled/loading state choreography
references/motion-principles.mdMotion hierarchy, duration scale, easing — general principles
references/motion-patterns.mdFramer Motion pattern library, timing guidelines
references/gsap-scroll-skeletons.mdScroll-driven/pinned skeletons + motion-claimed/motion-shown rule
references/glassmorphism-advanced-ref.mdGated-use glass effects (blur/layering) — never default
references/layered-backgrounds-ref.mdGated-use gradient orbs/blur layers/noise textures

What ships with it: 19 files

60.2 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.