animator
Animator
Overview
Design and implement Motion One animations that feel polished, stay fast on real devices, and support accessibility constraints. Keep animations purposeful, subtle, and consistent with product intent.
Read references/motion-one-playbook.md for concrete patterns, timing/easing defaults, anti-patterns, and code examples.
Workflow
- Define animation intent and scope.
- Choose the simplest Motion One primitive.
- Implement with transform/opacity first.
- Tune easing, duration, and sequencing.
- Validate performance and accessibility.
- Iterate on feel, then finalize.
1) Define Intent And Scope
State the UX purpose before writing code:
- Guide attention.
- Confirm user actions.
- Explain state change.
- Reveal hierarchy progressively.
If the animation does not support one of these goals, remove it.
2) Choose The Simplest Primitive
Prefer this order:
animate()for direct property transitions.stagger()for list/sequence reveals.scrolloptions for scroll-linked effects.
Avoid introducing extra tooling unless Motion One cannot cover the use case.
3) Implement With Compositor-Friendly Properties
Default to these properties:
transform(x,y,scale,rotate)opacity
Avoid animating layout-triggering properties (width, height, top, left) unless required.
4) Tune Feel
Start with practical defaults:
- Interaction duration: 0.2s to 0.5s.
- Entrance: faster than exit.
- Easing: natural curves or spring behavior.
- Sequences: small stagger offsets for hierarchy.
Do not animate from scale(0). Start from ~0.95 plus opacity.
Set transform-origin to match perceived motion direction.
5) Validate Performance And Accessibility
Performance checks:
- Confirm smoothness around 60fps on representative devices.
- Inspect frame drops and long tasks with browser dev tools.
- Use
will-changeselectively for high-value elements.
Accessibility checks:
- Respect
prefers-reduced-motion. - Reduce duration/intensity or disable non-essential motion.
- Never rely on animation alone to convey critical information.
6) Finalize With Consistency
Align motion system-wide:
- Reuse a small set of easings and durations.
- Keep decorative motion secondary to functional motion.
- Limit simultaneous animated elements per viewport.
Output Expectations
When delivering animation work, provide:
- A short rationale tying each animation to UX purpose.
- Motion One implementation snippet(s).
- Performance + reduced-motion handling notes.
- Any assumptions or device constraints.
Reference
references/motion-one-playbook.md: installation, API patterns, defaults, anti-patterns, advanced examples, and source links.
More from sebastiaanwouters/dotagents
flyctl
Deploy and manage apps on Fly.io using flyctl CLI. Triggers on: fly deploy, fly.io, flyctl, deploy to fly. Handles launch, deploy, scale, secrets, volumes, databases.
79teacher
Guide learning and deep understanding through proven methodologies (Socratic, Feynman, Problem-Based). Use when user says "help me understand", "teach me", "explain this", "learn about", "socratic", "feynman", "problem-based", "I don't understand", "confused about", "why does", or wants to truly grasp a concept.
77chef
Telegram communication for AI agents. ALL methods are BLOCKING. Use for user interviews, status updates, and feedback collection.
34bitwarden
Retrieves API keys, passwords, secrets from Bitwarden vault using bw CLI. Triggers on missing env variables, missing API keys, missing secrets, "secret not found", "env not set", or "use bw".
29librarian
Use for code research that needs dependency internals, upstream implementation examples, or external prior art. Always delegate to a subagent that investigates with opensrc and web search, then return only distilled findings, versions, paths, and links.
29frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications. Generates creative, polished code that avoids generic AI aesthetics.
28