# accessible-animation

Скилл учит агента уважать prefers-reduced-motion: убирает опасное движение, но оставляет плавные переходы и подсказки интерфейса.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 2600 установок · ★ 58
- Автор: iart-ai
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/iart-ai/web-animation-skills/tree/HEAD/skills/accessible-animation/SKILL.md
- Обновлён: 2026-06-22
- HTML: https://affpapa.org/nevibecode/skills/accessible-animation

## Что делает

Скилл включается, когда вы просите агента сделать анимации доступными, починить жалобы на укачивание или пройти WCAG 2.3.3 / C39. Внутри — трёхуровневая схема вместо привычного «выключить всё»: параллакс, крупные сдвиги, 3D-вращение и перехват скролла убираются целиком, слайды заменяются коротким фейдом, а прозрачность, цвет и индикаторы загрузки остаются на месте. Мгновенная смена состояния без перехода дезориентирует сильнее, чем аккуратный фейд, поэтому скилл и не советует рубить анимацию под корень.

Для CSS даётся глобальная страховка через `@media (prefers-reduced-motion: reduce)` с `0.01ms` вместо нуля, чтобы не сломать код, который ждёт `transitionend`. Поверх неё — точечные переопределения для конкретных классов. Для JS — `matchMedia` с подпиской на `change`, чтобы переключение настройки в системе срабатывало без перезагрузки страницы. Отдельно показано, как гейтить GSAP через `gsap.matchMedia()`, не создавать `Lenis` при reduced motion и обернуть всё в React-хук `useReducedMotion`.

В React-хуке начальное состояние — `false`, синхронизация идёт в `useEffect`. Это важно для SSR: значение из системы известно только на клиенте, и без такой синхронизации получите расхождение при гидратации. Учтите и то, что CSS не управляет анимацией из GSAP, Framer Motion или canvas — для них нужен отдельный слой на `matchMedia`, иначе настройка системы просто ничего не изменит.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add iart-ai/web-animation-skills --skill accessible-animation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/accessible-animation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/accessible-animation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add iart-ai/web-animation-skills --skill accessible-animation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/accessible-animation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add iart-ai/web-animation-skills --skill accessible-animation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/accessible-animation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install iart-ai/web-animation-skills accessible-animation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/accessible-animation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add iart-ai/web-animation-skills --skill accessible-animation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/iart-ai/web-animation-skills --path skills/accessible-animation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/accessible-animation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add iart-ai/web-animation-skills --skill accessible-animation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/iart-ai/web-animation-skills/tree/HEAD/skills/accessible-animation/SKILL.md

## Когда брать
- убрать параллакс и перехват скролла при reduced motion
- заменить слайд крупного элемента на короткий фейд
- остановить бесконечные карусели и маркизы
- добавить хук useReducedMotion в React-компонент
- загейтить GSAP и Lenis по настройке системы

## Примеры запросов агенту
- Сделай анимации доступными: убери параллакс и перехват скролла при prefers-reduced-motion
- Добавь useReducedMotion и замени slide-in на короткий фейд
- Загейти GSAP-таймлайн и Lenis по настройке reduced motion

## Похожие
- [accessible-motion](https://affpapa.org/nevibecode/skills/accessible-motion.md) — скилл · 640 установок
- [animation-systems](https://affpapa.org/nevibecode/skills/animation-systems.md) — скилл · 1900 установок
- [modern-web-design](https://affpapa.org/nevibecode/skills/modern-web-design.md) — скилл · 2900 установок
- [animation-performance](https://affpapa.org/nevibecode/skills/animation-performance.md) — скилл · 36800 установок
- [premium-frontend-ui](https://affpapa.org/nevibecode/skills/premium-frontend-ui.md) — скилл · 4900 установок
- [ui-web](https://affpapa.org/nevibecode/skills/ui-web.md) — скилл · 393 установки

Из того же набора: [iart-ai/web-animation-skills](https://affpapa.org/nevibecode/by/iart-ai/web-animation-skills.md) — 7 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
