kensaurus/cursor-kenji/audit-uiux-design-system
Claude Code and agent skill by kensaurus/cursor-kenji
- community
Checking that the SKILL.md file is still in the repository.
Audit visual-system coherence: tokens, component variants, color, type, spacing, dark mode. Use for "design drift", inconsistent UI, or duplicate primitives. Per-page usability → audit-ux. Plan-only unification → plan-uiux-unification.
Install
npx vskill@latest install kensaurus/cursor-kenji/audit-uiux-design-systemSKILL.md
UI Design System Audit Skill
Degree of freedom: MIXED — Steps 0–3, 5–6 [HIGH freedom]; Step 4 playwright captures [LOW freedom — run exactly]. Read protocol-browser-anti-stall before any browser step. Breakpoints-only → audit-responsive.
This skill vs neighbors
| Skill | Owns | |
|---|---|---|
| audit-uiux-design-system (this) | Visual-system coherence: tokens, variants, color, type, spacing, dark mode | |
audit-ux | Per-page UX audit with NN/g heuristics, microcopy, Google HEART | |
plan-uiux-unification | Plan-only UI/UX and design-system audit emitting a unification burndown |
How to reason
- Observe — quote the token file, raw hex, or screenshot
- Interpret — is this the system token, a one-off, or an AI-tell?
- Classify — token leak / duplicate component / missing state / template / correct
- Severity — raw color on a core primitive = P0; missing hover = P1; radius nit = P2
Worked example
Observe:Button.tsxusesbg-[#3B82F6];--primaryexists inglobals.css.Interpret: the primitive bypasses the token SSOT; dark mode cannot switch it.Classify: token leak on a core primitive.Severity: P0 — every button is a hardcoded hex.Finding:Button.tsx| color token | P0 | replace withbg-primary.
Self-critique before reporting [LOW freedom — do not skip]
- Tokens first — do not invent a second scale
- Evidenced — screenshot under
.playwright-mcp/or quoted class - Severity justified — P0 = core primitive off-token or unusable contrast
- Right owner — linearized desktop →
audit-responsive; WCAG keyboard →audit-accessibility - Hand-crafted — no recommendation that increases template sameness
Anti-template
Recommendations must name what to avoid, not ask for taste. Research award-winning sites in the domain; vary rhythm (not identical py-16); give each control a distinct hover/focus/active/disabled; define personality tokens (radius, type voice). Defaults to call out — extend this list from whatever the first draft reached for: identical section padding, generic or purple gradients, three equal cards / 3-col icon-title-desc as the default, cream or off-white page backgrounds, italic accent words in headlines, "01/02/03" numbered section labels, monospace labels, pill-shaped buttons everywhere, Inter/Roboto as the only type voice, lorem empty states, uniform radius, unadapted stock art.
Step 0: Auto-Detect Design System
0a. Detect CSS Framework
| Signal | Technology | |
|---|---|---|
tailwindcss v3 + tailwind.config.* | Tailwind CSS v3 | |
tailwindcss v4 + @theme in CSS | Tailwind CSS v4 | |
*.module.css files | CSS Modules | |
styled-components or @emotion/styled | CSS-in-JS | |
@chakra-ui/react | Chakra UI | |
@mui/material | Material UI | |
@mantine/core | Mantine |
0b. Detect Component Library
0c. Find Design Tokens
Read token source to extract: colors, spacing, typography, radii, shadows.
0d. Discover Forbidden Patterns
0e. Record Discovery
Step 1: Research Design System Best Practices
1a. Context7 — Component Library Docs
Then fetch docs with the resolved ID. Also fetch CSS framework docs.
1b. Firecrawl — Design System Standards
Additional queries:
| Topic | Query | |
|---|---|---|
| Token compliance | design token audit <CSS_FRAMEWORK> consistency | |
| Component patterns | <FRAMEWORK> component modularity composition patterns | |
| Dark mode | <CSS_FRAMEWORK> dark mode implementation best practices |
1c. Firecrawl — Award-Winning Reference Sites
Scrape 2–3 standout sites for grid breaks, signature motion, type voice, and accent logic.
Step 2: Token Compliance Audit
2a. Color Tokens
| Rule | Standard | How to Check | |
|---|---|---|---|
| Semantic naming | primary, secondary, destructive, muted, accent | No raw hex/rgb in components | |
| CSS variables | hsl(var(--primary)) or oklch() | All colors reference variables | |
| Foreground pairs | Every bg color has *-foreground | Text contrast maintained | |
| Dark mode | All tokens have dark variant | .dark class or @media | |
| Status colors | success, warning, error, info defined | Consistent across alerts, badges, toasts |
Find violations:
2b. Typography Tokens
| Rule | Standard | |
|---|---|---|
| Font families | Max 2-3 families in theme | |
| Size scale | Consistent (text-sm, text-base, text-lg) | |
| Weight scale | Limited set (font-normal, font-medium, font-semibold, font-bold) | |
| Heading hierarchy | h1 > h2 > h3 in visual weight AND DOM order | |
| No arbitrary sizes | No text-[14px] when text-sm exists |
2c. Spacing Tokens
| Rule | Standard | |
|---|---|---|
| Base unit | 4px grid (Tailwind default) | |
| Consistent gaps | Same spacing for same contexts | |
| No arbitrary values | No p-[13px] when p-3 exists |
2d. Borders, Radii, Shadows
Step 3: Component Modularity Audit
3a. Component Health
| Rule | Standard | |
|---|---|---|
| Single responsibility | One component = one purpose | |
| Composable | Small pieces compose into larger ones | |
| Reusable | Same UI = same component everywhere | |
| Consistent props | variant, size, disabled, className across all | |
| Variants pattern | cva() or similar for style variants |
3b. Find Duplicate Components
Exclude components/ui/* — those are legitimate primitives.
3c. Check Component Consistency
3d. Mixed Icon Libraries
Step 4: Live Visual Verification (playwright-cli)
4a. Navigate and Capture
4b. Per-Page Checks
| Check | How | |
|---|---|---|
| Token compliance | Screenshot — inconsistent colors, spacing | |
| Component reuse | Snapshot — shared primitives used? | |
| Console errors | console — hydration, missing CSS vars | |
| Layout shift | Snapshot before/after interaction | |
| Dark mode | Toggle dark mode, re-screenshot, compare |
4c. Responsive Check
Test at three viewports:
- Desktop (1440px)
- Tablet (768px)
- Mobile (375px)
4d. Visual Accessibility
| Check | How | |||||
|---|---|---|---|---|---|---|
| Color contrast | 4.5:1 text, 3:1 large text/UI — compute from the token pair values (one-line script or the DevTools accessibility pane); the screenshot confirms which pair is in use, it does not measure the ratio | |||||
| Focus rings | Tab through elements, verify visible focus indicator | |||||
| Semantic HTML | `Grep: "<nav> | <main> | <section> | <article> | <aside>" glob "*.tsx"` | |
| Alt text | `Grep: "<(img | Image)" glob "*.tsx" then check for alt=` |
Step 5: Microinteractions and User Feedback
5a. Microinteraction Coverage Audit
Check each interactive:
| Element | Expected Feedback | AI-Tell if Missing | |
|---|---|---|---|
| Buttons | Hover: color shift + subtle shadow change. Active: scale(0.98) press. Loading: spinner replaces label or inline indicator | Flat, no state change — feels dead | |
| Links | Hover: underline animation or color transition, not instant swap | Instant color jump with no transition | |
| Cards (clickable) | Hover: lift (translateY + shadow increase). Not just color change | Color change only, or no hover at all | |
| Inputs | Focus: ring animation or border color transition. Not just outline swap | Browser default outline, no custom focus | |
| Toggles/switches | State transition animated, not instant. Haptic feel via easing | Instant snap between states | |
| Dropdowns/menus | Open/close with slide or fade, not instant appear/disappear | Instant pop, no transition | |
| Toasts/notifications | Enter with slide + fade, exit with fade. Auto-dismiss with progress | Instant appear/disappear | |
| Modals/dialogs | Backdrop fade + content scale/slide. Exit reverses. Not instant | Instant appear, jarring | |
| Tabs | Active indicator slides to new tab, not instant jump | Instant color swap | |
| Tooltips | Slight delay (200-300ms), fade in. Don't flicker on mouse movement | Instant, flickers, no delay |
Find in code:
5b. Interaction State Completeness
Verify ALL states exist per interactive:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/audit-uiux-design-system/SKILL.md
Popularity
- Repository stars
- 9
- 7-day trend score
- 12
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kensaurus/cursor-kenji/audit-uiux-design-system)