Use when designing or auditing UI/UX (wireframes to UI specs), running heuristic and accessibility reviews (WCAG 2.2 AA, ARIA), defining design systems and tokens, improving flows/forms/states and...
Use this skill to design or audit interfaces, flows, component systems, and AI-assisted frontend briefs. It owns design direction, interaction behavior, state coverage, and implementation-ready handoff, not user research or code remediation.
| Mode | Use When | Required Output |
|---|---|---|
| audit existing UI | product has usability, accessibility, consistency, or conversion issues | findings plus acceptance criteria |
| design new UI | flow or screen must be shaped from scratch | flow, states, components, handoff spec |
| design-system decision | team must choose primitives or token structure | recommendation with tradeoffs |
| AI frontend brief | Codex or Claude will generate UI | visual thesis, interaction thesis, verification plan |
| AI UX review | product includes chat, agents, or automation | transparency, control, failure handling guidance |
| style/palette/font selection | new surface needs a concrete design direction | generated design system from the offline database (scripts/search.py --design-system) |
Use this skill when the main task is:
Route elsewhere when the main task is:
| Need | Use Instead |
|---|---|
| user research and study design | ../software-ux-research/SKILL.md |
| code-level accessibility fixes | ../software-accessibility/SKILL.md |
| accessibility test automation | ../qa-testing-accessibility/SKILL.md |
| frontend implementation | ../software-frontend/SKILL.md |
| product strategy or roadmap | ../product-management/SKILL.md |
Consumer-grade product work is judged on the rows below, not just task completion. Every substantive design output should be reviewed against these.
| Dimension | Pass | Fail |
|---|---|---|
| Time to first value | <60s for primary user | multi-step setup wizard |
| Empty state | models populated state with one verb CTA | "No items yet" + grey illustration |
| Loading state | skeleton matching populated layout | centered spinner |
| Error recovery | names cause + offers specific next step in user voice | "Something went wrong" |
| Microcopy | one voice; numbers humanised; verbs in CTAs | system-speak, status codes, noun CTAs |
| Motion | functional (origin β destination, hierarchy) | decorative bounces on every state change |
| Touch feedback | every tappable element has press + commit states | silent commits |
| Optical alignment | icons, numbers, capitals optically balanced | pixel-grid measured equal but reads off |
| First-run delight | one non-functional moment that earns a smile | none |
| Recovery without restart | back, undo, edit-without-redo paths exist | "Are you sure?" gating every action |
If three or more rows fail, the screen is debt regardless of what metrics say. See consumer-craft-patterns.md for the full playbook.
For agent surfaces β anything that acts on the user's behalf over multiple steps β add these four rows. They fail independently of the ones above, and a surface can pass every row of the table above while failing all four of these.
| Dimension | Pass | Fail |
|---|---|---|
| Steerability | user can add, revise, or retract a requirement mid-run; composer stays live | only "Stop", or input disabled while working |
| Action reversibility | tiered auto / notify+undo / block by what the action does in the world | one confirm dialog for everything, or none |
| Cost visibility | estimate before, accrual during, receipt after β in the user's units | token counts only, or nothing until the invoice |
| Memory legibility | user can see, attribute, edit, and delete what the agent remembers | opaque personalization, or global wipe as the only control |
See references/ai-automation-ux.md for each.
python3 scripts/search.py "<product> <industry> <tone>" --design-system (see references/design-database-search.md); persist it with --persist for cross-session reuse.UI/UX design task
-> Confirm mode: audit, new UI, system decision, or AI frontend brief
-> Gather platform, primary journey, states, constraints, and quality bar
-> Define hierarchy, interaction model, and supporting states
-> Add accessibility, performance, and implementation handoff criteria
-> Specify verification path and evidence needed
-> Deliver acceptance criteria and unresolved tradeoffs
WCAG 2.2 is the current W3C standard (October 2023; became ISO standard October 2025) and the legally mandated baseline under the European Accessibility Act (in force June 2025), ADA/Section 508, and EN 301 549. WCAG 3.0 remains a Working Draft β the 3 March 2026 update published the majority of requirements plus a proposed conformance model for public review, and renamed "outcomes" to "requirements". Candidate Recommendation is anticipated Q4 2027 and full Recommendation 2028 or later β do not use it as a compliance target yet. Note its broader stated scope (static, dynamic, interactive, and streaming content; apps, tools, publishing) when designing token-by-token streaming agent surfaces: WCAG 2.2 remains the compliance baseline, but streaming UI is squarely in WCAG 3's forward scope.
| Requirement | Minimum target | Notes |
|---|---|---|
| Web (EU B2C) | WCAG 2.2 AA | EAA enforcement active; CNIL precedent fines on cookie/consent dark patterns |
| Web (US public) | WCAG 2.2 AA | ADA / Section 508; court-tested |
| iOS / Android | Platform guidelines + WCAG 2.2 AA equivalent | Use native accessibility APIs; avoid custom reimplementations of standard controls |
| Rich media / APNG / video | WCAG 2.2 AA 1.4.2, 1.4.5, 1.2.x | Captions, audio description, no strobing |
Before finalizing any UI/UX design output:
scripts/contrast_check.py <fg> <bg> β never from estimation (a model-estimated ratio labeled "computed" is a fabrication) β and is measured against the surface the text actually renders on (row, card, modal), not only the page canvas; focus order listed element by element; target size (β₯44Γ44pt)aria-live politeness level and batching rule β a visual pulse alone is invisible to screen readersEvery substantial output should include:
| Platform | Key Constraints |
|---|---|
| web | semantic structure, focus behavior, reflow, target size |
| iOS | system navigation, Dynamic Type, safe areas |
| Android | Material 3 patterns, edge-to-edge, predictive back, large-screen behavior |
When using AI to generate UI:
modern or clean without defining composition, content density, or interaction constraints.prefers-reduced-motion fallback. CSS scroll-driven animations are invisible to users with reduced-motion preferences if the spec doesn't explicitly handle the case.References β read at most 2-3 per task; pick the cluster that matches the ask.
Workflow & systems
scripts/search.py)Heuristics, accessibility & inclusion
Visual craft
Patterns & surfaces
Conversion & AI
Performance
references/performance-ux-vitals.md β Core Web Vitals and perceived performance
Scripts β offline design-database search engine (stdlib-only Python, vendored from nextlevelbuilder/ui-ux-pro-max-skill, MIT)
Upstream trust note (verified 2026-08-10): that repo shows 115,186 stars against only 493 watchers and 30 contributors on a repo created 2025-11-30 β a star-inflation signature. This says nothing about the vendored content, which was taken on merit and is unaffected. It does mean: never cite its star count as social proof, and re-diff before pulling any upstream update.
scripts/search.py β CLI: --design-system, --domain <domain>, --stack <stack>, --persist, --format designmd (exports the generated design system as a spec-conformant DESIGN.md β Google Labs' Apache-2.0 portable design-context format auto-read from project root by Claude Code, Cursor, Windsurf, Kiro)scripts/core.py β BM25 engine and CSV domain configscripts/contrast_check.py β WCAG contrast calculator (single pair, stdin batch, or tokensΓsurfaces cross product); the only accepted source for contrast numbers in a specscripts/design_system.py β design-system generation and Master + page-overrides persistencedata/*.csv and data/stacks/*.csv β style, color, typography, product, landing, chart, UX-guideline, icon, and per-stack databasesdata/slides/*.csv β slide/deck design database (layouts, typography, charts, copy formulas, backgrounds, color logic, layout logic, narrative strategies); queryable via scripts/search.py --slide <domain> (wired into SLIDE_CONFIG in scripts/core.py)data/cip/*.csv β corporate identity pack reference data (industries, deliverables, mockup contexts); queryable via scripts/search.py --cip <domain> (wired into CIP_CONFIG)Templates
Gate before invoking any foundation below: Each foundation has a
When to Apply/When to Skipsection. If your task matches a skip-condition, route to the foundation it names instead β don't pull in primitives the task doesn't need.
Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.