attention-grabbers — скилл для Claude Code: анимации, которые ловят
Скилл для ИИ-агента, который подсказывает, как делать пульсации бейджей, тряску ошибок и подсветку новых функций по принципам Disney.
npx skills add dylantarre/animation-principles --skill attention-grabbers -a claude-codeЧто делает attention-grabbers
Скилл описывает, как применять 12 принципов анимации Disney к движению, которое должно притягивать внимание: пульсирующие бейджи, точки уведомлений, тряска при ошибке, подсветка новой функции, промо-баннеры. Внутри — разбор по каждому принципу: squash & stretch для пульсации масштаба, anticipation перед рывком, staging для расположения элемента, slow in/slow out для плавности.
Есть таблица с таймингами: одиночный захват внимания 300–500 мс, повторная пульсация 2000–3000 мс, срочная 1000–1500 мс, затухание после 3–5 циклов или 10 секунд. Плюс готовые CSS-паттерны: pulse, glow, shake, ring с keyframes, и пример на JavaScript через element.animate() с автоостановкой по setTimeout.
Скилл задаёт жёсткие правила: не больше одной анимации внимания на экране, автостоп после 3–5 циклов, обязательная возможность отключить навсегда, prefers-reduced-motion — только статичный индикатор. Для срочных оповещений нужна звуковая или haptic-альтернатива. Если у вас в интерфейсе уже мигает три бейджа одновременно — это повод проверить, что скажет скилл.
Какие задачи решает
- сделать пульсацию бейджа уведомлений
- подобрать тайминг для тряски при ошибке
- добавить подсветку новой функции без раздражения
- настроить автоостановку анимации внимания
- учесть prefers-reduced-motion в анимации
Примеры запросов агенту
- сделай пульсацию бейджа уведомлений по attention-grabbers
- добавь тряску поля при ошибке валидации
- подсвети новую кнопку в тулбаре, но не дольше 6 секунд
Как установить attention-grabbers
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill attention-grabbers -a claude-code2Вручную: положить файлы
~/.claude/skills/attention-grabbers/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/attention-grabbers/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill attention-grabbers -a codex2Вручную: положить файлы
.agents/skills/attention-grabbers/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill attention-grabbers -a cursor2Вручную: положить файлы
.cursor/skills/attention-grabbers/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles attention-grabbers2Вручную: положить файлы
.github/skills/attention-grabbers/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill attention-grabbers -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/05-by-animation-type/attention-grabbersВручную: положить файлы
.devin/skills/attention-grabbers/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill attention-grabbers -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о attention-grabbers
Как установить attention-grabbers в Claude?
Выполните npx skills add dylantarre/animation-principles --skill attention-grabbers -a claude-code. Скилл окажется в ~/.claude/skills/attention-grabbers/SKILL.md.
Что делает attention-grabbers?
Подсказывает агенту, как строить анимации, которые притягивают взгляд: пульсации, тряску, подсветку. Опирается на 12 принципов Disney и даёт тайминги с CSS-примерами.
Какие ограничения у скилла?
Он требует не больше одной анимации внимания одновременно, автостоп после 3–5 циклов, способ отключить навсегда и статичный индикатор при prefers-reduced-motion.
Исходный текст
SKILL.md · MIT
---
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
© dylantarre · MIT · dylantarre/animation-principles