user-feedback-clarity — Claude Code skill: make UI feedback noticeable
A skill that helps your coding agent work out why users miss interface feedback and what to change.
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a claude-codeWhat user-feedback-clarity does
The skill kicks in when people click a button several times, ask whether it worked, or miss success and error states. Your agent gets a list of problem indicators plus a breakdown by animation principles: anticipation, follow through, staging, exaggeration, secondary action. Each one names the usual mistake and the fix — show a loading state right away, let a success message stay on screen for 2-3 seconds.
There is a set of quick fixes: acknowledge within 100ms, animate the trigger itself, pair colour with motion, keep feedback near the user's focus, add haptics on supported devices. A troubleshooting checklist follows, including a test for whether someone can tell the action succeeded without reading any text. The file ends with a CSS pattern: :active with scale(0.95), a .loading class that disables pointer events, a 300ms successPulse, and errorShake shifting on the X axis.
Nothing runs here beyond those examples — it is a text skill. It earns its place when you already have complaints about forms and buttons; as a general animation guide it changes nothing.
What it helps with
- find out why users click the same button repeatedly
- make the loading state visible right after a click
- keep a success message on screen long enough to read
- build error feedback from colour and motion together
- check whether the outcome reads without any text
Example prompts for the agent
- users don't notice the form submitted — go through it with user-feedback-clarity
- the button gives no sign the click landed, what should I change?
- review my success and error states against the skill's checklist
How to install user-feedback-clarity
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a claude-code2Manually: put the files in place
~/.claude/skills/user-feedback-clarity/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/user-feedback-clarity/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a codex2Manually: put the files in place
.agents/skills/user-feedback-clarity/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a cursor2Manually: put the files in place
.cursor/skills/user-feedback-clarity/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles user-feedback-clarity2Manually: put the files in place
.github/skills/user-feedback-clarity/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/12-by-problem-type/user-feedback-clarityManually: put the files in place
.devin/skills/user-feedback-clarity/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about user-feedback-clarity
How do I install user-feedback-clarity in Claude?
Run npx skills add dylantarre/animation-principles --skill user-feedback-clarity -a claude-code. The skill file then sits at ~/.claude/skills/user-feedback-clarity/SKILL.md.
What does user-feedback-clarity do?
It helps the agent trace why interface feedback goes unnoticed and suggests fixes based on animation principles, from immediate acknowledgement to combining colour with motion.
Does the skill need anything else to work?
No. It is a text skill with a diagnosis, a checklist and a CSS example. It pulls in no libraries and runs no code.
Source text
SKILL.md · MIT
---
name: user-feedback-clarity
description: Use when users don't notice feedback, miss state changes, or can't tell if their action worked
---
# User Feedback Clarity
Make feedback animations unmissable using Disney's principles.
## Problem Indicators
- Users click multiple times (didn't see feedback)
- "Did it work?" questions
- Users miss success/error states
- Form submission confusion
- State changes go unnoticed
## Diagnosis by Principle
### Anticipation
**Issue**: No buildup before action completes
**Fix**: Show loading/processing state immediately. User should know their input was received.
### Follow Through
**Issue**: Feedback appears and vanishes too quickly
**Fix**: Let feedback linger. Success messages need 2-3 seconds minimum. Add settle animation.
### Staging
**Issue**: Feedback appears outside user's focus
**Fix**: Show feedback near the trigger. If button was clicked, feedback should appear on/near button.
### Exaggeration
**Issue**: Feedback is too subtle
**Fix**: Increase contrast, size change, or motion. Feedback must compete with user's task focus.
### Secondary Action
**Issue**: Only one feedback channel
**Fix**: Combine channels: visual + motion + color. Error = red + shake. Success = green + checkmark + pulse.
## Quick Fixes
1. **Immediate acknowledgment** - Show something within 100ms
2. **Animate the trigger** - Button should respond visibly
3. **Use color + motion together** - Redundant signals
4. **Keep feedback in viewport** - Near user's focus
5. **Add haptic feedback** - On supported devices
## Troubleshooting Checklist
- [ ] Does feedback appear within 100ms of action?
- [ ] Is feedback in user's current focus area?
- [ ] Would feedback be noticed peripherally?
- [ ] Are multiple senses engaged (visual, motion)?
- [ ] Does feedback last long enough to read?
- [ ] Is error feedback more prominent than success?
- [ ] Test: Can users tell if action succeeded without reading text?
- [ ] Test with users—ask "did that work?"
## Code Pattern
```css
/* Button feedback */
.button:active {
transform: scale(0.95);
}
.button.loading {
pointer-events: none;
}
.button.success {
animation: successPulse 300ms ease-out;
}
@keyframes successPulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); background: var(--success); }
100% { transform: scale(1); }
}
/* Error shake */
@keyframes errorShake {
0%, 100% { transform: translateX(0); }
25% { transform: translateX(-4px); }
75% { transform: translateX(4px); }
}
```
© dylantarre · MIT · dylantarre/animation-principles