forms-inputs — скилл для Claude Code: анимация форм и полей ввода
Скилл учит агента анимировать поля ввода, текстовые области и селекты: подсказки по таймингам, состояниям и CSS-переходам для понятной обратной связи.
npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-codeЧто делает forms-inputs
Скилл раскладывает анимацию форм по двенадцати принципам Disney и показывает, как каждый из них работает на конкретном элементе. Поле может чуть подрасти при фокусе, кнопка сжаться при клике, чекбокс отскочить при переключении. Плавающий лейбл поднимается до ввода текста, а рамка фокуса появляется раньше содержимого — так человек понимает, куда попадёт ввод.
Внутри — тайминги для каждого перехода: рамка фокуса 100–150ms, подъём лейбла 150–200ms, отклик валидации 200ms, тряска ошибки 300ms в 3–4 цикла, галочка успеха 250ms. Для фокуса советует ease-out, для валидации ease-in-out, для лейбла cubic-bezier(0.4, 0, 0.2, 1). Есть готовый CSS: переходы на border-color и box-shadow, сдвиг лейбла через translateY(-24px) scale(0.85) и @keyframes shake с отклонением на 5px.
Скилл задаёт состояния полей — default, focus, filled, valid, invalid, disabled — и требует плавных переходов между ними. Если в проекте уже есть своя система анимаций с другими кривыми и длительностями, значения из скилла придётся согласовывать с ней, иначе формы будут выбиваться из общего ритма интерфейса.
Какие задачи решает
- сделать понятную обратную связь при фокусе на поле
- показать ошибку ввода так, чтобы её заметили
- подобрать тайминги для плавающего лейбла и рамки
- согласовать состояния поля от пустого до невалидного
- добавить отклик на переключение чекбокса и отправку формы
Примеры запросов агенту
- анимируй поле ввода и плавающий лейбл по скиллу forms-inputs
- добавь тряску при ошибке валидации и зелёный пульс при успехе
- распиши тайминги для focus, filled и invalid состояний формы
Как установить forms-inputs
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-code2Вручную: положить файлы
~/.claude/skills/forms-inputs/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/forms-inputs/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill forms-inputs -a codex2Вручную: положить файлы
.agents/skills/forms-inputs/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill forms-inputs -a cursor2Вручную: положить файлы
.cursor/skills/forms-inputs/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles forms-inputs2Вручную: положить файлы
.github/skills/forms-inputs/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill forms-inputs -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/07-by-ui-element/forms-inputsВручную: положить файлы
.devin/skills/forms-inputs/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill forms-inputs -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о forms-inputs
Как установить forms-inputs в Claude?
Выполните npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-code. После этого файл скилла окажется в ~/.claude/skills/forms-inputs/SKILL.md.
Что делает forms-inputs?
Даёт агенту правила анимации форм: состояния полей, тайминги переходов, кривые ускорения и CSS для плавающего лейбла, тряски ошибки и галочки успеха.
Для каких платформ подходит этот скилл?
Кроме Claude есть установка для Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode — у каждой своя команда и путь к файлу скилла.
Исходный текст
SKILL.md · MIT
---
name: forms-inputs
description: Use when animating form fields, inputs, textareas, selects, or interactive form elements to improve usability and feedback
---
# Form & Input Animation Principles
Apply Disney's 12 principles to forms for clear feedback and delightful interactions.
## Principles Applied to Form Elements
### 1. Squash & Stretch
Input fields can subtly expand on focus (1-2px height). Submit button compresses on click. Checkboxes bounce on toggle.
### 2. Anticipation
Label floats up before user types. Focus ring appears before content entry. Prepares user for input action.
### 3. Staging
Focused input should be visually prominent: border color, shadow, label position. Other fields can slightly dim. Guide attention.
### 4. Straight Ahead & Pose to Pose
Define input states: default, focus, filled, valid, invalid, disabled. Clear poses for each state with smooth transitions.
### 5. Follow Through & Overlapping Action
Floating label settles after reaching final position. Validation icon can bounce slightly. Character counter updates with subtle motion.
### 6. Ease In & Ease Out
Focus transitions: `ease-out`. Validation feedback: `ease-in-out`. Label float: `cubic-bezier(0.4, 0, 0.2, 1)`.
### 7. Arcs
Floating labels should arc slightly during upward movement, not straight line. Adds organic feel to mechanical action.
### 8. Secondary Action
While border highlights (primary), label floats (secondary), helper text appears (tertiary). Coordinate without overwhelming.
### 9. Timing
- Focus border: 100-150ms
- Label float: 150-200ms
- Validation feedback: 200ms
- Error shake: 300ms (3-4 cycles)
- Success check: 250ms
- Checkbox toggle: 150ms
### 10. Exaggeration
Error states can shake (4-6px, 2-3 times). Success states can pulse green briefly. Invalid inputs deserve clear, noticeable feedback.
### 11. Solid Drawing
Maintain border-radius consistency. Label typography should stay crisp during transform. Icons should scale proportionally.
### 12. Appeal
Responsive forms feel modern. Micro-animations guide users. Satisfying feedback reduces form abandonment. Worth the investment.
## CSS Implementation
```css
.input-field {
transition: border-color 150ms ease-out,
box-shadow 150ms ease-out;
}
.floating-label {
transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1),
font-size 200ms ease-out,
color 150ms ease-out;
}
.input-field:focus + .floating-label {
transform: translateY(-24px) scale(0.85);
}
@keyframes shake {
0%, 100% { transform: translateX(0); }
25% { transform: translateX(-5px); }
75% { transform: translateX(5px); }
}
```
## Key Properties
- `transform`: translateY (label), translateX (shake)
- `border-color`: state indication
- `box-shadow`: focus rings
- `color`: label/text states
- `opacity`: helper text, icons
© dylantarre · MIT · dylantarre/animation-principles