design-audit/SKILL.md
Comprehensive UI/UX quality audit covering visual hierarchy, accessibility, AI slop detection, typography, colour, layout, interaction states, responsive behaviour, performance, and microcopy. Produces severity-rated findings with actionable...
npx skillsauth add peterbamuhigire/skills-web-dev design-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
design-audit or would be better handled by a more specific companion skill.SKILL.md first, then load only the referenced deep-dive files that are necessary for the task.| Companion Skill | When to Load |
|---|---|
| ai-slop-prevention | Detailed AI anti-pattern reference |
| practical-ui-design | Visual system rules to audit against |
| motion-design | Animation quality standards |
| ux-writing | Microcopy quality standards |
| responsive-design | Responsive behaviour standards |
| frontend-performance | Performance measurement targets |
| laws-of-ux | UX law compliance |
| ux-principles-101 | Accessibility and usability principles |
Before auditing, understand:
Evaluate across all 10 dimensions (Section 2). Score each dimension.
Follow the report structure (Section 3). Prioritise findings by severity.
The first check. Does this interface look machine-generated?
| Check | Look For | |---|---| | Typography | Inter/Roboto defaults, no hierarchy, title case everywhere | | Colour | Cyan-on-dark, purple gradients, gradient text, pure black/white | | Layout | Everything in cards, identical card grids, everything centred | | Effects | Glassmorphism, decorative blur, glow borders, SVG blobs | | Motion | Bounce/elastic easing, animation fatigue | | Content | "Submit" buttons, "Loading..." text, corporate AI jargon |
Verdict: PASS (distinctive, intentional) / BORDERLINE (some generic choices) / FAIL (immediately recognisable as AI-generated)
| Check | Standard | |---|---| | Squint test | Most important element visible when blurred | | Size hierarchy | Clear primary > secondary > tertiary sizing | | Weight contrast | Bold for headings, regular for body (not medium/light) | | Colour emphasis | Brand colour reserved for interactive elements | | Whitespace | Generous spacing separates sections; tight spacing groups related items | | Focal point | Each screen has one clear entry point for the eye |
| Check | Standard | Severity |
|---|---|---|
| Text contrast | >= 4.5:1 (body), >= 3:1 (large text) | Critical |
| UI component contrast | >= 3:1 against background | Critical |
| Touch targets | >= 44x44px (48x48px preferred) | Critical |
| Keyboard navigation | Logical tab order, visible focus ring | Critical |
| Screen reader | Semantic HTML, ARIA labels, meaningful alt text | Critical |
| Colour independence | Never colour alone as indicator | High |
| Zoom support | Usable at 200% zoom | High |
| Reduced motion | prefers-reduced-motion respected | High |
| Focus management | Focus moves logically after interactions | Medium |
| Check | Standard | |---|---| | Font choice | Intentional, not default (matches brand personality) | | Type scale | Consistent scale (Major Third or project-appropriate) | | Body size | >= 16px (18px preferred) | | Line height | 1.5-2.0 for body; decreasing for larger sizes | | Line length | 40-80 characters (66 ideal) | | Weight usage | Regular + Bold only (avoid thin/light/medium) | | Alignment | Left-aligned body text (no justified, centre only for 1-2 lines) | | Letter spacing | Decreased for large display text |
| Check | Standard | |---|---| | Tinted neutrals | No pure grey (#808080), black (#000), or white (#fff) | | Palette structure | Primary + neutral + semantic + surface tokens | | 60-30-10 rule | 60% neutral, 30% secondary, 10% accent | | Semantic colour | Red=error, amber=warning, green=success, blue=info | | Dark mode | Independently designed (not inverted), desaturated brand colours | | Brand colour usage | Reserved for interactive elements only | | System colour pairing | Always paired with icon (not colour alone) |
| Check | Standard | |---|---| | Spacing system | Consistent token scale (4pt or 8pt based) | | Spacing variation | Rhythm through varied spacing (not uniform everywhere) | | Alignment consistency | Few alignment axes per screen | | Content max-width | Text constrained to 40-80 character line length | | Grid usage | Appropriate tool: Flexbox for 1D, Grid for 2D | | Responsive | Mobile-first, content-driven breakpoints | | Container queries | Used for reusable components |
Every interactive element must have these states defined:
| State | Visual Treatment |
|---|---|
| Default | Base appearance |
| Hover | Subtle shift (colour, shadow, or position) |
| Focus | Visible ring (focus-visible for keyboard only) |
| Active/Pressed | Distinct from hover (scale or colour change) |
| Disabled | Reduced opacity OR removed with explanation |
| Loading | Inline indicator with specific status text |
| Error | Red styling + icon + descriptive message |
| Success | Green styling + icon + confirmation message |
| Check | Standard |
|---|---|
| Purpose | Every animation serves a function (feedback, guide, connect) |
| Timing | Follows 100/300/500 rule for category |
| Easing | Exponential curves (ease-out-quart/quint), no bounce/elastic |
| GPU-only | Transform + opacity only (no layout property animation) |
| Reduced motion | prefers-reduced-motion alternative provided |
| Performance | 60fps on mid-range devices |
| Restraint | Not everything animates (no animation fatigue) |
| Check | Standard | |---|---| | Button labels | Verb + noun (no "Submit", "OK", "Yes/No") | | Error messages | What happened + why + how to fix | | Empty states | Acknowledge + explain value + action | | Loading text | Names the operation ("Saving your draft...") | | Link text | Descriptive (no "Click here", "Learn more") | | Vocabulary | Consistent terms throughout | | Tone | Matches moment (serious for errors, warm for onboarding) |
| Check | Standard |
|---|---|
| LCP | < 2.5s on mid-range mobile |
| INP | < 200ms |
| CLS | < 0.1 |
| Initial load | < 650 KB compressed total |
| Images | WebP/AVIF, srcset, lazy loading, explicit dimensions |
| Fonts | font-display: swap, preloaded, subset |
# Design Audit Report
**Date:** [Date]
**Auditor:** Claude (AI-assisted)
**Target:** [Screen/feature name]
**Platform:** [Web/Android/iOS]
**Context:** [Brief description of purpose and users]
## AI Slop Verdict: [PASS / BORDERLINE / FAIL]
[1-2 sentence summary of why]
## Executive Summary
- **Overall Score:** [X/100]
- **Critical Issues:** [count]
- **High Issues:** [count]
- **Medium Issues:** [count]
- **Low Issues:** [count]
- **What's Working:** [1-3 bullet points of strengths]
- **Top Priority:** [The single most impactful fix]
## Critical (Must Fix Before Ship)
### [Finding Title]
- **Dimension:** [Which of the 10 dimensions]
- **Location:** [Where in the interface]
- **Issue:** [What's wrong]
- **Impact:** [Who is affected and how]
- **Fix:** [Specific actionable fix]
- **Standard:** [Which standard it violates]
## High (Fix Within Sprint)
[Same structure]
## Medium (Fix Within Quarter)
[Same structure]
## Low (Nice to Have)
[Same structure]
| Severity | Meaning | |---|---| | Critical | Blocks users, fails accessibility law, data loss risk | | High | Significant UX degradation, frequent user confusion | | Medium | Noticeable quality issue, occasional friction | | Low | Minor polish, edge case, aesthetic preference |
## What's Working Well
[List patterns and decisions that are effective and should be maintained]
## Prioritised Recommendations
1. [Highest impact fix] — addresses [N] critical/high issues
2. [Second priority] — addresses [N] issues
3. [Third priority] — addresses [N] issues
| Score | Meaning | |---|---| | 90-100 | Production-ready. Minor polish only. | | 75-89 | Good foundation. Fix high-priority issues before shipping. | | 60-74 | Significant issues. Needs focused remediation sprint. | | 40-59 | Major redesign areas. Multiple dimensions failing. | | < 40 | Fundamental problems. Start with structure and hierarchy. |
| Dimension | Weight | Rationale | |---|---|---| | Accessibility | 20% | Legal requirement, blocks users | | Visual Hierarchy | 15% | Foundation of usability | | Interaction States | 12% | Functional completeness | | Content & Microcopy | 12% | User comprehension | | Typography | 10% | Readability | | Colour | 8% | Communication and mood | | Layout & Spacing | 8% | Structure and scannability | | Performance | 6% | Speed and responsiveness | | Motion | 5% | Polish and feedback | | AI Slop | 4% | Distinctiveness (binary pass/fail) |
For rapid checks when a full audit isn't needed:
Sources: Impeccable audit and critique skills (Bakaus, 2025); WCAG 2.2 AA; Nielsen Norman Group heuristic evaluation framework.
data-ai
Use when adding AI-powered analytics to a SaaS platform — semantic search over business data, natural language queries, trend detection, anomaly alerts, and AI-generated insights for dashboards. Covers embeddings, NL2SQL, and per-tenant analytics...
data-ai
Design AI-powered analytics dashboards — what metrics to show, how to display AI predictions and confidence, drill-down patterns, KPI cards, trend visualisation, AI Insights panels, export design, and role-based dashboard variants. Invoke when...
development
Use when designing, building, reviewing, or upgrading production software systems that must be secure, performant, maintainable, scalable, and user-centered. Apply before writing specs, code, architecture, APIs, databases, mobile apps, SaaS platforms, or ERP systems.
development
Professional web app UI using commercial templates (Tabler/Bootstrap 5) with strong frontend design direction when needed. Use for CRUD interfaces, dashboards, admin panels with SweetAlert2, DataTables, Flatpickr. Clone seeder-page.php, use...