Design Brief
Generate a unified style brief that constrains upcoming UI work using all active layers. Run this before writing any UI code.
Setup
Ensure the design-quality engine is loaded — it handles layer/preset/config resolution (Step 1: Load Project Config).
Arguments
If an argument is provided (e.g., /design:brief premium-depth), use that preset instead of the project default. Layer configuration still comes from the project's CLAUDE.md.
Execution
Generate a unified brief with sections from each active layer:
From Craft Layer — if active
- Measure — Maximum line length for body text, recommended Tailwind classes
- Vertical Rhythm — Base unit derived from body line-height, spacing multiples
- Modular Scale — Recommended type scale ratio and concrete sizes for this project
- Weight Palette — Which 2-3 font weights to use and their roles
- Restraint Rules — Max typefaces, earn-each-variation principle
From Aesthetic Layer (preset) — if active
- Typography — Allowed fonts, weight hierarchy, tracking, line-height
- Color — Palette boundaries, semantic token usage, accent rules
- Spacing — Grid system, component padding, section spacing
- Elevation — Shadow hierarchy, border usage rules
- Motion — Animation approach, timing, easing
- Component Patterns — Card, button, navigation, form treatments
- Do/Don't — Code examples from the preset
From A11y Layer — if active
- Touch Targets — Minimum sizes, recommended classes
- Contrast — WCAG AA ratios, how to verify
- Focus — Required focus indicator pattern
- ARIA — Common patterns needed for the planned components
- Reduced Motion — How to handle animations
- States — Required component states (loading, empty, error, disabled)
Output
## Style Brief
**Active Layers:** [craft, aesthetic, a11y]
**Aesthetic:** [preset name or design-system]
**Strictness:** [relaxed / standard / strict]
---
### Craft Constraints
**Measure:** Body text max 65-75ch. Use `max-w-prose` or `max-w-2xl`.
**Rhythm Base:** [X]px (from body line-height [size]px × [ratio]).
Spacing multiples: [X/2], [X], [2X], [3X] → Tailwind: [classes]
**Type Scale:** [ratio name] ([ratio]) → [concrete sizes]
**Weight Palette:** [weight1] (headings), [weight2] (emphasis), [weight3] (body)
**Restraint:** Max 2 font families. Max 3 weights per component.
---
### Aesthetic Rules ([preset name])
#### Typography
[Specific rules from preset]
#### Color
[Specific rules from preset]
#### Spacing
[Specific rules from preset]
#### Elevation
[Specific rules from preset]
#### Motion
[Specific rules from preset]
#### Component Patterns
[Specific rules from preset]
#### Do / Don't
[Code examples from preset]
---
### A11y Requirements
**Touch Targets:** `min-h-11` (44px) on all interactive elements.
**Contrast:** 4.5:1 normal text, 3:1 large text (18px+ or 14px bold+).
**Focus:** `focus:outline-none focus-visible:ring-2 focus-visible:ring-ring` on all interactive elements.
**ARIA Patterns:**
- Icon-only buttons → `aria-label="[action]"`
- Dynamic content → `aria-live="polite"`
- Lists → `role="list"` when styled
**Reduced Motion:** Use `motion-safe:` prefix on animations.
**Required States:** loading, empty, error for data-dependent components.
After generating, ask if the user wants to proceed with coding or adjust any constraints.
Layer-Specific Notes
- If only craft is active (no aesthetic), the brief focuses on craft fundamentals without preset-specific rules. Generic best practices replace preset sections.
- If only a11y is active (no craft), skip the craft constraints section.
- If aesthetic is
none, skip the aesthetic section entirely. Craft and a11y constraints still apply.
- If aesthetic is
design-system, analyze the project's design system tokens and generate the aesthetic section from those instead of a preset file.
1---2name: design-brief3description: Generate a unified style brief from all active design layers before coding UI. Outputs craft constraints, aesthetic rules, and a11y requirements.4---56# Design Brief78Generate a unified style brief that constrains upcoming UI work using **all active layers**. Run this before writing any UI code.910## Setup1112Ensure the [design-quality engine](../design-quality/SKILL.md) is loaded — it handles layer/preset/config resolution (Step 1: Load Project Config).1314## Arguments1516If an argument is provided (e.g., `/design:brief premium-depth`), use that preset instead of the project default. Layer configuration still comes from the project's `CLAUDE.md`.1718## Execution1920Generate a unified brief with sections from **each active layer**:2122### From Craft Layer — if active23241. **Measure** — Maximum line length for body text, recommended Tailwind classes252. **Vertical Rhythm** — Base unit derived from body line-height, spacing multiples263. **Modular Scale** — Recommended type scale ratio and concrete sizes for this project274. **Weight Palette** — Which 2-3 font weights to use and their roles285. **Restraint Rules** — Max typefaces, earn-each-variation principle2930### From Aesthetic Layer (preset) — if active31321. **Typography** — Allowed fonts, weight hierarchy, tracking, line-height332. **Color** — Palette boundaries, semantic token usage, accent rules343. **Spacing** — Grid system, component padding, section spacing354. **Elevation** — Shadow hierarchy, border usage rules365. **Motion** — Animation approach, timing, easing376. **Component Patterns** — Card, button, navigation, form treatments387. **Do/Don't** — Code examples from the preset3940### From A11y Layer — if active41421. **Touch Targets** — Minimum sizes, recommended classes432. **Contrast** — WCAG AA ratios, how to verify443. **Focus** — Required focus indicator pattern454. **ARIA** — Common patterns needed for the planned components465. **Reduced Motion** — How to handle animations476. **States** — Required component states (loading, empty, error, disabled)4849## Output5051```markdown52## Style Brief53**Active Layers:** [craft, aesthetic, a11y]54**Aesthetic:** [preset name or design-system]55**Strictness:** [relaxed / standard / strict]5657---5859### Craft Constraints6061**Measure:** Body text max 65-75ch. Use `max-w-prose` or `max-w-2xl`.62**Rhythm Base:** [X]px (from body line-height [size]px × [ratio]).63 Spacing multiples: [X/2], [X], [2X], [3X] → Tailwind: [classes]64**Type Scale:** [ratio name] ([ratio]) → [concrete sizes]65**Weight Palette:** [weight1] (headings), [weight2] (emphasis), [weight3] (body)66**Restraint:** Max 2 font families. Max 3 weights per component.6768---6970### Aesthetic Rules ([preset name])7172#### Typography73[Specific rules from preset]7475#### Color76[Specific rules from preset]7778#### Spacing79[Specific rules from preset]8081#### Elevation82[Specific rules from preset]8384#### Motion85[Specific rules from preset]8687#### Component Patterns88[Specific rules from preset]8990#### Do / Don't91[Code examples from preset]9293---9495### A11y Requirements9697**Touch Targets:** `min-h-11` (44px) on all interactive elements.98**Contrast:** 4.5:1 normal text, 3:1 large text (18px+ or 14px bold+).99**Focus:** `focus:outline-none focus-visible:ring-2 focus-visible:ring-ring` on all interactive elements.100**ARIA Patterns:**101- Icon-only buttons → `aria-label="[action]"`102- Dynamic content → `aria-live="polite"`103- Lists → `role="list"` when styled104**Reduced Motion:** Use `motion-safe:` prefix on animations.105**Required States:** loading, empty, error for data-dependent components.106```107108After generating, ask if the user wants to proceed with coding or adjust any constraints.109110## Layer-Specific Notes111112- If **only craft** is active (no aesthetic), the brief focuses on craft fundamentals without preset-specific rules. Generic best practices replace preset sections.113- If **only a11y** is active (no craft), skip the craft constraints section.114- If **aesthetic is `none`**, skip the aesthetic section entirely. Craft and a11y constraints still apply.115- If **aesthetic is `design-system`**, analyze the project's design system tokens and generate the aesthetic section from those instead of a preset file.