
12 Principles Of Animation
- 1.2k installs
- 32 repo stars
- Updated March 17, 2026
- raphaelsalaja/skill
12-principles-of-animation is a Claude Code skill that audits web animation code against Disney's 12 principles adapted for interfaces and reports file:line findings for developers who need motion-quality review before s
About
12-principles-of-animation is a MIT-licensed agent skill (version 2.0.0) that reads specified animation source files, evaluates them against Disney's 12 principles adapted for web interfaces, and outputs prioritized findings in file:line format. The skill groups checks into rule categories with priority prefixes so reviewers can triage timing, easing, staging, and related motion issues quickly. Developers reach for 12-principles-of-animation when implementing or reviewing CSS, JavaScript, or framework animation code and want an objective checklist instead of subjective motion critique. Trigger it during PR review, animation refactors, or accessibility and performance passes on interactive UI motion.
- Audits CSS, Tailwind, and Framer Motion code against 12 Disney animation principles adapted for web
- Outputs findings in file:line format with clear pass/fail examples
- Organized into 4 priority rule categories: Timing, Easing, Physics, and Staging
- Checks timing constraints such as user-initiated animations under 300ms and consistent durations
- Works on any codebase containing motion, transitions, or interactive animations
12 Principles Of Animation by the numbers
- 1,245 all-time installs (skills.sh)
- +60 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #324 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/raphaelsalaja/skill --skill 12-principles-of-animationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.2k |
|---|---|
| repo stars | ★ 32 |
| Security audit | 3 / 3 scanners passed |
| Last updated | March 17, 2026 |
| Repository | raphaelsalaja/skill ↗ |
How do you audit web animation code quality?
Automatically audit web animation code against Disney's 12 principles adapted for interfaces.
Who is it for?
Frontend developers reviewing motion implementation in component libraries, marketing sites, or product UI before merge.
Skip if: Teams needing automated performance profiling, bundle-size analysis, or backend API review unrelated to interface motion.
When should I use this skill?
A developer asks to review, implement, or quality-check web animations, transitions, or motion design in specific files or patterns.
What you get
Prioritized file:line animation audit findings grouped by Disney principle rule categories.
- File:line animation audit report
- Prioritized principle violation list
By the numbers
- Evaluates code against Disney's 12 animation principles adapted for web
- Skill version 2.0.0 with MIT license
Files
12 Principles of Animation
Review animation code for compliance with Disney's 12 principles adapted for web interfaces.
How It Works
1. Read the specified files (or prompt user for files/pattern) 2. Check against all rules below 3. Output findings in file:line format
Rule Categories
| Priority | Category | Prefix |
|---|---|---|
| 1 | Timing | timing- |
| 2 | Easing | easing- |
| 3 | Physics | physics- |
| 4 | Staging | staging- |
Rules
Timing Rules
timing-under-300ms
User-initiated animations must complete within 300ms.
Fail:
.button { transition: transform 400ms; }Pass:
.button { transition: transform 200ms; }timing-consistent
Similar elements must use identical timing values.
Fail:
.button-primary { transition: 200ms; }
.button-secondary { transition: 150ms; }Pass:
.button-primary { transition: 200ms; }
.button-secondary { transition: 200ms; }timing-no-entrance-context-menu
Context menus should not animate on entrance (exit only).
Fail:
<motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} />Pass:
<motion.div exit={{ opacity: 0 }} />Easing Rules
easing-entrance-ease-out
Entrances must use ease-out (arrive fast, settle gently).
Fail:
.modal-enter { animation-timing-function: ease-in; }Pass:
.modal-enter { animation-timing-function: ease-out; }easing-exit-ease-in
Exits must use ease-in (build momentum before departure).
Fail:
.modal-exit { animation-timing-function: ease-out; }Pass:
.modal-exit { animation-timing-function: ease-in; }easing-no-linear-motion
Linear easing should only be used for progress indicators, not motion.
Fail:
.card { transition: transform 200ms linear; }Pass:
.progress-bar { transition: width 100ms linear; }easing-natural-decay
Use exponential ramps, not linear, for natural decay.
Fail:
gain.gain.linearRampToValueAtTime(0, t + 0.05);Pass:
gain.gain.exponentialRampToValueAtTime(0.001, t + 0.05);Physics Rules
physics-active-state
Interactive elements must have active/pressed state with scale transform.
Fail:
.button:hover { background: var(--gray-3); }
/* Missing :active state */Pass:
.button:active { transform: scale(0.98); }physics-subtle-deformation
Squash/stretch deformation must be subtle (0.95-1.05 range).
Fail:
<motion.div whileTap={{ scale: 0.8 }} />Pass:
<motion.div whileTap={{ scale: 0.98 }} />physics-spring-for-overshoot
Use springs (not easing) when overshoot-and-settle is needed.
Fail:
<motion.div transition={{ duration: 0.3, ease: "easeOut" }} />
// When element should bounce/settlePass:
<motion.div transition={{ type: "spring", stiffness: 500, damping: 30 }} />physics-no-excessive-stagger
Stagger delays must not exceed 50ms per item.
Fail:
transition={{ staggerChildren: 0.15 }}Pass:
transition={{ staggerChildren: 0.03 }}Staging Rules
staging-one-focal-point
Only one element should animate prominently at a time.
Fail:
// Multiple elements with competing entrance animations
<motion.div animate={{ scale: 1.1 }} />
<motion.div animate={{ scale: 1.1 }} />staging-dim-background
Modal/dialog backgrounds should dim to direct focus.
Fail:
.overlay { background: transparent; }Pass:
.overlay { background: var(--black-a6); }staging-z-index-hierarchy
Animated elements must respect z-index layering.
Fail:
.tooltip { /* No z-index, may render behind other elements */ }Pass:
.tooltip { z-index: 50; }Output Format
When reviewing files, output findings as:
file:line - [rule-id] description of issue
Example:
components/modal/index.tsx:45 - [timing-under-300ms] Exit animation 400ms exceeds 300ms limit
components/button/styles.module.css:12 - [physics-active-state] Missing :active transformSummary Table
After findings, output a summary:
| Rule | Count | Severity |
|---|---|---|
timing-under-300ms | 2 | HIGH |
physics-active-state | 3 | MEDIUM |
easing-entrance-ease-out | 1 | MEDIUM |
References
Related skills
How it compares
Choose this over generic lint rules when the goal is motion-design quality against established animation principles rather than syntax or accessibility alone.
FAQ
What does 12-principles-of-animation check?
12-principles-of-animation reads specified animation source files and evaluates them against Disney's 12 principles adapted for web interfaces. The skill returns prioritized findings in file:line format grouped by rule category prefixes.
What output format does the animation audit skill use?
12-principles-of-animation reports findings as file:line entries with priority category prefixes. Developers can jump directly from each finding to the offending animation code in their editor.
Is 12 Principles Of Animation safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.