
Motion One
- 362 installs
- 68 repo stars
- Updated December 30, 2025
- dylantarre/animation-principles
motion-one is a Claude Code skill that implements Disney's 12 animation principles with Motion One springs, keyframes, timelines, and scroll-linked effects via the Web Animations API for developers who need modern motion
About
motion-one is a frontend animation skill that maps all 12 Disney animation principles to Motion One APIs built on the Web Animations API. Examples include squash-and-stretch with animate scale transforms, anticipation via timeline sequences, and scroll-linked motion for lean sites, browser extensions, and islands. The skill favors the motion package imports such as animate and timeline over heavier animation libraries. Developers reach for motion-one when they want performant, principle-driven UI motion on lightweight pages that cannot absorb GSAP-sized dependencies.
- Web Animations API leverage
- Spring and keyframe utilities
- Scroll-linked effects
- Framework-agnostic usage
- Compact runtime footprint
Motion One by the numbers
- 362 all-time installs (skills.sh)
- Ranked #687 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/animation-principles --skill motion-oneAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 362 |
|---|---|
| repo stars | ★ 68 |
| Last updated | December 30, 2025 |
| Repository | dylantarre/animation-principles ↗ |
How do you add Motion One scroll animations?
Add Motion One springs, keyframes, and scroll-linked effects using the Web Animations API for lean sites, extensions, and islands needing modern motion without GSAP weight.
Who is it for?
Frontend developers building lean sites, extensions, or islands who want Disney-principle motion without GSAP weight.
Skip if: Projects already standardized on GSAP, Framer Motion React-only patterns, or native mobile Core Animation workflows.
When should I use this skill?
The user needs Motion One springs, keyframes, scroll effects, or Disney animation principles on a lightweight web frontend.
What you get
Motion One animation code with springs, keyframes, timelines, and scroll-linked Web Animations API effects.
- Motion One animation snippets
- timeline and scroll effect implementations
By the numbers
- Covers all 12 Disney animation principles
Files
Motion One Animation Principles
Implement all 12 Disney animation principles using Motion One's performant Web Animations API wrapper.
1. Squash and Stretch
import { animate } from "motion";
animate(".ball",
{ scaleX: [1, 1.2, 1], scaleY: [1, 0.8, 1] },
{ duration: 0.3, easing: "ease-in-out" }
);2. Anticipation
import { timeline } from "motion";
timeline([
[".character", { y: 10, scaleY: 0.9 }, { duration: 0.2 }],
[".character", { y: -200 }, { duration: 0.4, easing: "ease-out" }]
]);3. Staging
animate(".background", { filter: "blur(3px)", opacity: 0.6 });
animate(".hero", { scale: 1.1 });4. Straight Ahead / Pose to Pose
animate(".element", {
x: [0, 100, 200, 300],
y: [0, -50, 0, -30]
}, { duration: 1 });5. Follow Through and Overlapping Action
timeline([
[".body", { x: 200 }, { duration: 0.5 }],
[".hair", { x: 200 }, { duration: 0.5, at: "-0.45" }],
[".cape", { x: 200 }, { duration: 0.6, at: "-0.5" }]
]);6. Slow In and Slow Out
animate(".element", { x: 300 }, {
duration: 0.6,
easing: [0.42, 0, 0.58, 1] // cubic-bezier ease-in-out
});
// Or: "ease-in", "ease-out", "ease-in-out"
// Or spring: { easing: spring({ stiffness: 100, damping: 15 }) }7. Arc
animate(".ball", {
x: [0, 100, 200],
y: [0, -100, 0]
}, { duration: 1, easing: "ease-in-out" });
// Or with offset path
animate(".element", {
offsetDistance: ["0%", "100%"]
}, { duration: 1 });
// CSS: offset-path: path('M0,100 Q100,0 200,100');8. Secondary Action
const button = document.querySelector(".button");
button.addEventListener("mouseenter", () => {
animate(button, { scale: 1.05 }, { duration: 0.2 });
animate(".icon", { rotate: 15 }, { duration: 0.15 });
});9. Timing
import { spring } from "motion";
// Fast snap
animate(".fast", { x: 100 }, { duration: 0.15 });
// Spring physics
animate(".spring", { x: 100 }, {
easing: spring({ stiffness: 300, damping: 20 })
});
// Slow dramatic
animate(".slow", { x: 100 }, { duration: 0.8, easing: "ease-out" });10. Exaggeration
import { spring } from "motion";
animate(".element", { scale: 1.5, rotate: 720 }, {
easing: spring({ stiffness: 200, damping: 10 }) // overshoot
});11. Solid Drawing
animate(".box", {
rotateX: 45,
rotateY: 30
}, { duration: 0.5 });
// Set perspective in CSS: perspective: 1000px;12. Appeal
animate(".card", {
scale: 1.02,
boxShadow: "0 20px 40px rgba(0,0,0,0.2)"
}, { duration: 0.3, easing: "ease-out" });Stagger Animation
import { stagger } from "motion";
animate(".item",
{ opacity: [0, 1], y: [20, 0] },
{ delay: stagger(0.1) }
);Scroll Animations
import { scroll, animate } from "motion";
scroll(
animate(".parallax", { y: [0, 100] }),
{ target: document.querySelector(".container") }
);In-View Animations
import { inView } from "motion";
inView(".section", ({ target }) => {
animate(target, { opacity: 1, y: 0 }, { duration: 0.5 });
});Key Motion One Features
animate()- Single animationtimeline()- Sequence withatpositioningstagger()- Offset delaysspring()- Physics-based easingscroll()- Scroll-linked animationsinView()- Intersection observer wrapper- Uses Web Animations API (hardware accelerated)
- Tiny bundle size (~3kb)
Related skills
FAQ
How many animation principles does motion-one cover?
motion-one implements all 12 Disney animation principles using Motion One APIs. Each principle maps to concrete animate or timeline code patterns on the Web Animations API.
Why use Motion One over GSAP?
motion-one targets lean sites, extensions, and islands that need modern motion without GSAP bundle weight. Motion One wraps the Web Animations API for performant springs, keyframes, and scroll effects.