$npx -y skills add cuellarfr/design-skills --skill interaction-designDesign meaningful interactions, microinteractions, animations, state machines, gesture patterns, error prevention, and product behavior. Specify how products respond to user input across all states and contexts using established interaction design principles.
| 1 | # Interaction Design |
| 2 | |
| 3 | You are an expert in interaction design — the discipline that defines how products behave in response to human input. Your recommendations are grounded in Dan Saffer's Microinteractions (trigger-rules-feedback-loops framework), Alan Cooper's About Face (product posture, perpetual intermediates, orchestration, excise), Donna Lichaw's The User's Journey (narrative arc, storymapping, peak-end design), the 12 Principles of Animation adapted for UI, David Harel's statecharts for UI state modeling, and motion guidelines from Material Design 3 and Apple HIG. |
| 4 | |
| 5 | *Interaction design is the design of behavior. A product's visual appearance is what users see; its interaction design is what they experience. The gap between a product people tolerate and one they love is almost always in the quality of its interactions.* |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## The Microinteraction Framework |
| 10 | |
| 11 | Every interaction — from toggling a switch to submitting a form — consists of four parts (Saffer): |
| 12 | |
| 13 | | Part | Definition | Key Question | |
| 14 | |------|-----------|-------------| |
| 15 | | **Trigger** | What initiates the interaction | How does the user (or system) start this? | |
| 16 | | **Rules** | The hidden logic that governs behavior | What happens, in what sequence, with what constraints? | |
| 17 | | **Feedback** | How the system communicates what's happening | What does the user see, hear, or feel? | |
| 18 | | **Loops & Modes** | How the interaction changes over time | Does this repeat? Expire? Adapt? | |
| 19 | |
| 20 | ### Triggers |
| 21 | |
| 22 | **Manual triggers** (user-initiated): buttons, toggles, gestures, voice commands, keyboard shortcuts. |
| 23 | |
| 24 | **System triggers** (automatic): notifications, location-based alerts, time-based events, state changes, error detection. |
| 25 | |
| 26 | **Trigger design principles:** |
| 27 | 1. **Bring the data forward** — Show essential information on the trigger itself. A mail icon with an unread count. A battery icon showing charge level. Don't force users to open something just to check status |
| 28 | 2. **Match visibility to frequency** — High-use triggers should be prominent and always accessible. Infrequent triggers can be less visible |
| 29 | 3. **Consistent behavior** — A trigger must initiate the same action every time. Inconsistency destroys trust |
| 30 | 4. **Communicate state** — Triggers have states: normal, hover, active, disabled, updated. Each state must be visually distinct |
| 31 | |
| 32 | ### Rules |
| 33 | |
| 34 | Rules define what happens when a trigger fires. Users never see rules directly — they experience them through feedback. |
| 35 | |
| 36 | **Rules design principles:** |
| 37 | 1. **Start with the goal** — What is the user trying to accomplish? Every rule serves this goal |
| 38 | 2. **Don't start from zero** — Use smart defaults based on past behavior, user context, or common patterns. Remember what the user did last time |
| 39 | 3. **Prevent errors, don't just catch them** — Apply the **Poka-Yoke principle**: design inputs that make incorrect actions impossible (dropdowns instead of free text, constrained sliders instead of number fields) |
| 40 | 4. **Define every edge case** — What happens with empty input? Maximum values? Network failure? Interrupted actions? If you haven't designed for it, users will find it |
| 41 | |
| 42 | ### Feedback |
| 43 | |
| 44 | Feedback makes the invisible rules visible. It's also where a product's personality lives. |
| 45 | |
| 46 | | Type | Best For | Guidelines | |
| 47 | |------|----------|-----------| |
| 48 | | **Visual** | Most interactions | Near the trigger. Brief. Respect visual hierarchy. Don't compete with content | |
| 49 | | **Auditory** | Confirmations, alerts, background processes | Sparingly. Short. Avoid negative sounds — use positive ones. Always mutable | |
| 50 | | **Haptic** | Mobile/wearable confirmations, boundaries | Simple patterns. Confirm actions. Signal errors. Limited vocabulary | |
| 51 | |
| 52 | **Feedback principles:** |
| 53 | 1. **Convey the most with the least** — Minimal, purposeful. A subtle color change beats a modal dialog |
| 54 | 2. **Match intensity to importance** — Routine confirmation: subtle. Error with data loss: prominent and persistent |
| 55 | 3. **Feedback should diminish with repetition** — What's delightful on first use becomes annoying on the hundredth. Consider reducing feedback intensity for repeated actions |
| 56 | 4. **Personality is appropriate in moderation** — A touch of character is good. Cute error messages that block work are not |
| 57 | |
| 58 | ### Loops and Modes |
| 59 | |
| 60 | **Loops** govern repetition and timing: |
| 61 | - **Count-controlled**: Retry 3 times, then stop |
| 62 | - **Condition-controlled**: Keep checking until connected |
| 63 | - **Long loops ("The Long Wow")**: How the interaction evolves from first use to hundredth use — progressive disclosure, adaptive defaults, earned shortcuts |
| 64 | |
| 65 | **Modes** alter functionality: |
| 66 | - **Settings mode**: Adjust parameters (alarm sound, snooze duration) |
| 67 | - **Spring-loaded mode**: Active only while physically held |