원클릭으로
interface-design
UI/UX design patterns for software. Trigger: When designing user interfaces, planning UX flows, or evaluating UI decisions.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
UI/UX design patterns for software. Trigger: When designing user interfaces, planning UX flows, or evaluating UI decisions.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Paste-ready session summary for context transfer to a new chat. Trigger: User says 'context handoff', 'start fresh', or session needs to continue.
One-at-a-time questioning to fully profile a goal before acting. Trigger: User says 'grill me', goal is vague, or clarification is needed first.
Batch execution with checkpoints. Trigger: When executing plans with batched tasks.
Universal coding principles: DRY, security by default, null guards, and YAGNI. Trigger: When writing or reviewing code in any language or technology.
Accessibility guide (WCAG 2.1/2.2, Level A–AAA). Trigger: When building UI components, interactive elements, or auditing accessibility compliance.
Astro quality patterns: island philosophy, SEO by page type, and Core Web Vitals. Trigger: When reviewing Astro site quality or hydration decisions.
| name | interface-design |
| description | UI/UX design patterns for software. Trigger: When designing user interfaces, planning UX flows, or evaluating UI decisions. |
| license | Apache 2.0 |
| metadata | {"version":"1.0","type":"domain","skills":["a11y"]} |
Plan UI with intentional aesthetic direction, user flows, component hierarchy, and visual system. Design decisions before implementation.
Don't use for:
Before writing any UI code, define a clear conceptual direction and commit to it.
## Aesthetic Direction
**Purpose**: What problem does this interface solve? Who uses it?
**Domain**: 5+ concepts, metaphors, or vocabulary from this product's world
**Color world**: 5+ colors that exist naturally in this domain's physical space
**Tone**: Pick ONE — brutally minimal, maximalist, editorial, luxury, brutalist,
retro-futuristic, soft/pastel, industrial, organic... commit to an extreme.
**Differentiation**: What's the one element that could only exist for THIS product?
**Defaults rejected**: Three obvious patterns you're explicitly not doing.
"Bold maximalism and refined minimalism both work — the key is intentionality, not intensity."
Typography: choose distinctive, characterful faces over generic defaults. Color: a palette that feels like it came FROM the product's world, not applied to it. Composition: unexpected layouts, asymmetry, diagonal flow, generous negative space or controlled density — all valid when intentional. Backgrounds: gradient meshes, noise textures, geometric patterns, grain overlays, layered transparencies, dramatic shadows — atmosphere and depth beyond solid colors. Complexity: match implementation to vision — maximalist design = elaborate animations and effects; minimalist = restraint, precision, and whitespace.
## Design Process
1. **Understand** → Who is the user? What's the goal?
2. **Map** → What's the user flow? (entry → action → result)
3. **Structure** → What components are needed? (hierarchy)
4. **Validate** → Does the design meet the requirements?
5. **Implement** → Build with technology skills (react, css, mui)
## User Flow: Checkout
**Entry:** User clicks "Checkout" from cart
**Goal:** Complete purchase
Flow:
1. Review cart items → [Edit quantities] → [Remove items]
2. Enter shipping address → [Auto-fill from saved] → [Validate address]
3. Select shipping method → [Show estimated delivery]
4. Enter payment → [Validate card] → [Show errors inline]
5. Review order → [Edit any section] → [Place order]
6. Confirmation → [Order number] → [Email sent]
**Edge cases:**
- Empty cart → Redirect to shop with message
- Payment failure → Show error, keep form state, retry
- Session timeout → Save progress, prompt re-login
Map the UI structure before building components.
## Component Hierarchy: Dashboard
DashboardPage
├── DashboardHeader
│ ├── PageTitle
│ └── DateRangePicker
├── MetricsRow
│ ├── MetricCard (revenue)
│ ├── MetricCard (orders)
│ └── MetricCard (customers)
├── ChartsSection
│ ├── RevenueChart
│ └── OrdersChart
└── RecentOrdersTable
├── TableHeader
├── TableRow[]
└── Pagination
Identify what state each component needs before implementing.
## State Analysis: Checkout
| Component | State Needed | Source |
|-----------------|---------------------------|--------------------|
| CartReview | items, quantities | Redux store |
| ShippingForm | address fields, errors | Local form state |
| ShippingMethod | methods[], selected | API + local |
| PaymentForm | card fields, errors | Local form state |
| OrderSummary | totals, tax, shipping | Derived from above |
| CheckoutPage | currentStep, isSubmitting | Local state |
Choose ONE depth approach and apply it consistently. Mixing strategies breaks visual coherence.
Borders-only → technical, precise feel; no shadows
Subtle shadows → layered surfaces with soft elevation
Surface shifts → elevation via lightness (dark mode: higher = slightly lighter)
Borders + shadows → reserved for emphasis elements only
❌ Don't mix approaches — inconsistent depth is the clearest sign of no system.
Inputs: slightly darker than surroundings (signals "type here"). Sidebars: same background as canvas with a subtle border — not a different hue that fragments space.
Every interactive element needs all five states defined before shipping.
Default → resting appearance
Hover → cursor over element
Active → pressed/clicked (brief; gives physical feel)
Focus → keyboard navigation — visible ring, never hidden
Disabled → reduced opacity + cursor:not-allowed
❌ Missing focus = broken keyboard accessibility
❌ Missing disabled = broken form UX
## Checkpoint 1: User Flow
- [ ] All user goals are achievable
- [ ] Error cases handled (empty, invalid, failure)
- [ ] Navigation is clear (user always knows where they are)
## Checkpoint 2: Component Structure
- [ ] Each component has single responsibility
- [ ] No component handles 3+ unrelated concerns
- [ ] Hierarchy reflects visual nesting
## Checkpoint 3: State Design
- [ ] State is colocated (closest to where it's used)
- [ ] No redundant state (derived values computed, not stored)
- [ ] Loading and error states accounted for
## Checkpoint 4: Craft Self-Evaluation
- [ ] Swap Test: replacing the typeface/layout with generic alternatives changes how it feels
- [ ] Squint Test: hierarchy is perceivable without reading — contrast/scale carry it
- [ ] Signature Test: 3+ specific elements feel unique to THIS product
- [ ] Token Test: CSS variable names evoke this product's world, not any generic project
Use when evaluating existing UI — a mockup, PR, or shipped feature. Run all 5 dimensions in order.
1. First Impression (2 seconds)
2. Usability
3. Visual Hierarchy
4. Consistency
5. Accessibility (use a11y skill for full audit)
Feedback rules: Be specific (cite element and reason). Suggest alternatives alongside issues. Acknowledge what works.
❌ Generic fonts (Inter, Roboto, Arial, system-ui) when context calls for character
❌ Purple/blue gradients on white — the most overused AI aesthetic
❌ Predictable card-grid-dashboard layouts without context-specific differentiation
❌ "Clean and modern" without defining what those mean for THIS product
❌ Same aesthetic repeated — vary light/dark themes, typefaces, and palettes across projects
"No design should be the same. Make unexpected choices that feel genuinely designed
for this context."
"Extraordinary creative work is possible here — don't hold back."
# ❌ WRONG
"Let me create the components and figure it out as I go."
# ✅ CORRECT
"Let me commit to an aesthetic direction, map the user flow,
define the component hierarchy, identify state needs, then implement."
Visual system: Modular type scale (0.75rem → 3rem), line-height (headings 1.1–1.3, body 1.5–1.7), fluid clamp(). Spacing: 8pt grid (4px → 64px). Color: semantic tokens, WCAG ratios (4.5:1 text, 3:1 UI). See visual-design.md.
Responsive: Mobile-first, content-driven breakpoints. dvh for mobile browser compatibility. Touch targets 44×44px minimum. See responsive-design.md.
Motion: transform/opacity for 60fps. In React, use the Motion library for complex sequences. Timing: 100–150ms (feedback), 200–300ms (toggles), 300–500ms (modals). Support prefers-reduced-motion. One well-orchestrated page-load reveal creates more delight than scattered micro-interactions. See interaction-design.md.
Designing a new page/feature?
→ Aesthetic direction → User flow → Component hierarchy → State analysis
→ Visual design → Responsive → Motion → Implementation
Committing to aesthetic direction?
→ Define tone (pick ONE extreme), differentiation, and 3 defaults you reject
Planning visual design?
→ See references/visual-design.md
Planning responsive behavior?
→ See references/responsive-design.md
Adding interactions/animations?
→ See references/interaction-design.md
Choosing between UI patterns?
→ See Examples table below or references/design-thinking.md
Evaluating existing UI?
→ Run Design Critique Framework (5 dimensions: impression, usability, hierarchy, consistency, a11y)
→ Run 4 craft checkpoints → Verify depth strategy is consistent
→ Confirm all 5 interactive states are covered
Accessibility concerns?
→ Use a11y skill; Checkpoint 4 for planning; visual-design.md for contrast ratios
| Pattern | Use When | Example |
|---|---|---|
| List → Detail | Browsing collections | Products list → Product page |
| Wizard/Steps | Multi-step processes | Checkout, onboarding |
| Dashboard | Overview + drill-down | Admin panel, analytics |
| Master-Detail | List with inline preview | Email client, file manager |
| Modal/Dialog | Focused action, confirmation | Delete confirm, quick edit |
| Tabs | Related content sections | Settings, profile sections |
| Search + Filter | Large datasets | Product catalog, user list |
| Infinite scroll | Content feeds | Social feed, news |
Responsive: Mobile-first, then expand.
Loading states: Every async operation needs loading, success, error, and empty states.
Empty states: Design for zero data (first use, no results, filtered to nothing).
Error recovery: Always provide a way forward — never a dead end.