mcpField
U
ux-friction

ux-friction

github.com/dylantarreDesign & UI132485 installsUpdated 43w ago
Repository

About ux-friction

A design skill for diagnosing animations that delay, confuse, or frustrate users. It offers principle-based fixes and a checklist for keeping interactions usable and motion purposeful.

Key features

  1. 01Indicators of animation-related friction
  2. 02Diagnosis by animation principle
  3. 03Quick fixes for common problems
  4. 04Interaction and timing checklist
  5. 05Java examples for skippable motion

Use cases

  1. 01Investigating repeated clicks during animations
  2. 02Making long animations skippable
  3. 03Checking whether motion blocks interaction

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dylantarre/animation-principles --skill ux-friction

After installing, type/ux-frictionin Claude Code to confirm it loaded.

Details

From the project README

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());
});

Comments

Markdown supported