agentleFS
app-builders-clubapp-builders-club/design-builder/skills/motion/SKILL.md

motion

Skill4 starsChanged 13 days agoMITView on GitHub

Web animation + short-video knowledge for design-builder. Two modes: (1) UI motion in production web apps — GSAP / WAAPI / CSS / Anime.js / Lottie / Three.js library patterns, easing, stagger, performance, prefers-reduced-motion, motion anti-slop; (2) short video generation via HyperFrames (HTML compositions, CLI, scene transitions, captions). Activated by /build, /improve, /design_page, /design_screen when motion is part of the spec — and standalone when the user asks for animation help or a video. Sister skill to `design`; lives under skills/motion/.

38 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use defaults, viewports and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • sanmidableSkill

    defaults

    Also in 3 projects that use this

  • sanmidableSkill

    viewports

    Also in 3 projects that use this

  • miovragSkill

    keyboard

    Load this skill for every project containing interactive UI elements — buttons, links, modals, dropdowns, sliders, tabs, carousels, or any custom widget. Under no circumstances create an interactive component that cannot be fully operated by keyboard alone. Absolutely always ensure visible focus indicators, logical tab order, and no keyboard traps. Apply these rules to every interactive element without exception.

    Also in 3 projects that use this

  • soilmassSkill

    color

    Color animations including hue shifts, saturation changes, brightness transitions, and contrast adjustments. Use when implementing color morphing, theme transitions, mood effects, or attention-grabbing color pulses. Provides tokens for all color property animations.

    Also in 4 projects that use this

  • owshq-mecSkill

    layout

    Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

    Also in 3 projects that use this

  • GoogleSkill

    critique

    Expertise in auditing and fixing repository scripts and GitHub Actions workflows to ensure technical robustness and security.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 32 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If motion is not part of the request, do nothing.

    line 23
  2. Distinctive:

    If the request is ambiguous ("can you make the landing more dynamic?"), default to web-ui mode.

    line 36
  3. Very specific:

    When /improve or /review runs, route motion concerns through references/anti-patterns.md.

    line 79
  4. Very specific:

    When the user asks for a video, this skill is the primary skill (not design).

    line 97

“Common” is measured: kept by at least 6 in 10 of the 32 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

HyperFrames CLI requires Node >=22 in verified version 0.8.225 (2026-11-01); check installed engines and CLI help before video workflows.

Motion Knowledge Base — for design-builder

You are the motion knowledge layer of design-builder. The sister design skill owns the three-layer architecture (Layer 1 facts → Layer 2 filters → emit). This skill plugs into both:

  • Layer 1 (KB-EXTENSION) — library-level animation knowledge that the animations MCP type alone does not cover (easing curves, registration patterns, performance, accessibility).
  • Layer 2 (Anti-Patterns) — motion-specific anti-slop rules listed in references/anti-patterns.md.

You activate when:

  1. A spec generated by /design_page or /design_screen lists motion in its animation: block, and /build is now emitting code.
  2. /improve is asked to add or fix motion on user code.
  3. The user explicitly asks for animation help on their web app.
  4. The user asks for a short video — switch to video mode (HyperFrames pipeline).

If motion is not part of the request, do nothing. Don't volunteer animation suggestions from this skill unless the spec calls for them — gratuitous motion is the #1 way design-builder produces AI slop.


Mode router (read first)

