ux-design
Use this skill when flows feel clunky, users are confused, navigation needs planning, onboarding needs design, or accessibility needs implementation. Covers information architecture, user flows, interaction patterns, progressive disclosure, and error handling UX.
What this skill does
# UX Design — Flows, Structure & Interaction Design how users move through the app, find what they need, and accomplish tasks with minimal friction. This skill covers the structural and behavioral layer of UX — information architecture, navigation, user flows, interaction patterns, and error handling. For visual design (colors, typography, layout), see the beautify and ui-patterns skills. For onboarding flows, see ONBOARDING.md. For accessibility implementation, see ACCESSIBILITY.md. ## Information Architecture The goal of IA is that users never have to think about where to find something. Navigation should match the user's mental model, not the database schema or org chart. ### Core Principles - **Flat > deep.** Every additional level of nesting loses users. Aim for max 2 levels of hierarchy in navigation. - **Labels are architecture.** Vague labels cause wrong turns. If a label needs explanation, change the label. - **Group by user task, not data type.** "Marketing Assets" beats "Images | Documents | Videos." Users think in workflows, not file formats. - **5-9 items per group** (Miller's Law). More than 9 items in a nav section means it needs restructuring. - **Most-used items first.** Alphabetical ordering is lazy architecture — prioritize by frequency of use. ### URL Structure URLs must mirror the information architecture: ``` /dashboard /projects /projects/[id] /projects/[id]/settings /settings/profile /settings/billing ``` Rules: - Nouns, not verbs: `/projects` not `/manage-projects` - Lowercase with hyphens: `/team-members` not `/teamMembers` - Meaningful IDs when possible: `/projects/acme-q4` not `/projects/a1b2c3` - Max 3 levels of depth in the URL path - Filter state in query params (`?status=active&owner=me`) for shareability ### Page Content Hierarchy Every page must answer four questions in visual priority order: 1. **Where am I?** — Page title + breadcrumbs 2. **What can I do here?** — Primary actions visible above the fold 3. **What are the sub-sections?** — Tabs, cards, or clearly labeled sections 4. **What's most important?** — Visual hierarchy (size, weight, position) makes this obvious without reading ### Page Types - **Dashboard:** Overview metrics + quick actions + recent activity. Never just a list of links. - **List page:** Filterable, sortable, searchable collection. Primary CTA to create new item. Show item count. - **Detail page:** Single object with all its information. Actions in the page header. Related objects linked. - **Settings page:** Grouped form fields. Save per-section, not one giant save button for the entire page. - **Empty state:** Explains what this page will contain + single CTA to add the first item. Never show an empty table with column headers. ## Navigation Patterns Choose the pattern based on product complexity and number of sections: ### Decision Framework | Pattern | When to use | Item count | |---------|------------|------------| | **Top nav (horizontal)** | Sections are equally important, product is simple | 3-7 top-level items | | **Sidebar (vertical)** | Complex product, long sessions, sections have subsections | 5-20 items with grouping | | **Tabs** | Related views of the same object (Overview / Activity / Settings) | 2-6 tabs on a single entity | | **Command palette** | Power users, large apps, cross-cutting actions | Any size — supplements primary nav | | **Breadcrumbs** | Depth > 2 levels — always show path back to parent | On all pages except homepage | ### Sidebar Best Practices Group items with visual section headers. Use collapsible sections for depth. Structure: ``` WORKSPACE Dashboard Projects Templates SETTINGS Profile Billing Integrations ``` ### Command Palette (Cmd+K) Implement as a modal overlay triggered by Cmd+K / Ctrl+K. Include three types of results: - **Navigation:** "Go to Settings," "Open Projects" - **Actions:** "Create project," "Invite teammate" - **Search:** "Find user John," "Search invoices" ### Search and Filtering - Global search accessible from every page (header search bar) - Filters visible, not hidden in menus — show count of applied filters - Common filter dimensions: Status, Date range, Owner, Tags/Labels - Support saved/preset filters for common queries - Persist filter state in URL query params for shareability and bookmarking ## User Flows ### Task Analysis When designing or improving a flow, map the current steps a user takes to accomplish their goal. Then reduce: 1. **List every step** the user takes from intent to completion (including navigation, clicks, form fields, confirmations). 2. **Identify friction points:** Where does the user pause, make decisions, wait, or get confused? 3. **Eliminate steps:** Every step must earn its place. Can two steps merge? Can a default eliminate a choice? Can a step be deferred to later? 4. **Target: 3-click rule for common tasks.** The most frequent user actions should require no more than 3 interactions from any starting point. ### Step Reduction Principles - **Smart defaults** over blank forms — pre-fill everything inferable from context - **Inline creation** over navigate-to-form — let users create items where they need them - **Bulk operations** over one-at-a-time — if users do it to 10 items, let them do it to 10 at once - **Remember choices** — if the user picked a filter or view last time, restore it - **Combine related steps** — name + description on the same screen, not two separate screens ## Interaction Patterns ### Feedback — What Happens When You Click Every user action must produce visible feedback within 100ms. If the operation takes longer: - **< 1 second:** Show a spinner on the button or inline indicator - **1-10 seconds:** Show a progress indicator or skeleton screen - **> 10 seconds:** Show a progress bar with estimated time; allow background processing with notification on completion ### Confirmation vs. Undo | Approach | When to use | |----------|------------| | **No confirmation** | Reversible actions with no data loss (archiving, toggling, moving) | | **Undo toast** | Destructive but recoverable actions (deleting a list item, removing a team member). Show "Undo" for 5-8 seconds. | | **Confirmation dialog** | Irreversible, high-stakes actions only (deleting an account, publishing to production, bulk delete). Require typing a confirmation string for the most dangerous actions. | Default to undo over confirmation dialogs. Confirmation dialogs interrupt flow and users click "OK" without reading them. ### Inline vs. Modal Editing - **Inline editing** for single-field changes (rename, status change, quick note). Click to edit, blur or Enter to save. - **Modal/drawer** for multi-field edits that need context isolation (edit profile, configure integration). - **Full page** for complex creation flows (multi-step wizard, document editor). ### Optimistic vs. Pessimistic Updates - **Optimistic** (update UI immediately, sync in background): Use for low-risk operations where failure is rare — toggling, liking, reordering, editing text. Roll back on failure with an error toast. - **Pessimistic** (wait for server, then update UI): Use for financial transactions, permission changes, external API calls, and anything where partial failure creates inconsistency. ## Progressive Disclosure Reveal complexity gradually. Four levels: | Level | What to show | Example | |-------|-------------|---------| | **Essential** | Always visible — the core data and primary actions | List view with key columns, main CTA | | **On interaction** | Revealed by hover, click, or expand | Row hover actions, expandable details, tooltip info | | **On demand** | Available through explicit navigation or settings | Advanced settings, raw data view, export options | | **Discoverable** | For power users who seek it out | Keyboard shortcuts, API access, bulk actions, command palette | ### When Hiding Makes UX Worse Do not hide behind progressive disclosure: - **Error states** — always surf
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.