Back to list
dylantarre

ux-friction

by dylantarre

Disney's 12 Animation Principles - Claude Code Skill Marketplace

1🍴 1📅 Jan 24, 2026

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

  1. Make animations skippable - Click/tap should complete or skip
  2. Reduce duration by 30% - Most animations are too slow
  3. Add progress indicators - For anything over 400ms
  4. Animate in user's focus area - Don't move things peripherally
  5. 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

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon