Master interaction design - patterns, micro-interactions, user flows, affordances, feedback
Designs responsive micro-interactions, user flows, and feedback systems with proper timing and accessibility. Use when creating UI components that need intuitive triggers, smooth animations, or clear user guidance.
/plugin marketplace add pluginagentmarketplace/custom-plugin-ux-design/plugin install custom-plugin-ux-design@pluginagentmarketplace-ux-designThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/config.yamlassets/schema.jsonreferences/GUIDE.mdreferences/PATTERNS.mdscripts/validate.pyAtomic Skill: Design intuitive interactions that guide users through seamless experiences
This skill provides frameworks for designing responsive, accessible, and delightful user interactions.
Skill("custom-plugin-ux-design:interaction-design")
interface InteractionDesignParams {
// Required
type: "pattern" | "microinteraction" | "flow" | "feedback" | "gesture";
context: string;
// Optional
platform?: "web" | "mobile" | "desktop";
interaction_model?: "touch" | "mouse" | "keyboard" | "voice" | "hybrid";
accessibility?: {
reduced_motion?: boolean;
keyboard_only?: boolean;
};
}
type:
type: enum
required: true
values: [pattern, microinteraction, flow, feedback, gesture]
context:
type: string
required: true
min_length: 10
platform:
type: enum
default: "web"
INTERACTION DESIGN EXECUTION
────────────────────────────────────────────
Step 1: UNDERSTAND USER GOALS
├── Identify user intent
├── Map expected outcomes
└── Define success criteria
Step 2: DESIGN TRIGGERS
├── Define interaction triggers
├── Specify input methods
└── Consider accessibility
Step 3: CREATE RESPONSE
├── Design visual feedback
├── Specify timing/easing
└── Add audio/haptic (optional)
Step 4: HANDLE STATES
├── Success state
├── Error state
├── Loading state
└── Empty state
Step 5: DOCUMENT & TEST
├── Create specifications
├── Prototype interactions
└── Validate with users
────────────────────────────────────────────
retry_config:
max_attempts: 3
backoff_type: exponential
initial_delay_ms: 500
max_delay_ms: 5000
retryable_errors:
- ANIMATION_RENDER_FAILED
- PROTOTYPE_SYNC_ERROR
interface InteractionLog {
timestamp: string;
event: "interaction_start" | "feedback_shown" | "complete" | "error";
interaction_type: string;
duration_ms: number;
success: boolean;
}
COMMON PATTERNS
├── Navigation
│ ├── Tab navigation
│ ├── Sidebar toggle
│ └── Breadcrumbs
├── Data Entry
│ ├── Form validation
│ ├── Autocomplete
│ └── Date pickers
├── Content
│ ├── Infinite scroll
│ ├── Pull to refresh
│ └── Expand/collapse
└── Actions
├── Drag and drop
├── Swipe actions
└── Long press
MICRO-INTERACTION ANATOMY
├── Trigger (user action)
├── Rules (what happens)
├── Feedback (visual response)
└── Loops/Modes (ongoing state)
TIMING GUIDELINES
├── Instant: 0-100ms (feedback)
├── Fast: 100-300ms (transitions)
├── Normal: 300-500ms (animations)
└── Slow: 500ms+ (complex sequences)
EASING CURVES
├── ease-out: Deceleration (entering)
├── ease-in: Acceleration (exiting)
├── ease-in-out: Smooth (moving)
└── spring: Natural (bouncy)
FLOW DESIGN PRINCIPLES
├── Minimize steps to goal
├── Provide clear progress
├── Allow easy recovery
├── Confirm destructive actions
└── Remember user state
FLOW COMPONENTS
├── Entry points
├── Decision points
├── Action points
├── Exit points
└── Error paths
AFFORDANCE TYPES
├── Explicit (buttons, links)
├── Pattern-based (icons, gestures)
├── Hidden (shortcuts, gestures)
└── Negative (disabled states)
SIGNIFIERS
├── Visual cues (icons, arrows)
├── Text labels
├── Cursor changes
├── Animation hints
└── Sound cues
FEEDBACK TYPES
├── Visual (color, motion)
├── Auditory (sounds, voice)
├── Haptic (vibration)
└── Systemic (notifications)
FEEDBACK TIMING
├── Immediate: < 100ms
├── Responsive: 100-300ms
├── Perceived: 300-1000ms
└── Delayed: > 1000ms (show progress)
| Error Code | Description | Recovery |
|---|---|---|
IX-001 | Missing feedback | Add visual response |
IX-002 | Gesture conflict | Redesign gesture |
IX-003 | Animation jank | Optimize performance |
IX-004 | Unclear affordance | Add signifiers |
IX-005 | Dead-end flow | Add escape routes |
Diagnosis:
├── Check: Affordance visibility
├── Check: Position in hierarchy
├── Check: Size and contrast
└── Solution: Enhance discoverability
Steps:
1. Conduct findability test
2. Increase visual prominence
3. Add onboarding hints
4. Consider progressive disclosure
Diagnosis:
├── Check: Animation duration
├── Check: Easing curves
├── Check: Response delay
└── Solution: Optimize timing
Steps:
1. Measure time to feedback
2. Reduce to 100-300ms range
3. Use appropriate easing
4. Add immediate micro-feedback
describe("InteractionDesignSkill", () => {
describe("pattern validation", () => {
it("should include trigger and feedback", async () => {
const result = await invoke({
type: "pattern",
context: "form submission"
});
expect(result.pattern.trigger).toBeDefined();
expect(result.pattern.feedback).toBeDefined();
});
});
describe("microinteraction timing", () => {
it("should stay within timing guidelines", async () => {
const result = await invoke({
type: "microinteraction",
context: "button click"
});
expect(result.animation.duration_ms).toBeLessThanOrEqual(300);
});
});
describe("accessibility", () => {
it("should provide reduced motion alternative", async () => {
const result = await invoke({
type: "microinteraction",
accessibility: { reduced_motion: true }
});
expect(result.animation.reduced_motion_fallback).toBeDefined();
});
});
});
| Metric | Target | Measurement |
|---|---|---|
| Task completion | > 95% | User success rate |
| Time to feedback | < 100ms | Perceived responsiveness |
| Animation FPS | 60fps | Frame rate |
| Accessibility | 100% | Keyboard navigable |
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2025-12-30 | Production-grade upgrade |
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.