About design-frontend
design-frontend is a skill for frontend developers that guides design-system discovery and reuse before building interfaces. It also provides accessibility and visual-quality checks.
Key features
- 01Find design tokens and forbidden patterns
- 02Extend existing components first
- 03Follow typography and touch-target requirements
- 04Check keyboard focus and reduced motion
- 05Avoid common generic visual styles
Use cases
- 01Build interfaces on an existing design system
- 02Improve frontend components without duplication
- 03Review interface accessibility and visual consistency
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ kensaurus/ skills --skill design-frontendAfter installing, type/design-frontendin Claude Code to confirm it loaded.
Details
From the project READMEFrontend Design Skill
Degree of freedom: MIXED. Visual composition [HIGH freedom]; design-system
discovery [LOW freedom — run exactly].
Discover design systems, respect existing patterns, create beautiful interfaces.
How to reason
- Discover — tokens,
components/ui, forbidden patterns - Reuse — extend existing components; do not fork a second Button
- Compose — new surface on those tokens
- Check — type mins, 44px targets, reduced-motion, none of the named defaults in the Anti-Generic list
Worked example
Discover:
components/ui/button.tsx+globals.csstokens;text-xsmin;rounded-sm. Reuse: settings rows use existingButton/Input; no new primitive. Compose: new/settingspage — token spacing,text-smbody, 44px save. Check: Anti-Generic list clear (no Inter, purple-on-white, or pill buttons);prefers-reduced-motionon any spinner.
Self-critique before reporting
- Discovery stated — token file, radius, and forbidden list were spoken before JSX
- Reuse first — no duplicate primitive next to
components/ui - Mins held — readable type ≥
text-xs; tap targets ≥44px - Right owner — polish existing →
enhance-web-ui; landing →enhance-web-landing; redesign existing →enhance-web-redesign
Phase 1: Design System Discovery [LOW freedom — run exactly]
Before writing ANY frontend code:
1.1 Find Design System Files
Glob: **/*design-system*.{md,ts,css}
Glob: **/tokens*.{ts,json}
Glob: **/components/ui/**
Glob: **/_*README*
1.2 Extract & Document Tokens
| Category | Find | Examples |
|---|---|---|
| Typography | Sizes, weights | text-xs, font-medium |
| Spacing | Padding, gaps | p-4, gap-2 |
| Colors | Palette, semantic | bg-emerald-50 |
| Borders | Radius, styles | rounded-sm |
| Animations | Durations | duration-200 |
1.3 Find Forbidden Patterns
grep -r "NEVER\|FORBIDDEN\|❌" docs/ README*
1.4 Verification Statement (REQUIRED)
"Design System Discovery:
├─ Found: [design system path]
├─ Typography min: [e.g., text-xs]
├─ Radius standard: [e.g., rounded-sm]
├─ Forbidden: [list patterns]
└─ Reusing: [existing components]"
Phase 2: Implementation Standards [HIGH freedom]
Typography Minimums
| Context | Minimum | Usage |
|---|---|---|
| Body | text-sm (14px) | Primary content |
| Captions | text-xs (12px) | Labels, hints |
| Compact | text-[10px] | Dense dashboards only |
Never use text-[8px] or text-[9px] for readable content.
Accessibility Requirements
| Check | Requirement |
|---|---|
| Touch targets | ≥44×44px |
| Contrast | 4.5:1 text, 3:1 UI |
| Keyboard | tabIndex, focus styles |
| Motion | prefers-reduced-motion |
Quick Reference
Typography: text-xs=12px, text-sm=14px, text-base=16px
Spacing: 1=4px, 2=8px, 3=12px, 4=16px, 6=24px, 8=32px
Phase 3: Quality Checklist [LOW freedom — do not skip]
[ ] Uses design system tokens (no hardcoded values)
[ ] Extends existing components (no duplicates)
[ ] Typography ≥ text-xs for readable content
[ ] Touch targets ≥ 44px
[ ] Focus states visible
[ ] prefers-reduced-motion respected
Common Fixes
| Issue | Fix |
|---|---|
| Tiny text | text-[9px] → text-xs |
| Bold weights | font-bold → font-medium |
| Large radius | rounded-lg → rounded-sm |
| Spin animation | animate-spin → animate-pulse |
Anti-Generic Checklist
Undirected drafts land on the same few defaults; the check is concrete only when they are named:
- Inter / Roboto / Arial as the display or body face
- Purple (violet/indigo) gradient on white
- Cream / off-white page background
- Italic accent words inside headlines
- "01 / 02 / 03" numbered section labels
- Monospace eyebrow labels on a non-code product
- Pill-shaped (fully rounded) buttons as the house button
- Three equal cards in a row as the default section layout
Extend this list with whatever the first draft used instead.
Remember: The codebase's design system is the source of truth. Search before creating. Reuse before reinventing.