home / skills / dylantarre / animation-principles / attention-grabbers

This skill helps you apply Disney's attention-grabbing animation principles to draw user focus with badges, banners, and alerts.

npx playbooks add skill dylantarre/animation-principles --skill attention-grabbers

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.4 KB
---
name: attention-grabbers
description: Use when drawing user focus - notification badges, new feature highlights, error callouts, promotional banners, or any animation meant to attract attention.
---

# Attention-Grabbing Animations

Apply Disney's 12 principles to focus-drawing motion.

## Principle Application

**Squash & Stretch**: Pulsing scale draws attention. 1.0 → 1.1 → 1.0 cycle catches peripheral vision.

**Anticipation**: Brief pause before attention animation. Let it build then release.

**Staging**: Position attention elements where users will see them. Corner badges, inline highlights.

**Straight Ahead vs Pose-to-Pose**: Design attention states: rest, active/pulsing, acknowledged.

**Follow Through & Overlapping**: Badge pulses, then count updates. Stagger the attention signals.

**Slow In/Slow Out**: Ease in/out on pulses. Smooth oscillation is less jarring than sharp bounces.

**Arcs**: Shake animations follow arc patterns. Left-right with slight vertical oscillation.

**Secondary Action**: Pulse + glow + color shift for maximum attention (use sparingly).

**Timing**:
- Single attention grab: 300-500ms
- Repeating pulse: 2000-3000ms cycle
- Urgent pulse: 1000-1500ms cycle
- Decay: Stop after 3-5 cycles or 10 seconds

**Exaggeration**: This is where exaggeration shines. Scale to 1.2, bright colors, bold motion.

**Solid Drawing**: Attention elements must still feel part of the UI, not floating or detached.

**Appeal**: Attention should feel like helpful notification, not aggressive demand.

## Timing Recommendations

| Attention Type | Duration | Cycles | Decay |
|---------------|----------|--------|-------|
| Badge Pulse | 300ms | 2-3 | Stop after animation |
| Notification Dot | 2000ms | 3 | 6 seconds total |
| New Feature | 500ms | 2 | Stay subtle |
| Error Shake | 400ms | 1 | None |
| Urgent Alert | 1000ms | infinite | Until dismissed |
| Promotional | 3000ms | 2 | 6 seconds |

## Implementation Patterns

```css
/* Pulse attention */
.badge-pulse {
  animation: pulse 2000ms ease-in-out 3;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}

/* Subtle glow */
.glow-attention {
  animation: glow 2000ms ease-in-out 3;
}

@keyframes glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); }
  50% { box-shadow: 0 0 0 8px rgba(59, 130, 246, 0.3); }
}

/* Error shake */
.shake {
  animation: shake 400ms ease-in-out;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-8px); }
  40%, 80% { transform: translateX(8px); }
}

/* Ring animation (notification) */
.ring {
  animation: ring 2500ms ease-in-out 2;
}

@keyframes ring {
  0%, 100% { transform: rotate(0); }
  10%, 30% { transform: rotate(10deg); }
  20%, 40% { transform: rotate(-10deg); }
  50%, 100% { transform: rotate(0); }
}
```

## Attention Budget

```javascript
// Auto-stop attention after timeout
const attention = element.animate([
  { transform: 'scale(1)' },
  { transform: 'scale(1.15)' },
  { transform: 'scale(1)' }
], {
  duration: 2000,
  iterations: 3
});

// Or with CSS
setTimeout(() => {
  element.classList.remove('attention');
}, 6000);
```

## Key Rules

1. Maximum 1 attention animation visible at a time
2. Auto-stop after 3-5 cycles (10 seconds max)
3. Provide way to permanently dismiss
4. Never use for non-essential content
5. `prefers-reduced-motion`: static indicator only, no animation
6. Urgent animations must have audio/haptic alternative for accessibility

Overview

This skill teaches how to design attention-grabbing UI animations using Disney’s 12 principles of animation. It provides concrete timing, motion patterns, and implementation patterns for badges, notification dots, feature highlights, error shakes, and promotional banners. The guidance balances visibility with user comfort and accessibility.

How this skill works

The skill maps each animation principle to common attention scenarios (squash & stretch for pulses, anticipation for pre-wait, slow in/slow out for ease, etc.). It recommends durations, cycle counts, and decay rules and supplies ready patterns for pulse, glow, shake, and ring animations. It also enforces attention-budget rules: limit concurrent attention, auto-stop cycles, and respect prefers-reduced-motion and dismissal affordances.

When to use it

  • New message or activity badges to draw a quick glance
  • Highlighting a new feature or walkthrough step without interrupting flow
  • Error callouts or form validation that need immediate focus
  • Promotional banners or limited-time offers that should attract attention
  • Urgent alerts that require acknowledgement (with accessibility alternatives)

Best practices

  • Limit to one attention animation visible at a time to avoid overwhelm
  • Auto-stop after 3–5 cycles or 10 seconds; provide a persistent static indicator afterward
  • Use easing (slow in / slow out) and subtle arcs to feel natural and non-jarring
  • Respect prefers-reduced-motion: offer a static or minimal alternative
  • Provide a permanent dismiss and ensure urgent animations have audio/haptic alternatives

Example use cases

  • Badge pulse on inbox icon: 300–500ms micro-pulse then stop after 2–3 cycles
  • Notification dot ring: 2000–3000ms cycle, 3 cycles, then remain subtle
  • Error shake on form submit failure: single 400ms shake with clear message
  • New feature callout: 500ms subtle pulse + glow, 2 cycles, then fade to static highlight
  • Promotional banner: longer 3000ms motion, limited cycles and clear dismiss control

FAQ

How long should a repeating pulse run?

Typical repeating pulses run on a 2000–3000ms cycle and should stop after 3 cycles or about 6 seconds unless the alert is urgent.

What if users prefer reduced motion?

Detect prefers-reduced-motion and replace animations with a static indicator or a minimal, non-animating highlight.

Can I combine pulse and glow?

Yes—combine sparingly as a secondary action (pulse + glow + color shift) and limit cycles to avoid overload.