# buttons-ctas

Скилл для ИИ-кодинга, который подсказывает агенту, как анимировать кнопки и CTA: состояния, тайминги, CSS-переходы.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 550 установок · ★ 124
- Автор: dylantarre
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/dylantarre/animation-principles/tree/HEAD/skills/07-by-ui-element/buttons-ctas/SKILL.md
- Обновлён: 2025-12-30
- HTML: https://affpapa.org/nevibecode/skills/buttons-ctas

## Что делает

Скилл раскладывает анимацию кнопок по двенадцати принципам Disney и превращает их в конкретные CSS-правила. Нажатие — `transform: scale(0.95)` на `:active` и возврат к `scale(1)` при отпускании. Ховер — лёгкий подъём через `translateY(-2px)`, чтобы клик ощущался заранее. Внутри есть готовый блок CSS для `.btn`, `.btn:hover` и `.btn:active` с переходами по `transform`, `box-shadow` и `background-color`.

Тайминги заданы числами: ховер 150–200ms, нажатие 50–100ms, кольцо фокуса 150ms, переход в состояние загрузки 200–300ms. Линейную кривую скилл запрещает: на вход в ховер советует `ease-out`, на выход — `ease-in`, а как рабочую кривую называет `cubic-bezier(0.4, 0, 0.2, 1)`. Для состояний кнопки предлагает pose-to-pose: отдельные ключевые кадры для default, hover, active и disabled.

Ограничение простое: это текстовый скилл с принципами и примерами CSS, а не библиотека компонентов. Он ничего не устанавливает в ваш проект и не подключает зависимости. Если у вас уже есть дизайн-система со своими токенами переходов, числа из скилла придётся согласовывать с ней, иначе кнопки начнут жить по двум разным таймингам. Ставится одной командой через `npx skills`.

Скилл лежит в репозитории `dylantarre/animation-principles` под лицензией MIT и работает в Claude, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill buttons-ctas -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill buttons-ctas -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill buttons-ctas -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dylantarre/animation-principles buttons-ctas
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill buttons-ctas -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dylantarre/animation-principles --path skills/07-by-ui-element/buttons-ctas
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dylantarre/animation-principles --skill buttons-ctas -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dylantarre/animation-principles/tree/HEAD/skills/07-by-ui-element/buttons-ctas/SKILL.md

## Когда брать
- сделать нажатие кнопки тактильно ощутимым
- подобрать тайминги для ховера и press без линейной кривой
- развести визуально primary и secondary CTA
- добавить ripple или поворот иконки как вторичное действие
- собрать состояния default, hover, active и disabled в единую систему

## Примеры запросов агенту
- добавь анимацию нажатия для кнопки оформления заказа
- сделай ховер для primary CTA заметнее, чем у secondary
- перепиши переходы кнопки на ease-out и cubic-bezier(0.4, 0, 0.2, 1)

## Похожие
- [button-states](https://affpapa.org/nevibecode/skills/button-states.md) — скилл · 877 установок
- [emil-design-eng](https://affpapa.org/nevibecode/skills/emil-design-eng.md) — скилл · 388200 установок
- [review-animations](https://affpapa.org/nevibecode/skills/review-animations.md) — скилл · 256500 установок
- [better-ui](https://affpapa.org/nevibecode/skills/better-ui.md) — скилл · 39300 установок
- [micro-interaction](https://affpapa.org/nevibecode/skills/micro-interaction.md) — скилл · 2500 установок
- [glassmorphism](https://affpapa.org/nevibecode/skills/glassmorphism.md) — скилл · 2400 установок

Из того же набора: [dylantarre/animation-principles](https://affpapa.org/nevibecode/by/dylantarre/animation-principles.md) — 86 карточек

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

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