
ux-friction
by dylantarre
Disney's 12 Animation Principles - Claude Code Skill Marketplace
SKILL.md
name: ux-friction description: Use when animation causes user confusion, delays task completion, or creates frustration
UX Friction
Diagnose animations that block, confuse, or frustrate users.
Problem Indicators
- Users wait for animations to finish
- Confusion about what happened
- Repeated clicks/taps during animation
- Users skip or abandon tasks
- "Where did that go?" moments
Diagnosis by Principle
Timing
Issue: Animation too slow for the context Fix: Match duration to user intent. Micro-interactions: 100-200ms. Transitions: 200-400ms. Never block input.
Anticipation
Issue: Action happens without warning Fix: Add subtle anticipation cues before significant changes. A button press should show feedback before the result.
Follow Through
Issue: Animation ends abruptly Fix: Let elements settle naturally. Sudden stops feel broken. Add slight overshoot and settle.
Staging
Issue: Important changes happen outside focus Fix: Draw attention to where change occurs. If content moves, guide the eye with motion.
Appeal
Issue: Animation feels arbitrary Fix: Every animation should have clear purpose. If users question "why does this bounce?", remove it.
Quick Fixes
- Make animations skippable - Click/tap should complete or skip
- Reduce duration by 30% - Most animations are too slow
- Add progress indicators - For anything over 400ms
- Animate in user's focus area - Don't move things peripherally
- Remove decorative animations - If it doesn't help, it hurts
Troubleshooting Checklist
- Can users interact during animation?
- Is duration under 400ms for transitions?
- Does animation communicate state change?
- Is the animation skippable if lengthy?
- Does motion guide attention correctly?
- Is there feedback for user input?
- Would removing animation hurt understanding?
- Test with impatient users (click rapidly)
Pattern
// Allow interaction during animation
element.style.pointerEvents = 'auto';
// Make animation skippable
element.addEventListener('click', () => {
element.getAnimations().forEach(a => a.finish());
});
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon


