micro-interactions

Micro-interaction Animation

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "micro-interactions" with this command: npx skills add dylantarre/animation-principles/dylantarre-animation-principles-micro-interactions

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

mobile-touch

No summary provided by upstream source.

Repository SourceNeeds Review
General

motion-designer

No summary provided by upstream source.

Repository SourceNeeds Review
General

video-motion-graphics

No summary provided by upstream source.

Repository SourceNeeds Review
General

game-designer

No summary provided by upstream source.

Repository SourceNeeds Review