From magic-ui-ux
Generates per-page animation choreography specs. Reads UX briefs for psychology context and design tokens for style-appropriate motion. Produces implementation-ready specs with Framer Motion, GSAP + ScrollTrigger, Swup.js, and Lenis code patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/magic-ui-ux:animationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate per-page animation specs that translate UX psychology decisions into concrete motion. Every section in a designed page gets entrance animation, scroll behavior, and accessibility fallback specs -- with exact library APIs, timing values, and easing functions that a developer can implement without guessing.
Generate per-page animation specs that translate UX psychology decisions into concrete motion. Every section in a designed page gets entrance animation, scroll behavior, and accessibility fallback specs -- with exact library APIs, timing values, and easing functions that a developer can implement without guessing.
Animation specs are supplementary deliverables. They can be generated after the UI Agent completes screen generation via the /design command, or run standalone for any page with status "designed" or "iterated" in state.json.
| Parameter | Type | Required | Description |
|---|---|---|---|
page | string | Yes | Page name (must have status "designed" or "iterated" in state.json) |
uxBrief | file | Yes | UX brief from .ui-ux/briefs/{page}-ux-brief.md |
tokens | object | Yes | Design tokens from .ui-ux/tokens.json |
.ui-ux/briefs/{page}-animation-spec.mdstate.json.animationSpecs[] with new entry.ui-ux/state.json -- verify the target page exists and has status "designed" or "iterated". If not, halt with an error explaining the page must be designed first..ui-ux/tokens.json -- extract the UI style (e.g., "Minimalism", "Dark Mode Premium") to determine animation intensity..ui-ux/briefs/{page}-ux-brief.md -- extract the section structure, section types, and psychology skills applied to each section.skills/animation/references/animation-guide.md -- load library-specific patterns for reference during choreography assembly.For each section in the UX brief:
| UI Style | Intensity | Notes |
|---|---|---|
| Minimalism | restrained | Fade-only entrances, no parallax, subtle scroll |
| Clean Modern | restrained | Fade + slight translate, minimal scroll effects |
| Editorial | moderate | Elegant reveals, text-focused animations |
| Bold / Vibrant | expressive | Larger transforms, parallax, energetic timing |
| Organic / Rounded | moderate | Soft, flowing animations, gentle easing |
| Technical / Data-Driven | restrained | Precise, grid-aligned reveals, counter animations |
| Dark Mode Premium | expressive | Dramatic reveals, glow effects, sophisticated scroll |
Build the full-page animation choreography:
Entrance Sequence:
whileInView with viewport={{ once: true, margin: "-100px" }}Scroll Behaviors:
start/end valuesPage Transitions:
Smooth Scroll:
Reduced Motion Fallback:
prefers-reduced-motion alternative:
Write the animation spec to .ui-ux/briefs/{page}-animation-spec.md with this structure:
# Animation Spec: {Page Name}
## Overview
- **UI Style:** {from tokens}
- **Animation Intensity:** {restrained | moderate | expressive}
- **Smooth Scroll:** {Lenis config summary}
- **Page Transition:** {Swup type if multi-page, or "N/A -- single page"}
## Section Choreography
### {Section Name}
**Type:** {section type}
**Psychology:** {skills applied}
**Entrance:** {Framer Motion props -- initial, animate, transition}
**Scroll:** {GSAP ScrollTrigger config if applicable, or "None"}
**Children Stagger:** {staggerChildren value}
**Reduced Motion:** {fallback behavior}
[repeat for each section]
## Page Transition
{Swup.js configuration and CSS, or "Not applicable"}
## Smooth Scroll Setup
{Lenis initialization code with GSAP integration}
## Accessibility
{prefers-reduced-motion CSS media query}
{JS detection pattern}
{Summary of what changes under reduced motion}
state.json.animationSpecs[]:
{ "page": "{page}", "specPath": ".ui-ux/briefs/{page}-animation-spec.md" }
state.json.updatedAt to current ISO timestampThe /design command can optionally invoke this skill after the UI Agent completes screen generation. The animation spec is a supplementary deliverable -- not required for screen generation. It can also be run standalone for any page that has been designed:
# After /design completes, optionally run:
# "Generate animation spec for {page}"
See references/animation-guide.md for detailed library-specific patterns, section-type mappings, psychology-animation mappings, and anti-patterns.
npx claudepluginhub flyingwebie/skills --plugin magic-ui-uxCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.