Skip to main content
skill CX Codex

forms-inputs — Claude Code skill: form and input animation

A skill that tells your agent how to animate inputs, textareas and selects: timings, field states and CSS for clear feedback.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-code
Open on GitHub

What forms-inputs does

The skill maps Disney's twelve animation principles onto form elements and shows what each one does in practice. An input can grow slightly on focus, a submit button compresses on click, a checkbox bounces on toggle. The floating label rises before typing starts, and the focus ring shows up ahead of the content, so the user sees where input will land.

Timings are spelled out per transition: focus border 100–150ms, label float 150–200ms, validation feedback 200ms, error shake 300ms across 3–4 cycles, success check 250ms. Focus transitions use ease-out, validation uses ease-in-out, the label uses cubic-bezier(0.4, 0, 0.2, 1). Ready CSS is included: transitions on border-color and box-shadow, a label shift via translateY(-24px) scale(0.85), and a @keyframes shake that offsets by 5px.

Fields get six defined states — default, focus, filled, valid, invalid, disabled — with smooth transitions between them. If your project already has an animation system with its own curves and durations, these numbers will need reconciling with it, otherwise the forms will sit at a different rhythm than the rest of the interface.

What it helps with

  • give clear feedback when a field takes focus
  • make a validation error impossible to miss
  • pick timings for the floating label and focus border
  • define every field state from empty to invalid
  • add a response to checkbox toggles and form submits

Example prompts for the agent

  • animate the input field and floating label using the forms-inputs skill
  • add a shake on validation error and a green pulse on success
  • lay out the timings for focus, filled and invalid form states

How to install forms-inputs

1Skills CLI (Vercel)

npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-code

2Manually: put the files in place

~/.claude/skills/forms-inputs/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/forms-inputs/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about forms-inputs

How do I install forms-inputs in Claude?

Run npx skills add dylantarre/animation-principles --skill forms-inputs -a claude-code. The skill file then lands at ~/.claude/skills/forms-inputs/SKILL.md.

What does forms-inputs do?

It gives the agent rules for form animation: field states, transition timings, easing curves and CSS for floating labels, error shakes and success checks.

Which platforms can run this skill?

Beyond Claude there are install commands for Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode, each with its own command and skill file path.

Source text

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

Similar skills

Everything for Frontend and UI →

From the same set86

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor