Aller au contenu principal

Skill: qa-design

Fork

UI/UX design audit and verification of web best practices. Trigger when the user wants to audit the design, verify the UI/UX, or improve the user interface.

Configuration

PropertyValue
Contextfork
Allowed toolsRead, Glob, Grep
Keywordsdesign, invalid field, image, 1 item(s)

Detailed description

UI/UX Design Audit

Objective

Audit a web interface against 100+ rules covering accessibility, forms, animations, typography, images, performance, navigation, dark mode, and internationalization.

Audit categories

┌──────────────────────────────────────────────────────────────────┐
│ UI/UX AUDIT │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 1. ACCESSIBILITY ARIA, contrast, focus, keyboard │
│ 2. FORMS Validation, feedback, autofill │
│ 3. ANIMATIONS Performance, reduced-motion, timing │
│ 4. TYPOGRAPHY Hierarchy, readability, responsive │
│ 5. IMAGES Alt text, lazy loading, formats │
│ 6. UI PERFORMANCE Layout shift, first paint, bundle │
│ 7. NAVIGATION Breadcrumbs, mobile menu, deep links │
│ 8. DARK MODE CSS variables, images, contrast │
│ 9. TOUCH INTERACTIONS Target size, swipe, gestures │
│ 10. INTERNATIONALIZATION RTL, dates, plurals, translations │
│ │
└──────────────────────────────────────────────────────────────────┘

1. Accessibility

Critical rules

#RuleVerification
A1Minimum contrast 4.5:1 (normal text)Check CSS colors
A2Minimum contrast 3:1 (large text, icons)Check CSS colors
A3Labels on all form fields<label for=""> or aria-label
A4Alt text on all informative images<img alt=""> non-empty
A5Full keyboard navigationTab, Enter, Escape, Arrow keys
A6Visible focus on interactive elements:focus-visible style
A7Correct ARIA rolesrole, aria-* attributes
A8No purely visual contentText alternatives
A9Logical heading structureh1 > h2 > h3, no skipping
A10Skip to content linkFirst focusable element

Patterns to look for

# Images without alt
<img[^>]*(?<!alt=")[^>]*>

# Buttons without accessible text
<button[^>]*>(\s*<(svg|img|i)[^>]*>\s*)<\/button>

# Inputs without label
<input(?![^>]*aria-label)(?![^>]*id=["'][^"']*["'][^>]*)[^>]*>

# Insufficient contrast (light colors on light background)
color:\s*#[def][def][def]|color:\s*#[cdef]{6}

2. Forms

#RuleDetail
F1Inline validation (not only on submit)Show error on blur
F2Descriptive error messagesNot just "Invalid field"
F3Autocomplete attributesautocomplete="email", "name", etc.
F4Submit button disabled if invalidOr clear feedback
F5Required field indicator* or explicit text
F6Correct input typetype="email", "tel", "number"
F7Minimum font size 16px on mobileAvoids iOS zoom
F8Loading state on submitSpinner or disabled

3. Animations and transitions

#RuleDetail
AN1prefers-reduced-motion respectedDisable animations on request
AN2Duration < 400ms for micro-interactionsFast feedback
AN3No flash/blink > 3HzEpilepsy risk
AN4CSS transitions preferred over JSGPU performance
AN5will-change for heavy animationsCompositor optimization
/* prefers-reduced-motion pattern */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}

4. Typography

#RuleDetail
T1Clear visual hierarchyDistinct sizes, weights, colors
T2Line length 50-75 charactersmax-width: 65ch
T3Minimum line-height 1.5 for body textReadability
T4No more than 2-3 fontsVisual consistency
T5Minimum size 16px for bodyMobile readability
T6System font fallback definedfont-family: 'Custom', system-ui, sans-serif

5. Images

#RuleDetail
I1Descriptive alt textNot "image", not empty unless decorative
I2Lazy loadingloading="lazy" except above-the-fold
I3Explicit dimensionswidth and height to avoid CLS
I4Modern format (WebP, AVIF)With fallback
I5Responsive imagessrcset and sizes
I6Optimized compression< 100KB for UI images

6. UI Performance

#RuleDetail
P1CLS < 0.1No layout shift
P2LCP < 2.5sLargest Contentful Paint
P3FID < 100msFirst Input Delay
P4Skeleton/loading statesNo blank page
P5Code splitting per routeBundles < 200KB gzip
P6Inline critical CSSFast above-the-fold

7. Navigation

#RuleDetail
N1Breadcrumbs on deep pagesUser orientation
N2Accessible mobile menuHamburger + overlay
N3Easy back navigationPredictable navigation
N4Active page indicationMenu highlight
N5Useful 404 pageNavigation links
N6Working deep linksShareable URLs

8. Dark Mode

