micro-interactions

Use when designing small UI feedback moments like button states, toggles, form validation, loading indicators, or notification badges.

INSTALLATION
npx skills add https://github.com/dylantarre/animation-principles --skill micro-interactions
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Micro-interaction Animation

Apply Disney's 12 animation principles to small UI feedback moments and interface details.

Quick Reference

Principle

Micro-interaction Implementation

Squash & Stretch

Button press compression, toggle bounce

Anticipation

Hover state hints, pre-click feedback

Staging

Focus attention on active element

Straight Ahead / Pose to Pose

Progress vs state changes

Follow Through / Overlapping

Ripple effects, settling motion

Slow In / Slow Out

Snappy but smooth transitions

Arc

Toggle switches, circular menus

Secondary Action

Icons respond to parent state

Timing

100-300ms for most interactions

Exaggeration

Clear but not distracting

Solid Drawing

Consistent transform behavior

Appeal

Delightful, purposeful feedback

Principle Applications

Squash & Stretch: Buttons compress slightly on press (scaleY: 0.95). Toggle thumbs squash when hitting bounds. Notification badges bounce on update. Keep subtle—this is UI, not cartoon.

Anticipation: Hover states prepare for click. Buttons lift/grow slightly before press animation. Draggable items elevate on grab start. Loading spinners wind up before spinning.

Staging: Active form field clearly distinguished. Error states demand attention. Success confirmations are unmistakable. One interaction feedback at a time.

Straight Ahead vs Pose to Pose: Progress indicators animate continuously (straight ahead). Checkboxes snap between states (pose to pose). Combine: loading indicator ends with state-change snap.

Follow Through & Overlapping: Ripple effects expand past tap point. Toggle switches overshoot then settle. Checkmarks draw with slight delay after box fills. Menu items stagger in.

Slow In / Slow Out: Quick ease-out for responsive feel. 100ms with ease-out feels instant. Avoid linear—looks broken. Snappy entrance, gentle settling.

Arc: Toggle switches travel in slight arc. Circular action buttons expand radially. Dropdown carets rotate smoothly. Menu items can follow curved path.

Secondary Action: Icon changes color as button state changes. Badge count updates with parent notification. Helper text appears as input focuses. Shadow responds to elevation.

Timing: Immediate feedback: 50-100ms. Standard transitions: 100-200ms. Complex micro-interactions: 200-300ms. Anything longer feels sluggish for small UI.

Exaggeration: Enough to notice, not enough to distract. Error shakes: 3-5px, not 20px. Success scales: 1.05-1.1, not 1.5. Subtle but unmistakable.

Solid Drawing: Transform origin matters—buttons scale from center, tooltips from pointer. Consistent behavior across similar elements. Maintain visual integrity during animation.

Appeal: Micro-interactions add personality without overwhelming. Users should feel the interface is responsive and alive. Small delights build into overall experience quality.

Component Patterns

Button States

.button {

    transition: transform 100ms ease-out,

                box-shadow 100ms ease-out;

}

.button:hover {

    transform: translateY(-1px);

    box-shadow: 0 2px 8px rgba(0,0,0,0.15);

}

.button:active {

    transform: translateY(0) scale(0.98);

    box-shadow: 0 1px 2px rgba(0,0,0,0.1);

}

Toggle Switch

.toggle-thumb {

    transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);

}

.toggle-thumb.active {

    transform: translateX(20px);

}

Checkbox

.checkmark {

    stroke-dasharray: 20;

    stroke-dashoffset: 20;

    transition: stroke-dashoffset 200ms ease-out 50ms;

}

.checkbox:checked + .checkmark {

    stroke-dashoffset: 0;

}

Timing Reference

Interaction

Duration

Easing

Hover

100ms

ease-out

Click/tap

100ms

ease-out

Toggle

150-200ms

spring/elastic

Checkbox

150ms

ease-out

Focus ring

100ms

ease-out

Tooltip show

150ms

ease-out

Tooltip hide

100ms

ease-in

Badge update

200ms

elastic

Form error

200ms

ease-out

Best Practices

  • Every interactive element needs feedback
  • Disabled states: no animation, reduced opacity
  • Group related feedback together
  • Don't animate on every change—filter unnecessary updates
  • Test without animation—functionality shouldn't depend on it
  • Respect prefers-reduced-motion
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card