SignalModePrimary refs
Production web app, React/Next/Svelte/etc., motion is incidental to the UIweb-uireferences/selection.md → pick library → corresponding references/web-animations/*.md
User asked for a short video, intro/outro, social ad, product promo, hero loop rendered to MP4/WebMvideoreferences/video/hyperframes.md + references/video/hyperframes-cli.md
Lottie file already exists or the user mentions After Effects / Bodymovin exporteither modereferences/web-animations/lottie.md
3D / WebGL hero, product spin, shader plateweb-ui (if interactive) or video (if pre-rendered)references/web-animations/three.md

If the request is ambiguous ("can you make the landing more dynamic?"), default to web-ui mode. Switch only when the user explicitly says "render", "video", "MP4", or names a length in seconds with a delivery target (Instagram, Twitter, YouTube short).


Web-UI mode — the contract

You are writing motion that ships in a real web app. That means:

  1. Honor prefers-reduced-motion: reduce — every motion path must collapse to a non-motion variant. For GSAP use gsap.matchMedia(); for CSS use @media (prefers-reduced-motion: reduce); for WAAPI gate element.animate() behind a JS check.
  2. Stay on the compositor — animate transform and opacity only. width, height, top, left, margin cause layout thrash. The library refs all repeat this rule; enforce it.
  3. Finite duration, finite repeats — even for "ambient" loops, prefer a finite repeat count tuned to a known cycle length, with a clean exit. Infinite animations break tab-switch heuristics, drain battery on mobile, and hide animation bugs.
  4. No render-blocking JS — initialize animations after the relevant DOM exists, but don't gate first paint on an animation library load. Lazy-import GSAP/Anime.js for non-above-the-fold motion.
  5. Pick one library per concern — don't mix GSAP and Anime.js in the same file. Don't drive a CSS keyframe with WAAPI's animate(). The selection table in references/selection.md is the decision tree.

Video mode — the contract

You are emitting an HTML composition that HyperFrames will seek and screenshot frame-by-frame, then encode to MP4/WebM with FFmpeg. That means:

  1. Deterministic — no Math.random(), Date.now(), performance.now(), requestAnimationFrame as source of truth. Use seeded PRNGs (mulberry32) when randomness is needed.
  2. Synchronous setup — build timelines and register them on window.__timelines[<composition-id>] synchronously after page load. No async, no setTimeout, no Promises.
  3. Finite everything — no repeat: -1, no infinite CSS animation-iteration-count. Compute repeats from the composition duration.
  4. Library adapters — HyperFrames seeks GSAP via window.__timelines, Anime.js via window.__hfAnime, Lottie via window.__hfLottie, Three.js via the hf-seek event. Each library ref documents its registration contract.
  5. CLI workflow — every video composition ends with npx hyperframes lint && npx hyperframes inspect && npx hyperframes render. Skip lint and you'll ship broken frames. See references/video/hyperframes-cli.md.

Library quick-reference (decision matrix)

Full guidance: references/selection.md. One-line summary:

LibraryWhen to reach for itWeb-UI refVideo ref
CSS animationsDecoration, shimmer, glow, single-element entrances. No JS dependency.web-animations/css.mdsame
WAAPINative browser keyframes, no library, JS-driven timing without GSAP weight.web-animations/waapi.mdsame
GSAPScene choreography, complex stagger, timeline sequencing, scroll-driven motion. The default for non-trivial UI motion.web-animations/gsap.mdrequired for video mode
Anime.jsCompact SVG/DOM flourishes when the user already uses it; otherwise prefer GSAP.web-animations/anime.mdsame
LottieAfter Effects exports, logo reveals, illustrative micro-anims authored by a designer.web-animations/lottie.mdsame
Three.js3D, WebGL, shader plates, particles. Heavy — justify the bundle cost.web-animations/three.mdsame

Anti-patterns (Layer 2 hook)

When /improve or /review runs, route motion concerns through references/anti-patterns.md. The list includes:

  • Linear easing on UI motion (always reads as "AI default" — use power2.out / cubic-bezier(0.2, 0, 0, 1) etc.)
  • Motion without a prefers-reduced-motion fallback
  • Animating layout properties when transforms work
  • Infinite loops without a defined cycle exit
  • Parallax/scroll-driven motion that ignores reduced-motion or mobile
  • Multiple competing animation libraries in the same component
  • Entrance animations on every element on first paint (delay above-the-fold motion to after LCP)
  • Decorative motion that interferes with reading (auto-rotating carousels < 8s, infinite text marquees)

Integration with /build, /improve, /design_page, /design_screen

  • /design_page and /design_screen may include an animation: block in the spec. If they do, this skill is the source for what library to recommend and the patterns the spec should reference.
  • /build reads the spec and, when the animation: block exists, consults this skill to emit production-ready library code. The skill does not emit code itself — /build does, this skill informs.
  • /improve consults the references/anti-patterns.md checklist when motion is in scope of the improvement target.
  • When the user asks for a video, this skill is the primary skill (not design). The video pipeline is self-contained under references/video/.

References (loaded on demand)

Web-UI mode

  • references/selection.md — pick the right library for a given motion job. Decision tree.
  • references/web-animations/css.md — CSS keyframes, animation-fill-mode, prefers-reduced-motion.
  • references/web-animations/waapi.md — element.animate(), KeyframeEffect, currentTime seeking.
  • references/web-animations/gsap.md — tweens, timelines, easing, stagger, matchMedia, performance.
  • references/web-animations/anime.md — Anime.js v4 patterns.
  • references/web-animations/lottie.md — lottie-web and dotLottie players.
  • references/web-animations/three.md — Three.js scenes, GLTF + AnimationMixer.

Video mode

  • references/video/hyperframes.md — composition authoring contract: data-attributes, timeline registration, scene transitions, layout-before-animation rule.
  • references/video/hyperframes-cli.md — npx hyperframes init / lint / inspect / preview / render / transcribe / tts.
  • references/video/tailwind-runtime.md — Tailwind v4 browser runtime when init --tailwind is used.

Cross-cutting

  • references/anti-patterns.md — motion anti-slop rules. Consumed by /improve and /review.

Source attribution

The library and HyperFrames knowledge in references/ is adapted from the open-source heygen-com/hyperframes skill set (vendored at .agents/skills/, lockfile skills-lock.json). Original skills are HyperFrames-contract-first; the references in this folder strip the seek/contract sections for web-UI mode and keep them for video mode. License attribution lives in NOTICE.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.