continuous-loops — скилл для Claude Code: что делает и как установить
Скилл учит агента создавать зацикленные CSS-анимации по принципам классической мультипликации. Пригодится для лоадеров, пульсаций, шиммеров и фоновых эффектов.
npx skills add dylantarre/animation-principles --skill continuous-loops -a claude-codeЧто делает continuous-loops
Скилл задаёт правила для бесконечных анимаций вроде спиннеров загрузки, индикаторов печати или фонового парения. Модель применяет принципы анимации к коду: задаёт лёгкие колебания масштаба (от 0.98 до 1.02) вместо резких рывков, сдвигает фазы в элементах индикаторов на 120° и выдерживает паузы перед сменой направления. Для спиннеров выбирается вращение длительностью от 600 до 800 мс, а для фонового дыхания и покачивания — интервалы до 5000 мс.
В подсказки включены готовые шаблоны CSS для вращающихся спиннеров на линейной функции, прыгающих точек с задержками по 160 мс и мягких пульсаций с функцией ease-in-out.
Для сохранения производительности скилл запрещает анимировать свойства геометрии вроде ширины или отступов. Разрешены только transform и opacity. Если бесконечный цикл длится дольше секунды, в стили добавляется директива will-change: transform, а для ушедших из области видимости блоков требуется отключение через Intersection Observer.
Какие задачи решает
- настроить бесконечный спиннер без видимых рывков на стыке кадров
- создать органичную анимацию пульсации кнопки через
transformиopacity - рассчитать фазовый сдвиг и задержки для трёх прыгающих точек индикатора печати
- добавить адаптацию бесконечных циклов под правило
prefers-reduced-motion
Примеры запросов агенту
- Сделай CSS-анимацию для индикатора загрузки с тремя прыгающими точками.
- Напиши плавную пульсацию для бейджа уведомлений с циклом в две секунды.
- Сверстай бесконечно вращающийся спиннер с лёгким покачиванием по принципам вторичного действия.
Как установить continuous-loops
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill continuous-loops -a claude-code2Вручную: положить файлы
~/.claude/skills/continuous-loops/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/continuous-loops/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill continuous-loops -a codex2Вручную: положить файлы
.agents/skills/continuous-loops/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill continuous-loops -a cursor2Вручную: положить файлы
.cursor/skills/continuous-loops/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles continuous-loops2Вручную: положить файлы
.github/skills/continuous-loops/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill continuous-loops -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/05-by-animation-type/continuous-loopsВручную: положить файлы
.devin/skills/continuous-loops/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill continuous-loops -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о continuous-loops
Как установить continuous-loops в Claude Code?
Выполните в терминале команду npx skills add dylantarre/animation-principles --skill continuous-loops -a claude-code. Файл навыка сохранится по пути ~/.claude/skills/continuous-loops/SKILL.md.
Что делает скилл continuous-loops?
Он даёт модели правила создания бесконечных анимаций на CSS с учётом таймингов, фазовых сдвигов и проверки восприятия за 30 секунд. Инструкции помогают делать зацикленные элементы ненавязчивыми.
Какие требования к производительности задаёт этот скилл?
Анимации должны затрагивать исключительно свойства transform и opacity. Для циклов длиннее одной секунды требуется свойство will-change: transform, а анимации вне зоны видимости нужно останавливать через Intersection Observer.
Исходный текст
SKILL.md · MIT
---
name: continuous-loops
description: Use when creating ongoing animations - loading spinners, pulsing indicators, ambient motion, background effects, or any animation that repeats indefinitely.
---
# Continuous Loop Animations
Apply Disney's 12 principles to animations that never stop.
## Principle Application
**Squash & Stretch**: Subtle scale oscillation (0.98-1.02) creates organic breathing. Avoid rigid mechanical loops.
**Anticipation**: Build anticipation into the loop cycle. Brief pause at extremes before reversing.
**Staging**: Loops should support, not dominate. Keep amplitude subtle for background elements.
**Straight Ahead vs Pose-to-Pose**: Design keyframe poses that loop seamlessly. End frame must flow into start frame.
**Follow Through & Overlapping**: Multi-part loops have elements at different phases. Three dots pulse with 120° phase offset.
**Slow In/Slow Out**: Use ease-in-out for smooth oscillations. Linear motion looks mechanical.
**Arcs**: Circular motion follows true arcs. Spinners rotate, pendulums swing, orbits circle.
**Secondary Action**: Primary rotation + secondary wobble. Spinner spins while slightly bouncing.
**Timing**:
- Fast loops: 500-800ms (spinners, urgent indicators)
- Medium loops: 1000-2000ms (pulsing, breathing)
- Slow loops: 2000-4000ms (ambient, background)
**Exaggeration**: Minimal for loops - they're already attention-grabbing through repetition.
**Solid Drawing**: Loops must be seamless. Any jump between end and start destroys the illusion.
**Appeal**: Loops should be hypnotic, not annoying. Test at 30 seconds - still pleasant?
## Timing Recommendations
| Loop Type | Duration | Easing | Iterations |
|-----------|----------|--------|------------|
| Spinner | 600-800ms | linear (rotation) | infinite |
| Pulse | 1500-2000ms | ease-in-out | infinite |
| Skeleton Shimmer | 1500ms | ease-in-out | infinite |
| Typing Dots | 1400ms | ease-in-out | infinite |
| Breathing | 3000-4000ms | ease-in-out | infinite |
| Floating | 3000-5000ms | ease-in-out | infinite |
## Implementation Patterns
```css
/* Smooth spinner */
.spinner {
animation: spin 700ms linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Organic pulse */
.pulse {
animation: pulse 2000ms ease-in-out infinite;
}
@keyframes pulse {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.05); opacity: 0.8; }
}
/* Staggered dots */
.dot {
animation: bounce 1400ms ease-in-out infinite;
}
.dot:nth-child(2) { animation-delay: 160ms; }
.dot:nth-child(3) { animation-delay: 320ms; }
```
## Performance Rules
1. Use `transform` and `opacity` only - no layout properties
2. Add `will-change: transform` for loops over 1 second
3. Pause off-screen loops with Intersection Observer
4. Respect `prefers-reduced-motion` - reduce or stop loops
## Seamless Loop Formula
For breathing/pulsing: `0%, 100%` keyframes must be identical. Use `alternate` direction for simpler ping-pong effects.
© dylantarre · MIT · dylantarre/animation-principles