Agent skill

Motion Systems

by scott-fryxell in scott-fryxell/brayness

A skill your agent uses when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs…

MITAuto-check passedFrontend & Design

Install Motion Systems

skills CLI
$ npx skills add scott-fryxell/brayness --skill motion-systems -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install scott-fryxell/brayness motion-systems --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/motion-systems .claude/skills/motion-systems && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
motion-systems
GitHub stars
125
Token cost
~1.7k tokens
SKILL.md length
605 words
Files
5 (incl. references)
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs…

  • Works in 4 steps: Continuity - where things came from and… → Feedback - action acknowledged with… → Hierarchy - what changed most and why → …
  • Implementing motion for web interfaces
  • SKILL.md covers Motion Goals, Mechanism Selection, Transform Strategy and Easing System (Including…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Motion Systems is an agent skill from scott-fryxell/brayness. Use when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs transform/translate3d()), and deep View Transitions API patterns for route and state continuity.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/LINEAR_EASING_PATTERNS.md`, `references/MOTION_REVIEW_CHECKLIST.md` and `references/VIEW_TRANSITION_RECIPES.md`).

It sits in Frontend & Design, covering Frontend development. The repository describes itself as: A harness for the anxious digital mind. A safe place for creatives to keep their creative soul while exploring digital skills. The licence is MIT.

When your agent uses it

  • Implementing motion for web interfaces
  • Including CSS transitions and keyframes
  • Linear() easing design
  • Transform strategy (translate/rotate vs transform/translate3d())

Example prompts

  • “/motion-systems”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Continuity - where things came from and where they go
  2. Feedback - action acknowledged with clear response
  3. Hierarchy - what changed most and why
  4. Focus Guidance - attention moves to the right target

What it can do on your machine

Read from SKILL.md and the folder at commit 71f10e2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are css).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Motion Systems loads about 1.7k tokens when it runs, and up to ~3.3k if it reads all its reference files. Until then it costs about 72 tokens; SKILL.md has 605 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from scott-fryxell/brayness at commit 71f10e2, republished under its MIT licence (© scott-fryxell). 605 words, ~1,740 tokens.

Download SKILL.mdSave it as .claude/skills/motion-systems/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
motion-systems
description
Use when designing or implementing motion for web interfaces, including CSS transitions and keyframes, `linear()` easing design, transform strategy (`translate`/`rotate` vs `transform`/`translate3d()`), and deep View Transitions API patterns for route and state continuity.
metadata.category
Design & Frontend

CSS Motion Systems

Production-oriented motion for web UI - interaction clarity, performance, and accessibility, not decoration. Skip motion entirely when it adds cognitive load or delays a state update that must feel instant.

Motion Goals

Each proposal should satisfy at least one of these goals:

  1. Continuity - where things came from and where they go
  2. Feedback - action acknowledged with clear response
  3. Hierarchy - what changed most and why
  4. Focus Guidance - attention moves to the right target

Mechanism Selection

Choose the lightest mechanism that satisfies the interaction:

  • CSS transition - state changes on a single element/component (hover, open/close, selected state)
  • CSS keyframes - multi-stage timeline or repeated motion (loading, attention pulse, choreography)
  • WAAPI - imperative sequencing, playback control, cancel/reverse sync with logic
  • View Transitions API - continuity across DOM swaps, route changes, or layout mode changes

Transform Strategy

translate: / rotate: / scale: (individual properties)

Use individual transform properties when:

  • You want composable state layers (base styles + state overrides)
  • Different interactions control different transform channels
  • You need clearer design-token mapping and maintainability
transform: shorthand

Use shorthand when:

  • Transform order is intentionally coupled
  • You combine multiple functions in one declaration and must preserve exact sequence
  • You need functions not exposed as individual props in your target browser strategy
translate3d() and 3D transforms

Use translate3d() only when:

  • You need actual 3D/perspective behavior
  • You have profiled a measurable compositor benefit in a real bottleneck

Avoid using translate3d() as a blanket "GPU hack". It can increase layer memory and produce jank if overused.

Easing System (Including linear())

Default guidance
  • Use cubic-bezier() for most product interactions
  • Use linear() for piecewise velocity control and custom motion signatures
  • Tokenize easing values and reuse consistently
Where linear() shines
  • Spring-like settle without JS spring physics
  • Controlled overshoot/settle curves
  • Brand motion signatures with explicit velocity shaping

Keep point counts intentional (typically 4-8 points). Prefer readable named tokens over ad-hoc per-component values.

linear() examples by intent
css
:root {
  --ease-linear-enter-soft: linear(0, 0.08 12%, 0.34 36%, 0.74 66%, 0.93 84%, 1);
  --ease-linear-exit-crisp: linear(0, 0.3 18%, 0.72 58%, 0.9 78%, 1);
  --ease-linear-settle-gentle: linear(0, 0.06 10%, 0.31 32%, 0.72 62%, 0.92 82%, 1);
  --ease-linear-emphasis-pop: linear(0, 0.38 20%, 0.88 62%, 1);
}

.chip-enter {
  transition: opacity 180ms var(--ease-linear-enter-soft),
    translate 180ms var(--ease-linear-enter-soft);
}

.panel-exit {
  transition: opacity 150ms var(--ease-linear-exit-crisp),
    transform 150ms var(--ease-linear-exit-crisp);
}

.shared-element-settle {
  transition: transform 320ms var(--ease-linear-settle-gentle);
}

.cta-emphasis {
  transition: transform 170ms var(--ease-linear-emphasis-pop);
}

See: references/LINEAR_EASING_PATTERNS.md

View Transitions API (Deep Use)

Same-document transitions
  • Wrap the DOM/state update in document.startViewTransition(() => update())
  • Name only meaningful shared elements with view-transition-name
  • Style transition pseudo-elements intentionally
Cross-document transitions
  • Opt in with @view-transition { navigation: auto; }
  • Keep shared element naming consistent across pages
  • Ensure entry/exit states remain meaningful when transition is unavailable
Show full SKILL.md (245 more words)Show less
Key pseudo-elements
  • ::view-transition-old(root) / ::view-transition-new(root)
  • ::view-transition-old(name) / ::view-transition-new(name)
  • ::view-transition-group(name)
Failure and fallback behavior
  • Feature-detect and fall back to standard state updates
  • Respect reduced motion by removing spatial travel and keeping clear state change
  • Never block core interactions while waiting for transition effects

See: references/VIEW_TRANSITION_RECIPES.md

Performance Rules

  • Prefer animating transform and opacity
  • Avoid animating layout-affecting props for core interactions (top, left, width, height)
  • Minimize long-running infinite animations on large surfaces
  • Use will-change sparingly and remove when not needed
  • Profile before and after changes (frame stability, long tasks, layer count)

Accessibility Rules

  • Support @media (prefers-reduced-motion: reduce)
  • Replace big travel/zoom with fade or instant state change when reduced motion is requested
  • Keep feedback timing responsive; avoid long delays before state confirmation
  • Ensure focus order, focus visibility, and keyboard behavior remain correct during/after transitions

Timing Heuristics

  • Micro interactions: 120-180ms
  • Component transitions: 180-260ms
  • Structural/layout/route transitions: 240-420ms
  • Exits generally faster than enters

Interaction Design Heuristics

  • Use motion to explain state change, not decorate it
  • Stagger only when it improves scannability or hierarchy
  • Keep directional logic consistent with layout flow
  • Prefer fewer, coherent motion patterns over many unique effects

Output Contract

When using this skill, produce these five sections:

  1. Intent - what user perception or behavior the motion should drive
  2. Motion Spec - duration, easing token, distance, trigger, affected elements
  3. Implementation - concrete CSS/JS/View Transition code
  4. Accessibility Fallback - reduced-motion and unsupported API behavior
  5. QA Checklist - performance, usability, and cross-device verification

References

© scott-fryxell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in skills/motion-systems of scott-fryxell/brayness.

  • SKILL.md
  • references/LINEAR_EASING_PATTERNS.md
  • references/MOTION_REVIEW_CHECKLIST.md
  • references/MOTION_TOKENS.css
  • references/VIEW_TRANSITION_RECIPES.md

Open the folder on GitHubat commit 71f10e2

Compare with similar skills

Motion Systems next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Motion Systems compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Motion Systems this skillscott-fryxell/brayness125—~1.7kAutomated safety check: PassMIT
React Router Developmentremix-run/react-router57k1 repos~1.5kAutomated safety check: PassMIT
React UI State PatternsChrisWiles/claude-code-showcase6.1k8 repos~1.6kAutomated safety check: PassNone
GSAP in Vue, Nuxt and Sveltegreensock/gsap-skills16k3 repos~2.6kAutomated safety check: PassMIT
Svelte Core Best Practicesrilldata/rill2.9k4 repos~1.8kAutomated safety check: PassApache-2.0
Vuetify Playgroundvuetifyjs/vuetify41k—~730Automated safety check: PassCustom licence

Similar skills

  • React Router Development

    remix-run/react-router

    Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • React UI State Patterns

    ChrisWiles/claude-code-showcase

    Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.

    6.1k GitHub starsUsed in 8 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • GSAP in Vue, Nuxt and Svelte

    greensock/gsap-skills

    Shows how to use GSAP in Vue, Nuxt, Svelte and other lifecycle-based frameworks: create after mount, scope selectors to the component, and revert on unmount.

    16k GitHub starsUsed in 3 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Rules for writing idiomatic Svelte 5 code: when to reach for runes like state, derived and effect, and how to handle props, attachments and bindings.

    2.9k GitHub starsUsed in 4 repos~1.8k tokens
    Frontend & DesignAuto-check passed
  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from scott-fryxell/brayness

All 27 skills in this repo
  • Logo Finder

    scott-fryxell/brayness

    Find and install brand SVG logos via SVGL (https://svgl.app/) and Wikimedia Commons fallbacks into any project's static asset folder.

    125 GitHub stars~1.1k tokensUpdated 13 days ago
    Auto-check passed
  • Test Coverage

    scott-fryxell/brayness

    Write Vitest specs for Vue 3 JavaScript (Vite Plus, happy-dom, @vue/test-utils) and analyze V8 coverage + Fallow health to prioritize test-first refactors.

    125 GitHub stars~1.6k tokensUpdated 13 days ago
    Auto-check passed
  • Flexible Visual System

    scott-fryxell/brayness

    Derive a project's visual rules from its existing tokens, palette, type scale, logo, and icons (Intake), then generate raw SVG vector graphics from those rules as a small composable set (module…

    125 GitHub stars~1.9k tokensUpdated 13 days ago
    Auto-check passed
  • Hyperframes

    scott-fryxell/brayness

    Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.

    125 GitHub stars~3.2k tokensUpdated 13 days ago
    Auto-check passed
  • Vue Inspect

    scott-fryxell/brayness

    Inspect live Vue 3 component state via agent-browser eval - no Devtools extension, no console.log.

    125 GitHub stars~779 tokensUpdated 13 days ago
    Auto-check passed
  • Vuetify To Semantic

    scott-fryxell/brayness

    Refactor a Vue page or component from Vuetify to semantic HTML5 + Schema.org microdata + Stylus element selectors.

    125 GitHub stars~1.2k tokensUpdated 13 days ago
    Auto-check passed

Questions about Motion Systems

What does Motion Systems do?

A skill your agent uses when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs…. Motion Systems is an agent skill from scott-fryxell/brayness. Use when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs transform/translate3d()), and deep View Transitions API patterns for route and state continuity.

When should I use Motion Systems?

Motion Systems fits situations like: implementing motion for web interfaces; including CSS transitions and keyframes; linear() easing design; transform strategy (translate/rotate vs transform/translate3d()).

How do I install Motion Systems in Claude Code?

Run `npx skills add scott-fryxell/brayness --skill motion-systems -a claude-code`. Or copy the skill folder (skills/motion-systems in scott-fryxell/brayness) into .claude/skills/motion-systems in your project. Claude Code loads it when a task matches its description.

How do I install Motion Systems in Codex?

Run `npx skills add scott-fryxell/brayness --skill motion-systems -a codex`. Or copy the skill folder (skills/motion-systems in scott-fryxell/brayness) into .agents/skills/motion-systems in your project. Codex loads it when a task matches its description.

Can I use Motion Systems in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scott-fryxell/brayness --skill motion-systems -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/motion-systems, .gemini/skills/motion-systems, .github/skills/motion-systems and .opencode/skills/motion-systems in your project.

What does Motion Systems need to run?

SKILL.md names no scripts, command-line tools or credentials: Motion Systems is instructions for the agent only.

Does Motion Systems access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Motion Systems safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Motion Systems use?

Motion Systems is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Motion Systems use?

About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.

What are the alternatives to Motion Systems?

Skills that share tags, products or a category with Motion Systems: React Router Development (remix-run/react-router, 57k stars), React UI State Patterns (ChrisWiles/claude-code-showcase, 6.1k stars), GSAP in Vue, Nuxt and Svelte (greensock/gsap-skills, 16k stars) and Svelte Core Best Practices (rilldata/rill, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Motion Systems?

scott-fryxell (a GitHub user) maintains it in scott-fryxell/brayness, which has 125 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 28, 2026.

Source: scott-fryxell/brayness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.