# framer-motion

Скилл оптимизирует анимации Framer Motion в React: предотвращает лишние ререндеры, уменьшает размер бандла и настраивает переходы жестов или скролла.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 установок · ★ 218
- Автор: pproenca
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/framer-motion/SKILL.md
- Обновлён: 2026-08-15
- HTML: https://affpapa.org/nevibecode/skills/pproenca-framer-motion

## Что делает

Скилл содержит 42 правила оптимизации анимаций Framer Motion в React, сгруппированных по 9 категориям. Он подключается автоматически, когда агент пишет, проверяет или рефакторит код с `motion`-компонентами, переходами раскладки, эффектами скролла и SVG-графикой. Правила выстроены по приоритету: на первом месте стоят критические правки размера сборки и предотвращение лишних ререндеров.

Внутри заложены чёткие шаблоны: переход с тяжёлого `motion` на `LazyMotion` и компонент `m`, замена `useState` на `useMotionValue` и `useTransform`, а также вынос объектов вариантов за пределы компонентов. Для раскладки скилл предписывает ограничивать замеры через `layoutDependency` и связывать общие элементы с помощью `layoutId`.

Если в проекте бездумно импортировать полный пакет `motion`, бандл раздуется, поэтому базовым требованием остаётся строгий режим импортов и загрузка `domAnimation`.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill framer-motion -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill framer-motion -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill framer-motion -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install pproenca/dot-skills framer-motion
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill framer-motion -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/pproenca/dot-skills --path skills/.experimental/framer-motion
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill framer-motion -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/framer-motion/SKILL.md

## Когда брать
- Сократить размер бандла React-приложения заменой motion на LazyMotion и domAnimation
- Устранить паразитные ререндеры интерфейса через useMotionValue и useTransform
- Настроить плавные переходы между общими элементами интерфейса с помощью layoutId
- Избавиться от рывков при анимации скролла и жестов с помощью физических пружин useSpring

## Примеры запросов агенту
- Проведи рефакторинг этого компонента карточки с Framer Motion, чтобы избавиться от лишних ререндеров
- Оптимизируй размер бандла в модальном окне: переведи анимацию с motion.div на LazyMotion и m.div
- Добавь плавный скролл-эффект для шапки страницы через useScroll и useSpring без падения FPS

## Похожие
- [framer-motion-animator](https://affpapa.org/nevibecode/skills/framer-motion-animator.md) — скилл · 11100 установок
- [motion-framer](https://affpapa.org/nevibecode/skills/motion-framer.md) — скилл · 5900 установок
- [framer-motion-react](https://affpapa.org/nevibecode/skills/framer-motion-react.md) — скилл · 822 установки
- [framer-motion-scroll](https://affpapa.org/nevibecode/skills/framer-motion-scroll.md) — скилл · 803 установки
- [design-motion-principles](https://affpapa.org/nevibecode/skills/design-motion-principles.md) — скилл · 12700 установок
- [motion](https://affpapa.org/nevibecode/skills/motion.md) — скилл · 1100 установок

## Другие версии с тем же именем
- [framer-motion · athevon](https://affpapa.org/nevibecode/skills/athevon-framer-motion.md) — 990 установок
- [framer-motion · mindrally](https://affpapa.org/nevibecode/skills/framer-motion.md) — 3000 установок
- [framer-motion · dylantarre](https://affpapa.org/nevibecode/skills/dylantarre-framer-motion.md) — 1700 установок

Из того же набора: [pproenca/dot-skills](https://affpapa.org/nevibecode/by/pproenca/dot-skills.md) — 45 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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