Borrowing it
Nothing to install: this file belongs to textura-agency/ai-design-vault. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/textura-agency/ai-design-vault/main/.claude/skills/motion-system/SKILL.mdgit clone --depth 1 https://github.com/textura-agency/ai-design-vaultWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/textura-agency/ai-design-vault/motion-system)<a href="https://agentmods.dev/skills/textura-agency/ai-design-vault/motion-system"><img src="https://agentmods.dev/badge/skills/textura-agency/ai-design-vault/motion-system/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/textura-agency/ai-design-vault/motion-system"><img src="https://agentmods.dev/badge/skills/textura-agency/ai-design-vault/motion-system.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00113 | $0.01727 |
| Opus 5.5 | $0.00045 | $0.00691 |
| Sonnet 5.5 | $0.00023 | $0.00345 |
| Haiku 4.5 | $0.00011 | $0.00173 |
Grade B, and why
motion-system scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 23d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
cat .claude/stack.json # bindings.motion How it starts
The opening of the file, as written. The whole thing — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The motion layer
This kit's premise: one motion vocabulary, identical across frameworks. The
primitives below have the same names, the same props and the same behaviour
whether they are built on @react-spring/web, svelte/motion, motion-v or
plain motion. A page written against them reads the same in any stack — which
is the entire point of building it as a contract rather than shipping a library.
Read obsidian/frontend/motion-system.md (the contract) and
obsidian/frontend/motion-bindings.md (per-framework mapping) before building.
0. Before you install anything
Check what already exists:
cat .claude/stack.json # bindings.motion
grep -rlE "spring|animate|gsap|motion" --include='*.json' package.json
- A binding already installed wins, even if it is not the kit's default. Two animation libraries is a hard-rule violation; personal preference is not a reason to add one.
- No binding installed → propose one from
motion-bindings.md, say what it costs (bundle size, peer deps) and ask before installing. - Record the answer in
stack.json → bindings.motion/textMotion.
1. The shared render loop — build this first
Every per-frame subscriber goes through one requestAnimationFrame loop.
A page with 20 scroll-driven elements runs one rAF, not 20.
Contract:
subscribe(callback, options?) -> unsubscribe
callback({ time, delta, frame })
options: { framerate?: number } // per-subscriber throttle
- Reference-counted: starts on the first subscriber, stops when the last unsubscribes. An idle page costs nothing.
- Pauses on
document.visibilitychange(hidden tab renders nothing). - One debounced
resizelistener shared the same way — never one per component. - If a smooth-scroll library is in use (
bindings.smoothScroll), it drives the loop rather than running its own: call itsraf(time)from the ticker.
Put it at <source>/lib/animation/ticker.*. This file is the supported
extension point — it is not protected code.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 23d ago First seen · 155 lines · 113 tokens per session scan B 5587d9ab8a29
motion-system is a skill published in the GitHub repository textura-agency/ai-design-vault (25 stars, last pushed 2mo ago), licensed Unlicense. It adds 113 tokens to every session and 1,727 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-14.
motion-system compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| motion-systemtextura-agency/ai-design-vault | Skill | 25 | 2mo ago | Unlicense | B | 113 | Claude Code |
| anti-slop-designsickn33/agentic-awesome-skills | Skill | 49k | yesterday | MIT | A | 34 | Claude Code |
| chakra-ui-builderchakra-ui/chakra-ui | Skill | 41k | yesterday | MIT | A | 214 | Claude Code, Codex |
| visual-ralphYeachan-Heo/oh-my-codex | Skill | 34k | 3d ago | MIT | A | 52 | Codex |
| open-design-setupcompozy/compozy | Skill | 2.8k | yesterday | MIT | A | 67 | Claude Code, Codex |
| frontend-visual-qadaymade/claude-code-skills | Skill | 1.5k | yesterday | MIT | A | 125 | Claude Code, Codex |
| prototype-webnexu-io/html-anything | Skill | 9.4k | 24d ago | Apache-2.0 | A | 24 | Claude Code, Codex |