microinteractions
'Design the small details -- triggers, rules, feedback, loops and modes -- that separate good products from great ones. Use when the user mentions "microinteraction", "button feedback", "loading state", "toggle design", "animation detail", "interaction polish", "state transitions", or "input feedback". Also trigger when designing form validation responses, progress indicators, confirmation dialogs, or any UI element where the user expects immediate feedback. Covers trigger design, state rules, feedback mechanisms, and progressive loops. For overall UI polish, see refactoring-ui. For affordance design, see design-everyday-things.'
What this skill does
# Microinteractions Framework A systematic approach to designing the tiny, contained product moments that users interact with every day -- toggles, password fields, loading indicators, pull-to-refresh, like buttons. Based on Dan Saffer's four-part structure (Trigger, Rules, Feedback, Loops & Modes), this framework turns invisible details into the polish that separates forgettable products from beloved ones. ## Core Principle **The difference between a product you tolerate and a product you love is almost always in the microinteractions.** A microinteraction is a contained product moment built around a single use case: changing a setting, syncing data, setting an alarm, picking a password. They are so small that users rarely think about them consciously -- but they feel them. Every microinteraction follows the same four-part structure: a Trigger initiates it, Rules determine what happens, Feedback shows what is happening, and Loops & Modes define its long-term behavior. ## Scoring **Goal: 10/10.** When reviewing or creating microinteractions, rate them 0-10 based on adherence to the principles below. A 10/10 means every interactive moment has a deliberate trigger, clear rules, immediate feedback, and thoughtful loop/mode behavior. Lower scores indicate gaps to address. Always provide the current score and specific improvements needed to reach 10/10. ## The Microinteraction Structure Six areas of focus for designing world-class microinteractions: ### 1. Triggers **Core concept:** The trigger is what initiates a microinteraction. It can be manual (user-initiated -- a tap, click, swipe, voice command) or system-initiated (a condition is met -- time, location, incoming data, error state). The trigger is the front door of every microinteraction. **Why it works:** Without a clear trigger, users cannot discover or initiate the interaction. Without a system trigger, the product cannot respond to changing conditions. Well-designed triggers make functionality discoverable and set accurate expectations for what will happen next. **Key insights:** - Manual triggers live inside existing UI controls: buttons, switches, icons, form fields, gestures - System triggers fire automatically when conditions are met: time elapsed, threshold reached, data received - A trigger must communicate three things: that it exists, what it does, and what state it is in - Trigger affordance should match the importance of the action -- high-stakes actions need prominent triggers - Invisible triggers (gestures, shake, proximity) must be paired with a visible alternative for discoverability - Trigger states -- default, hover, active, disabled, loading -- must be visually distinct **Product applications:** | Context | Application | Example | |---------|-------------|---------| | **Toggle controls** | Manual trigger with binary state | iOS Wi-Fi switch: tap to toggle, position shows state | | **Pull-to-refresh** | Hidden gesture trigger with visible affordance | Pulling down past threshold triggers refresh animation | | **System alerts** | System trigger on condition met | Low battery notification at 20% threshold | | **Search fields** | Manual trigger with auto-suggest system trigger | Typing initiates search; results appear as system trigger | | **Hover reveals** | Manual trigger using proximity | Toolbar actions appear on card hover | **Ethical boundary:** Never hide critical triggers behind gestures or invisible interactions without a visible fallback. Users should always be able to discover essential functionality. See: [references/trigger-design.md](references/trigger-design.md) ### 2. Rules **Core concept:** Rules determine what happens once a microinteraction is triggered. They define the sequence of events, the constraints on what can and cannot happen, the algorithm that processes input, and when the microinteraction ends. Rules are the invisible logic -- users never see them directly, but they feel when rules are wrong. **Why it works:** Rules create the mental model users build about how the interaction works. When rules are consistent and match expectations, the interaction feels natural. When rules violate expectations -- a toggle that does not toggle, a slider that jumps in value -- users lose trust. **Key insights:** - Define the goal of the microinteraction first, then derive rules from it - Rules should feel natural -- match existing mental models and platform conventions - Constrain inputs to prevent errors: limit character counts, set value ranges, enforce formats - Handle edge cases explicitly: what happens at zero, at maximum, on repeated triggers, on interruption - Simple rules produce complex-feeling interactions; complex rules produce confusing interactions - The best rules are invisible -- users do not think about them, they just work **Product applications:** | Context | Application | Example | |---------|-------------|---------| | **Password strength** | Rules evaluate input in real-time | Meter updates as user types; color shifts from red to green | | **Character counter** | Rule constrains and displays remaining | Twitter/X: counter decreases, turns red at limit | | **Volume control** | Rule maps input to output with constraints | Slider snaps to 5% increments; long-press mutes | | **Shopping cart** | Rules manage quantity and state | Cannot go below 1; shows "max 10" at limit | | **Undo action** | Rule sets time window for reversal | Gmail "Undo send" available for 30 seconds | **Ethical boundary:** Rules should be transparent and predictable. Do not create hidden rules that manipulate user behavior, such as making unsubscribe require more steps than subscribe. See: [references/rules-and-state.md](references/rules-and-state.md) ### 3. Feedback **Core concept:** Feedback communicates the rules of the microinteraction to the user. It answers: "What is happening right now?" Feedback can be visual (color, animation, movement), auditory (clicks, chimes), or haptic (vibrations). The key constraint is showing only what matters -- minimal, meaningful, contextual. **Why it works:** Without feedback, users cannot tell if their action registered, if the system is working, or if the operation succeeded. Feedback closes the Gulf of Evaluation. Too little feedback creates anxiety; too much creates noise. The right feedback at the right time makes interactions feel responsive, trustworthy, and alive. **Key insights:** - Feedback must be immediate -- under 100ms for direct manipulation - Use the least noticeable feedback that still communicates: a subtle color change before a modal dialog - Feedback should map to the significance of the event: small action = small feedback, big result = big feedback - Visual feedback is primary; audio and haptic are supplementary and should never be the only channel - Progress indicators reduce perceived wait time even when actual time stays the same - Feedback should use existing elements when possible -- animate the button, not a separate notification **Product applications:** | Context | Application | Example | |---------|-------------|---------| | **Button press** | Visual state change on click | Button depresses, color shifts, text changes to "Saving..." | | **Form validation** | Inline feedback as user types | Green checkmark appears next to valid email field | | **File upload** | Progress indicator with percentage | Progress bar fills; percentage and estimated time shown | | **Error state** | Contextual error near the source | Red border on field + message "Password must be 8+ characters" | | **Success confirmation** | Brief, non-blocking affirmation | Checkmark animation replaces submit button for 1.5 seconds | **Ethical boundary:** Feedback should be honest. Do not use fake progress bars, manipulative countdown timers, or deceptive completion percentages to create false urgency. See: [references/feedback-patterns.md](references/feedback-patterns.md) ### 4. Loops and Modes **Core concept:** Loops de
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.