scroll-animations — скилл для Claude Code: анимации при скролле
Скилл для анимаций, привязанных к прокрутке: появления блоков, параллакс, липкие шапки, индикаторы прогресса. Пригодится, когда страница должна реагировать на скролл, а не просто листаться.
npx skills add dylantarre/animation-principles --skill scroll-animations -a claude-codeЧто делает scroll-animations
Скилл раскладывает скролл-анимации по принципам анимации Disney. Каждый эффект получает своё объяснение: например, контент советует начинать показывать при 10–20% видимости, чтобы появление завершалось до того, как блок окажется целиком в кадре. Появление блока — 400–600 мс, переход липкой шапки — 200–300 мс, параллакс идёт в реальном времени с линейной кривой.
Внутри — таблица таймингов с точками срабатывания и кривыми, готовые паттерны на CSS и IntersectionObserver, а ещё вариант на animation-timeline: view() без JavaScript. Отдельно прописано правило: не перехватывать прокрутку и не блокировать её, а для prefers-reduced-motion давать мгновенное появление без параллакса.
Скилл про смысл движения, а не про библиотеку. Если у вас уже есть GSAP или Framer Motion, он не заменит их — он задаёт, с какой задержкой и на каком пороге запускать анимацию. Проверять стоит на мобильных: плавность при прокрутке там ломается первой.
Какие задачи решает
- сделать появление секций при прокрутке без дёрганья
- настроить параллакс, который не тормозит на телефоне
- показать прогресс чтения статьи
- убрать анимацию для тех, кто отключил движение в системе
- подобрать задержку между появлениями соседних блоков
Примеры запросов агенту
- добавь появление секций при скролле через IntersectionObserver
- сделай параллакс на фоне героя, но без перехвата прокрутки
- поставь липкую шапку с плавным переходом при прокрутке
Как установить scroll-animations
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill scroll-animations -a claude-code2Вручную: положить файлы
~/.claude/skills/scroll-animations/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/scroll-animations/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill scroll-animations -a codex2Вручную: положить файлы
.agents/skills/scroll-animations/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill scroll-animations -a cursor2Вручную: положить файлы
.cursor/skills/scroll-animations/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles scroll-animations2Вручную: положить файлы
.github/skills/scroll-animations/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill scroll-animations -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/05-by-animation-type/scroll-animationsВручную: положить файлы
.devin/skills/scroll-animations/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill scroll-animations -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о scroll-animations
Как установить scroll-animations в Claude?
Выполните npx skills add dylantarre/animation-principles --skill scroll-animations -a claude-code. Скилл окажется в ~/.claude/skills/scroll-animations/SKILL.md.
Что делает scroll-animations?
Помогает агенту проектировать анимации, привязанные к прокрутке: появления, параллакс, липкие шапки, индикаторы прогресса. Даёт тайминги, точки срабатывания и готовые паттерны на CSS и JavaScript.
Нужен ли JavaScript для этих анимаций?
Нет. В скилле есть вариант на чистом CSS через animation-timeline: view() и animation-range, а также паттерн на IntersectionObserver для браузеров без поддержки.
Исходный текст
SKILL.md · MIT
---
name: scroll-animations
description: Use when triggering animations on scroll - reveal effects, parallax, sticky headers, progress indicators, or any scroll-linked motion.
---
# Scroll Animations
Apply Disney's 12 principles to scroll-triggered motion.
## Principle Application
**Squash & Stretch**: Elements can compress slightly while scrolling fast, settle when stopped.
**Anticipation**: Content should be slightly visible before full reveal. Start animations at 10-20% visibility.
**Staging**: Reveal content in reading order. Top-to-bottom, left-to-right progression.
**Straight Ahead vs Pose-to-Pose**: Define clear "hidden" and "revealed" poses. Scroll position interpolates between them.
**Follow Through & Overlapping**: Stagger reveals. First element triggers at 20% viewport, next at 25%, etc.
**Slow In/Slow Out**: Use ease-out for reveals triggered by scroll. Content settles into place.
**Arcs**: Parallax elements move on curves relative to scroll. Slight horizontal offset as vertical scroll occurs.
**Secondary Action**: Fade + slide + scale can combine for richer reveals.
**Timing**:
- Reveal animation: 400-600ms (allows scroll to continue)
- Parallax: real-time, 1:1 or fractional ratios
- Sticky transitions: 200-300ms
**Exaggeration**: Subtle for scroll - users control the pace. Let scroll speed be the exaggeration.
**Solid Drawing**: Elements should never jump or teleport. Smooth interpolation at all scroll positions.
**Appeal**: Scroll animations should reward exploration, not obstruct it.
## Timing Recommendations
| Scroll Animation | Duration | Trigger Point | Easing |
|-----------------|----------|---------------|--------|
| Fade In | 500ms | 20% visible | ease-out |
| Slide Up | 600ms | 15% visible | ease-out |
| Parallax | real-time | continuous | linear |
| Sticky Header | 200ms | threshold | ease-out |
| Progress Bar | real-time | continuous | linear |
| Section Reveal | 600ms | 25% visible | ease-out |
## Implementation Patterns
```css
/* Scroll-triggered reveal */
.reveal {
opacity: 0;
transform: translateY(30px);
transition: opacity 500ms ease-out, transform 600ms ease-out;
}
.reveal.visible {
opacity: 1;
transform: translateY(0);
}
/* CSS-only parallax */
.parallax-container {
perspective: 1px;
overflow-y: auto;
}
.parallax-slow {
transform: translateZ(-1px) scale(2);
}
```
## Intersection Observer Pattern
```javascript
const observer = new IntersectionObserver(
(entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
},
{ threshold: 0.2, rootMargin: '0px 0px -10% 0px' }
);
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
```
## Scroll-Linked Animation (CSS)
```css
@keyframes reveal {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.scroll-reveal {
animation: reveal linear both;
animation-timeline: view();
animation-range: entry 0% entry 50%;
}
```
## Key Rules
1. Never block scroll or hijack scroll behavior
2. Animations should complete within viewport, not require precise scroll position
3. Trigger early (10-20% visible) so animation completes before full view
4. Provide `prefers-reduced-motion` alternative - instant reveals, no parallax
5. Test on mobile - scroll animations must be smooth at 60fps
© dylantarre · MIT · dylantarre/animation-principles