
Interaction Design
- 451 installs
- 305 repo stars
- Updated March 4, 2026
- aj-geddes/useful-ai-prompts
interaction-design is an agent skill that defines micro-interactions, UI states, feedback, and screen flows for developers building responsive, accessible, and consistent interfaces.
About
interaction-design is an agent skill in aj-geddes/useful-ai-prompts that helps coding agents specify how interfaces behave—not just how they look—across loading, success, error, empty, and hover states. It guides micro-interaction choices, transition timing, feedback patterns, and cross-screen flow consistency so components feel responsive and accessible to keyboard and screen-reader users. Developers reach for interaction-design when polishing dashboards, forms, and mobile views where ambiguous state changes confuse users or violate accessibility expectations. The skill fits feature work where agents might otherwise ship static layouts without skeleton loaders, focus management, or toast confirmation patterns. Catalog metadata records 401 installs. Use it when defining interaction specs before implementation, reviewing UX gaps in existing React or Vue screens, or documenting state diagrams agents can translate into component code. The skill also covers focus order, aria-live feedback, and motion-reduction considerations so agents do not ship flashy transitions that break keyboard navigation or screen-reader announcements.
- State machines for UI flows
- Feedback, loading, and error patterns
- Accessibility and keyboard behavior
- Motion and transition guidelines
- Component interaction specs
Interaction Design by the numbers
- 451 all-time installs (skills.sh)
- Ranked #625 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill interaction-designAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 451 |
|---|---|
| repo stars | ★ 305 |
| Last updated | March 4, 2026 |
| Repository | aj-geddes/useful-ai-prompts ↗ |
How do you design consistent UI micro-interactions?
Define micro-interactions, states, feedback, and flows so interfaces feel responsive, accessible, and consistent across screens.
Who is it for?
Frontend developers polishing UI behavior who need agents to specify states, feedback, and flows before or during component implementation.
Skip if: Backend engineers defining REST schemas with no UI interaction scope should skip interaction-design.
When should I use this skill?
User adds loading, error, or hover states, defines micro-interactions, or asks for accessible feedback patterns across screens.
What you get
Interaction specs with defined states, feedback patterns, transition rules, and accessible cross-screen flows.
- Interaction and state specifications
- Feedback pattern definitions
- Cross-screen flow documentation
By the numbers
- 401 catalog installs for skill:aj-geddes/useful-ai-prompts#interaction-design
Files
Interaction Design
Table of Contents
Overview
Interaction design focuses on how users engage with systems, creating intuitive and delightful experiences through feedback and responsiveness.
When to Use
- Designing user flows and touchpoints
- Creating animations and transitions
- Defining error and loading states
- Building microinteractions
- Improving usability and feedback
- Mobile interaction patterns
Quick Start
Minimal working example:
Common Interaction Patterns:
Swipe:
Use: Mobile lists, carousels
Feedback: Visual sliding, momentum
Accessibility: Keyboard alternative (arrows)
Tap & Hold:
Use: Context menus, drag prep
Feedback: Visual feedback after delay
Duration: ~500ms before trigger
Pinch & Zoom:
Use: Image viewing, maps
Feedback: Smooth zoom animation
Boundaries: Set min/max zoom levels
Drag & Drop:
Use: Reordering, moving items
Feedback: Visual during drag, drop confirmation
Fallback: Alternative method (buttons)
Double Tap:
Use: Zoom, favorite, select
Feedback: Immediate visual response
// ... (see reference guides for full implementation)Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Animation & Transition Design | Animation & Transition Design |
| Error Handling & Feedback | Error Handling & Feedback |
| Accessibility in Interactions | Accessibility in Interactions |
Best Practices
✅ DO
- Keep animations under 400ms
- Provide clear visual feedback
- Use animations to guide attention
- Respect motion preferences
- Make interactions reversible
- Test with keyboard and screen readers
- Provide multiple interaction methods
- Design for touch and mouse
- Use appropriate easing curves
- Document interaction behavior
❌ DON'T
- Animate for decoration only
- Use animations longer than 500ms
- Ignore motion-sensitive users
- Remove focus indicators
- Trap users in modals
- Use confusing animations
- Animate everything
- Ignore loading states
- Forget error states
- Skip accessibility testing
Accessibility in Interactions
Accessibility in Interactions
// Ensure interactions are accessible
class AccessibleInteractions {
ensureKeyboardAccess() {
return {
tab_order: "Logical, top-to-bottom",
focus_visible: "Clear focus indicator (not removed)",
enter_key: "Activates buttons and links",
space_key: "Activates buttons",
escape_key: "Closes modals and menus",
arrow_keys: "Navigate lists, menus, carousels",
};
}
respectMotionPreferences() {
return {
prefers_reduced_motion: {
media_query: "@media (prefers-reduced-motion: reduce)",
actions: [
"Disable animations",
"Reduce animation duration",
"Remove parallax effects",
"Disable autoplay",
],
},
};
}
screenReaderConsiderations() {
return {
announcements: "Use ARIA live regions for updates",
feedback: "Provide screen reader feedback for interactions",
labels: "Clear, descriptive button labels",
states: "Announce state changes (expanded, selected)",
};
}
}Animation & Transition Design
Animation & Transition Design
# Define animations and transitions
class InteractionDesign:
def define_animation(self, interaction):
"""Specify animation properties"""
return {
'trigger': interaction.trigger, # Click, hover, load
'element': interaction.element,
'animation': {
'type': interaction.animation_type, # Fade, slide, scale
'duration': interaction.duration, # 200-400ms typical
'easing': interaction.easing_fn, # Ease-in-out
'delay': interaction.delay_ms
},
'purpose': interaction.purpose, # Feedback, guidance, delight
'platform': ['Desktop', 'Mobile'], # Platform-specific
'accessibility': {
'respects_prefers_reduced_motion': True,
'non_distract': 'Critical interactions only'
}
}
def define_transitions(self):
"""Page/screen transitions"""
return {
'navigation_forward': {
'animation': 'Slide right',
'duration': '300ms',
'easing': 'ease-out'
},
'navigation_back': {
'animation': 'Slide left',
'duration': '300ms',
'easing': 'ease-out'
},
'modal_open': {
'animation': 'Fade + Scale up',
'duration': '200ms',
'easing': 'ease-out'
},
'modal_close': {
'animation': 'Fade + Scale down',
'duration': '150ms',
'easing': 'ease-in'
}
}
def animation_guidelines(self):
"""Best practices for animation"""
return {
'duration': {
'micro_interactions': '100-200ms',
'transitions': '200-400ms',
'entrance_animations': '300-500ms',
'avoid': '>500ms (feels sluggish)'
},
'easing': {
'entrance': 'Ease out (fast start, slow end)',
'exit': 'Ease in (slow start, fast end)',
'focus': 'Ease-in-out for smooth feel'
},
'purpose': [
'Provide feedback',
'Guide user attention',
'Communicate state change',
'Delight users',
'Avoid: Distraction, slowness'
]
}Error Handling & Feedback
Error Handling & Feedback
Error State Design:
Primary Error Message:
"Payment declined" (clear, non-technical)
Secondary Explanation:
"Your card was declined by the bank. This might be due to
insufficient funds, security concerns, or an expired card."
Recovery Action:
[ Retry Payment ] [ Use Different Card ] [ Contact Support ]
Form Field Errors:
- Highlight field with error color (red)
- Show error icon
- Place error message near field
- Show error on blur, not on keystroke
Form Validation:
- Real-time validation for good UX
- Server-side validation for security
- Show success state after valid input
- Clear error when corrected
---
Success States:
Confirmation Message:
"Payment successful!"
Duration: 2-3 seconds
Action: Auto-dismiss or click to close
Next Step:
- Order confirmation email sent
- What happens next?
- Related actions
Visual Feedback:
- Check mark animation
- Subtle celebration animation
- Sound (optional, if enabled)// Component: [Name]
// TODO: Customize for your framework (React, Vue, Svelte, etc.)
import React from 'react';
interface Props {
// TODO: Define props
}
export function ComponentName({ }: Props) {
// TODO: Add state and effects
return (
<div>
{/* TODO: Add component markup */}
</div>
);
}
Related skills
How it compares
Pick interaction-design over visual-only design skills when the task is behavioral UI states and feedback, not color or typography systems.
FAQ
What does interaction-design specify?
interaction-design specifies micro-interactions, UI states, feedback patterns, and cross-screen flows so web and mobile interfaces feel responsive, accessible, and consistent during frontend implementation in aj-geddes/useful-ai-prompts projects, design specs, and shared componen
When should agents load interaction-design?
Agents should load interaction-design when users define loading, error, empty, or hover states, micro-interactions, or accessible feedback flows before coding React, Vue, or mobile UI components that must behave consistently across multiple screens and navigation paths. Skillseli