Skip to content
Back to skills

Design Frontend

ASecurity

Create a new production-grade UI from scratch, not a polish pass. Use when "build this UI", "design this page", or "new dashboard layout". Polish → enhance-web-ui. Landing → enhance-web-landing. Redesign → enhance-web-redesign.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
ai-agentsgobashfrontend

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add kensaurus/cursor-kenji --skill design-frontend --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Frontend?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Frontend
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kensaurus-design-frontend/badge)](https://www.skillsdirectory.com/skills/kensaurus-design-frontend)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design-frontend
description: >
  Create a new production-grade UI from scratch, not a polish pass. Use when
  "build this UI", "design this page", or "new dashboard layout". Polish →
  enhance-web-ui. Landing → enhance-web-landing. Redesign →
  enhance-web-redesign.
license: MIT
---

# Frontend 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

1. **Discover** — tokens, `components/ui`, forbidden patterns
2. **Reuse** — extend existing components; do not fork a second Button
3. **Compose** — new surface on those tokens
4. **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.css` tokens; `text-xs` min; `rounded-sm`.
> **Reuse:** settings rows use existing `Button` / `Input`; no new primitive.
> **Compose:** new `/settings` page — token spacing, `text-sm` body, 44px save.
> **Check:** Anti-Generic list clear (no Inter, purple-on-white, or pill buttons); `prefers-reduced-motion` on 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
```bash
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…