If you need to implement Disney's animation principles in code, this gives you working examples for all 12 using Popmotion's functional API. You get squash and stretch with scale transforms, anticipation through sequenced animations, follow-through with delayed timing, and physics-based spring animations for exaggeration. The examples are practical and copy-paste ready, covering everything from basic tweens to keyframe sequences and secondary actions. Popmotion is the library that powers Framer Motion, so if you want fine-grained control over web animations without the framework overhead, this is a solid reference. The code snippets assume you know your way around JavaScript and DOM manipulation.

skills.sh installs
533
GitHub stars
146
last updated
Aug 21, 2026

Install

$ npx -y skills add dylantarre/animation-principles --skill popmotion --agent claude-code

Installs into .claude/skills of the current project.

Files

Popmotion Animation Principles

Implement all 12 Disney animation principles using Popmotion's composable animation functions.

1. Squash and Stretch

import { animate } from "popmotion";

animate({
  from: { scaleX: 1, scaleY: 1 },
  to: { scaleX: 1.2, scaleY: 0.8 },
  duration: 150,
  onUpdate: ({ scaleX, scaleY }) => {
    element.style.transform = `scaleX(${scaleX}) scaleY(${scaleY})`;
  }
});

2. Anticipation

// Wind up then action
animate({
  from: 0,
  to: 10,
  duration: 200,
  onUpdate: v => element.style.transform = `translateY(${v}px) scaleY(0.9)`,
  onComplete: () => {
    animate({
      from: 10,
      to: -200,
      duration: 400,
      ease: easeOut,
      onUpdate: v => element.style.transform = `translateY(${v}px)`
    });
  }
});

3. Staging

animate({
  from: 1,
  to: 0.6,
  onUpdate: v => bg.style.opacity = v
});
animate({
  from: 1,
  to: 1.1,
  onUpdate: v => hero.style.transform = `scale(${v})`
});

4. Straight Ahead / Pose to Pose

import { keyframes } from "popmotion";

Sponsors

Details

Repository
github.com/dylantarre/animation-principles
Category
Design & UI/UX
First seen
Jun 3, 2026

More from dylantarre/animation-principles

All 144
1dylantarre avatarcomfort-safetydylantarre/animation-principlesUse when creating animations that reassure users, reduce anxiety, or communicate protection and security.532skills.sh installs
2albermonte avatarmaterial-3-expressivealbermonte/android-skillsAndroid UI/UX design or review with Material 3 Expressive (M3 Expressive / Material You Expressive). Use when selecting expressive component tokens, defining ex531skills.sh installs
3dylantarre avatarmedium-300-500msdylantarre/animation-principlesUse when building standard animations between 300-500ms - page transitions, significant UI changes, animated illustrations that need clear communication530skills.sh installs
4dylantarre avataruniversal-industrydylantarre/animation-principlesUse when designing animations for any industry or when industry-specific guidelines do not apply530skills.sh installs
5dylantarre avatartrust-reliabilitydylantarre/animation-principlesUse when creating animations that build user confidence, establish credibility, and communicate dependability.529skills.sh installs
6dylantarre avatardeliberate-1200-2000msdylantarre/animation-principlesUse when building slow intentional animations between 1200-2000ms - app intros, loading sequences, storytelling moments that create emotional resonance528skills.sh installs