#RuleDetail
D1CSS custom properties--color-bg, --color-text
D2Adapted imagesNo white images on dark background
D3Sufficient contrast in darkRecheck ratios
D4Smooth transitiontransition: background-color 0.2s
D5Respect prefers-color-schemeAutomatic detection

9. Touch interactions

#RuleDetail
TC1Touch targets >= 44x44pxApple/Google minimum
TC2Spacing between targets >= 8pxAvoid tap errors
TC3No hover-only interactionsTouch alternatives
TC4Intuitive swipe if usedNatural direction

10. Internationalization

#RuleDetail
I18N1Externalized textNo hardcoded strings
I18N2RTL supportdirection: rtl compatible
I18N3Local date formatsNo hardcoded US format
I18N4Plurals handledNo "1 item(s)"

Expected output

## UI/UX Audit: [Project name]

### Overall score: X/100

### Results by category

| Category | Score | Issues |
|-----------|-------|--------|
| Accessibility | X/10 | [N issues] |
| Forms | X/10 | [N issues] |
| Animations | X/10 | [N issues] |
| Typography | X/10 | [N issues] |
| Images | X/10 | [N issues] |
| UI Performance | X/10 | [N issues] |
| Navigation | X/10 | [N issues] |
| Dark Mode | X/10 | [N issues] |
| Touch | X/10 | [N issues] |
| i18n | X/10 | [N issues] |

### Critical issues
- [CRITICAL] [file:line] - Description

### Recommended improvements
- [IMPORTANT] [file:line] - Description

### Suggestions
- [SUGGESTION] - Description

Rules

  • Check ALL categories, not just the obvious ones
  • Prioritize issues by user impact
  • Provide concrete solutions, not just findings
  • Test on mobile AND desktop

Automatic triggering

This skill is automatically activated when:

  • The matching keywords are detected in the conversation
  • The task context matches the skill's domain

Triggering examples

  • "I want to design..."
  • "I want to invalid field..."
  • "I want to image..."

Context fork

Fork means the skill runs in an isolated context:

  • Does not pollute the main conversation
  • Results are returned cleanly
  • Ideal for autonomous tasks

Practical examples

1. Example: UI/UX Audit Checklist

Example: UI/UX Audit Checklist

Scenario

Audit a SaaS dashboard application for design consistency, usability, and accessibility.

Audit Summary

CategoryScoreIssues Found
Visual Consistency5/108 issues
Typography6/104 issues
Spacing & Layout4/106 issues
Color & Contrast7/103 issues
Interaction Design5/105 issues
Accessibility4/107 issues

Visual Consistency Issues

#IssueLocationSeverityFix
13 different button styles for same actionDashboard, Settings, ProfileHighStandardize to design system Button component
2Inconsistent border-radius (2px, 4px, 8px)Cards, inputs, modalsMediumUse --radius-sm: 4px, --radius-md: 8px tokens
3Two different icon libraries (Lucide + HeroIcons)Sidebar vs content areaMediumConsolidate to Lucide icons
4Shadow depth varies on same-level cardsDashboard gridLowUse --shadow-card token consistently

Typography Issues

Found: 6 different font sizes used without system
Recommended scale (rem):
--text-xs: 0.75 (12px) - labels, captions
--text-sm: 0.875 (14px) - body small
--text-base: 1 (16px) - body
--text-lg: 1.125 (18px) - subheadings
--text-xl: 1.25 (20px) - headings
--text-2xl: 1.5 (24px) - page titles

Spacing Issues

Found: Arbitrary margins (7px, 13px, 22px, 33px)
Recommended 4px grid:
--space-1: 4px --space-4: 16px --space-8: 32px
--space-2: 8px --space-6: 24px --space-12: 48px

Accessibility Issues

#IssueWCAGFix
1Gray text on white: 2.8:1 contrast ratio1.4.3 AA (needs 4.5:1)Darken to #595959
2No focus indicators on interactive elements2.4.7 AAAdd :focus-visible outline
3Form errors communicated only by color1.4.1 AAdd error icon + text message
4Missing aria-label on icon-only buttons4.1.2 AAdd descriptive labels
5Data table not navigable by keyboard2.1.1 AAdd tabindex, arrow key navigation

Immediate (1 week)

  1. Create CSS custom properties for colors, spacing, typography, shadows
  2. Fix contrast ratio issues (WCAG compliance)
  3. Add focus indicators globally

Short-term (2-4 weeks)

  1. Build/standardize component library (Button, Card, Input, Modal)
  2. Replace arbitrary values with design tokens
  3. Consolidate icon library

Ongoing

  1. Add Storybook for component documentation
  2. Lint for design token usage (stylelint plugin)

Key Decisions

  • Design tokens over hardcoded values: Single source of truth, theme-able
  • 4px spacing grid: Consistent rhythm, easy mental math
  • WCAG AA minimum: Legal compliance and better UX for all users
  • Component audit before redesign: Fix consistency first, then iterate on aesthetics

See also