Design Standards
Production design standards for any web project. Stack-agnostic. Tool-agnostic. Covers tokens, contrast, hierarchy, spacing, mobile rules, and the pre-ship checklist.
This skill complements brand-identity (which defines the visual system) and brand-style-guide (which documents it). This skill is for the day-to-day work of applying those standards in real components and pages.
When to use
- Building a new page, section, or component
- Reviewing UI for quality, accessibility, or consistency
- Setting up design tokens for a new project
- Fixing layout, contrast, or hierarchy issues
- Establishing a button or form standard
- Pre-ship design review
When NOT to use
- Defining a brand identity from scratch (use
brand-identity)
- Documenting a finished brand system (use
brand-style-guide)
- Building a formal component library (use
design-system)
- Frontend code architecture (use
frontend-component-build)
- Accessibility-only audits with WCAG remediation (use
accessibility-audit)
Required inputs
- The page or component being built or reviewed
- The brand's design tokens (colors, type, spacing) - or willingness to define them
- The target devices and viewports
If brand tokens are undefined, define a working set first using the template in references/design-tokens-template.md.
The framework: 6 standards
Six standards apply to every piece of UI. Hold the line on these and most design problems disappear.
1. Design tokens
Every project needs tokens defined before any UI gets built. Tokens are the source of truth.
Color tokens (minimum):
- Primary brand color
- Primary hover (typically 15 to 25 percent darker)
- Background variants (surface, alt-section, hero/dark, footer)
- Text scale (heading, body, muted, on-dark)
- Semantic (success, warning, error, info)
Spacing tokens:
- A consistent scale (e.g., 4, 8, 12, 16, 24, 32, 48, 64, 96)
- Page max-width
- Section vertical padding (large, medium, small)
- Card padding
- Grid gaps
Type tokens:
- Display, H1 through H4, body large, body, small, caption
- Each with size, weight, line height, letter spacing
- Font fallback stacks
Radius tokens:
- Tight (cards, badges)
- Standard (buttons, inputs)
- Round (avatars, pill buttons)
Document the tokens once. Reference them everywhere. Hardcoded values are technical debt.
2. WCAG AA contrast (non-negotiable)
Contrast is not a preference. It is a baseline. A design that fails AA is broken, regardless of how it looks to designers with full vision.
| Element |
Required ratio |
| Normal body text |
4.5:1 |
| Large text (18pt regular or 14pt bold) |
3:1 |
| UI components and graphical elements |
3:1 |
Common failures to avoid:
- Light gray body text on white that calculates to 2 to 4:1
- Brand color used for body text without a darker variant
- Light borders on form fields that compute under 3:1
- Bright orange or yellow on white at small sizes
For the math, the contrast checker, and brand-color strategies, see brand-identity/references/contrast-and-accessibility.md.
3. Visual hierarchy
A well-designed page has a clear scan order. Hierarchy comes from:
- Size. The largest element gets noticed first.
- Weight. Bold beats regular at the same size.
- Color. Saturated beats neutral. High-contrast beats low.
- Spacing. What sits alone gets emphasis. What gets crowded recedes.
- Position. Top-left and center get weight. Edges and corners recede.
Apply hierarchy intentionally. Every visual element should be reachable through the hierarchy. If three things compete for primary attention, none of them wins.
Common failures:
- Multiple elements styled as the "primary" CTA (creates ambiguity)
- Body text and headlines too close in size
- Hero image fighting the hero text for attention
- Icon, headline, and image at similar visual weight
4. Spacing and rhythm
Spacing is what separates a polished layout from a cluttered one.
Rules:
- Use the spacing scale, not arbitrary values
- Related elements sit closer together than unrelated ones (proximity principle)
- Section breathing room: minimum 64px desktop, 48px mobile
- Card padding: minimum 24px desktop, 16px mobile
- Form field spacing: minimum 16px between fields
- Touch targets: minimum 44 by 44 pixels
Common failures:
- Inconsistent spacing within similar contexts (one card has 24px padding, the next has 32px)
- Cramped sections that bleed into each other
- Touch targets under 44 pixels on mobile
- Headline butted directly against subheadline with no rhythm
5. Mobile rules
Most users are on mobile. Designing for desktop first guarantees mobile failures.
Standards:
- Test on a 375 to 390 pixel viewport before declaring complete
- All interactive elements minimum 44 by 44 pixels
- Sticky bottom bars: page wrapper needs bottom padding equal to bar height
- No fixed pixel widths without max-width constraint
- Text never smaller than 14 pixels for body content
- Tap targets get 8 pixels of spacing minimum on all sides
- Modal and popover content scrolls; body locks
- Form inputs: at least 16px text size to prevent iOS auto-zoom
Common failures:
- Designs that work in browser dev tools but break on real devices
- Sticky navigation eating 80px of viewport without compensation
- Horizontal scroll appearing because of one over-wide element
- Tap targets that are visually fine but impossibly close to other tap targets
6. Component consistency
The same thing should look the same everywhere. Variations should be intentional.
Common consistency principles:
- Buttons: one primary style, one secondary style, one ghost style. Not five.
- Cards: one base card pattern with variants. Not bespoke cards per page.
- Icons: one stroke weight, one corner style across the icon set
- Avatars and brand marks: one shape rule (rounded-lg or fully round, pick one and stick to it)
- Form inputs: one set of input states (default, focus, error, disabled) used everywhere
Common failures:
- Three different "primary buttons" used inconsistently across pages
- Some cards with rounded-2xl corners, others with rounded-xl
- Iconography style drifting between sections
- Brand avatar that switches between square and round depending on the page
Workflow
- Confirm tokens. If tokens are not yet defined, define a working set first. Document them.
- Sketch hierarchy. Before writing markup, identify the primary action, secondary actions, and supporting content. Confirm the scan order makes sense.
- Build mobile-first. Lay out for the smallest target viewport before scaling up.
- Apply tokens. All values come from the token set. No hardcoded colors, sizes, or spacing.
- Run contrast checks. Every text-on-background combination passes AA. Every UI element passes 3:1.
- Test at viewport breakpoints. 375, 768, 1024, 1440 minimum. Confirm nothing breaks.
- Run the pre-ship checklist in
references/preship-checklist.md.
Failure patterns
- Designing without tokens. Hardcoded colors and spacing. Hard to maintain. Inconsistent at scale.
- Skipping contrast checks. Especially on brand colors used for text. Most brand colors fail AA.
- Designing only for desktop. Mobile reveals every layout sin. Test mobile first or last, but always.
- Rounded-everything. Treating "modern" as "rounded all the things." Rounded corners are a tool, not a default.
- Visual hierarchy mush. Three things competing as primary. Reader does not know where to look.
- Touch target violations. Visually nice 32px buttons that fail finger ergonomics on real devices.
- Component drift. Each page rebuilds the card or button from scratch. Design system erodes.
Output format
This skill produces design decisions and review notes more than artifacts. Outputs include:
- Design tokens file (when starting a project):
design-tokens.md or equivalent
- Component or page review: markdown notes scored against the 6 standards, with specific fixes
- Pre-ship checklist results: pass/fail across the checklist with notes
When generating component code (HTML, CSS, framework-specific markup), the SKILL.md remains stack-agnostic. Stack-specific patterns live in reference files.
Reference files
references/design-tokens-template.md - Template for setting up tokens for any project.
references/preship-checklist.md - Final design review checklist before shipping.
references/tailwind-patterns.md - Optional. Tailwind-specific component patterns (hero, cards, buttons, data rows) for projects on that stack.
1---2name: design-standards3description: Apply production-grade design standards when building or reviewing pages, components, or UI. Use this skill whenever the user asks to build a page, design a component, lay out a section, review the UI, fix the layout, or check design quality. Triggers on build a page, create a component, design a section, hero, card, CTA, layout, review the UI, fix the design, design system, design tokens, spacing, typography scale, button standards, mobile design. Also triggers for any production design decision where contrast, accessibility, spacing, or visual hierarchy matters.4---5
6# Design Standards
7
8Production design standards for any web project. Stack-agnostic. Tool-agnostic. Covers tokens, contrast, hierarchy, spacing, mobile rules, and the pre-ship checklist.
9
10This skill complements `brand-identity` (which defines the visual system) and `brand-style-guide` (which documents it). This skill is for the day-to-day work of applying those standards in real components and pages.
11
12---
13
14## When to use
15
16- Building a new page, section, or component
17- Reviewing UI for quality, accessibility, or consistency
18- Setting up design tokens for a new project
19- Fixing layout, contrast, or hierarchy issues
20- Establishing a button or form standard
21- Pre-ship design review
22
23## When NOT to use
24
25- Defining a brand identity from scratch (use `brand-identity`)
26- Documenting a finished brand system (use `brand-style-guide`)
27- Building a formal component library (use `design-system`)
28- Frontend code architecture (use `frontend-component-build`)
29- Accessibility-only audits with WCAG remediation (use `accessibility-audit`)
30
31---
32
33## Required inputs
34
35- The page or component being built or reviewed
36- The brand's design tokens (colors, type, spacing) - or willingness to define them
37- The target devices and viewports
38
39If brand tokens are undefined, define a working set first using the template in [`references/design-tokens-template.md`](references/design-tokens-template.md).
40
41---
42
43## The framework: 6 standards
44
45Six standards apply to every piece of UI. Hold the line on these and most design problems disappear.
46
47### 1. Design tokens
48
49Every project needs tokens defined before any UI gets built. Tokens are the source of truth.
50
51**Color tokens** (minimum):
52- Primary brand color
53- Primary hover (typically 15 to 25 percent darker)
54- Background variants (surface, alt-section, hero/dark, footer)
55- Text scale (heading, body, muted, on-dark)
56- Semantic (success, warning, error, info)
57
58**Spacing tokens:**
59- A consistent scale (e.g., 4, 8, 12, 16, 24, 32, 48, 64, 96)
60- Page max-width
61- Section vertical padding (large, medium, small)
62- Card padding
63- Grid gaps
64
65**Type tokens:**
66- Display, H1 through H4, body large, body, small, caption
67- Each with size, weight, line height, letter spacing
68- Font fallback stacks
69
70**Radius tokens:**
71- Tight (cards, badges)
72- Standard (buttons, inputs)
73- Round (avatars, pill buttons)
74
75Document the tokens once. Reference them everywhere. Hardcoded values are technical debt.
76
77### 2. WCAG AA contrast (non-negotiable)
78
79Contrast is not a preference. It is a baseline. A design that fails AA is broken, regardless of how it looks to designers with full vision.
80
81| Element | Required ratio |
82|---|---|
83| Normal body text | 4.5:1 |
84| Large text (18pt regular or 14pt bold) | 3:1 |
85| UI components and graphical elements | 3:1 |
86
87Common failures to avoid:
88- Light gray body text on white that calculates to 2 to 4:1
89- Brand color used for body text without a darker variant
90- Light borders on form fields that compute under 3:1
91- Bright orange or yellow on white at small sizes
92
93For the math, the contrast checker, and brand-color strategies, see `brand-identity/references/contrast-and-accessibility.md`.
94
95### 3. Visual hierarchy
96
97A well-designed page has a clear scan order. Hierarchy comes from:
98
99- **Size.** The largest element gets noticed first.
100- **Weight.** Bold beats regular at the same size.
101- **Color.** Saturated beats neutral. High-contrast beats low.
102- **Spacing.** What sits alone gets emphasis. What gets crowded recedes.
103- **Position.** Top-left and center get weight. Edges and corners recede.
104
105Apply hierarchy intentionally. Every visual element should be reachable through the hierarchy. If three things compete for primary attention, none of them wins.
106
107**Common failures:**
108- Multiple elements styled as the "primary" CTA (creates ambiguity)
109- Body text and headlines too close in size
110- Hero image fighting the hero text for attention
111- Icon, headline, and image at similar visual weight
112
113### 4. Spacing and rhythm
114
115Spacing is what separates a polished layout from a cluttered one.
116
117**Rules:**
118- Use the spacing scale, not arbitrary values
119- Related elements sit closer together than unrelated ones (proximity principle)
120- Section breathing room: minimum 64px desktop, 48px mobile
121- Card padding: minimum 24px desktop, 16px mobile
122- Form field spacing: minimum 16px between fields
123- Touch targets: minimum 44 by 44 pixels
124
125**Common failures:**
126- Inconsistent spacing within similar contexts (one card has 24px padding, the next has 32px)
127- Cramped sections that bleed into each other
128- Touch targets under 44 pixels on mobile
129- Headline butted directly against subheadline with no rhythm
130
131### 5. Mobile rules
132
133Most users are on mobile. Designing for desktop first guarantees mobile failures.
134
135**Standards:**
136- Test on a 375 to 390 pixel viewport before declaring complete
137- All interactive elements minimum 44 by 44 pixels
138- Sticky bottom bars: page wrapper needs bottom padding equal to bar height
139- No fixed pixel widths without max-width constraint
140- Text never smaller than 14 pixels for body content
141- Tap targets get 8 pixels of spacing minimum on all sides
142- Modal and popover content scrolls; body locks
143- Form inputs: at least 16px text size to prevent iOS auto-zoom
144
145**Common failures:**
146- Designs that work in browser dev tools but break on real devices
147- Sticky navigation eating 80px of viewport without compensation
148- Horizontal scroll appearing because of one over-wide element
149- Tap targets that are visually fine but impossibly close to other tap targets
150
151### 6. Component consistency
152
153The same thing should look the same everywhere. Variations should be intentional.
154
155**Common consistency principles:**
156- Buttons: one primary style, one secondary style, one ghost style. Not five.
157- Cards: one base card pattern with variants. Not bespoke cards per page.
158- Icons: one stroke weight, one corner style across the icon set
159- Avatars and brand marks: one shape rule (rounded-lg or fully round, pick one and stick to it)
160- Form inputs: one set of input states (default, focus, error, disabled) used everywhere
161
162**Common failures:**
163- Three different "primary buttons" used inconsistently across pages
164- Some cards with rounded-2xl corners, others with rounded-xl
165- Iconography style drifting between sections
166- Brand avatar that switches between square and round depending on the page
167
168---
169
170## Workflow
171
1721. **Confirm tokens.** If tokens are not yet defined, define a working set first. Document them.
1732. **Sketch hierarchy.** Before writing markup, identify the primary action, secondary actions, and supporting content. Confirm the scan order makes sense.
1743. **Build mobile-first.** Lay out for the smallest target viewport before scaling up.
1754. **Apply tokens.** All values come from the token set. No hardcoded colors, sizes, or spacing.
1765. **Run contrast checks.** Every text-on-background combination passes AA. Every UI element passes 3:1.
1776. **Test at viewport breakpoints.** 375, 768, 1024, 1440 minimum. Confirm nothing breaks.
1787. **Run the pre-ship checklist** in [`references/preship-checklist.md`](references/preship-checklist.md).
179
180---
181
182## Failure patterns
183
184- **Designing without tokens.** Hardcoded colors and spacing. Hard to maintain. Inconsistent at scale.
185- **Skipping contrast checks.** Especially on brand colors used for text. Most brand colors fail AA.
186- **Designing only for desktop.** Mobile reveals every layout sin. Test mobile first or last, but always.
187- **Rounded-everything.** Treating "modern" as "rounded all the things." Rounded corners are a tool, not a default.
188- **Visual hierarchy mush.** Three things competing as primary. Reader does not know where to look.
189- **Touch target violations.** Visually nice 32px buttons that fail finger ergonomics on real devices.
190- **Component drift.** Each page rebuilds the card or button from scratch. Design system erodes.
191
192---
193
194## Output format
195
196This skill produces design decisions and review notes more than artifacts. Outputs include:
197
198- **Design tokens file** (when starting a project): `design-tokens.md` or equivalent
199- **Component or page review**: markdown notes scored against the 6 standards, with specific fixes
200- **Pre-ship checklist results**: pass/fail across the checklist with notes
201
202When generating component code (HTML, CSS, framework-specific markup), the SKILL.md remains stack-agnostic. Stack-specific patterns live in reference files.
203
204---
205
206## Reference files
207
208- [`references/design-tokens-template.md`](references/design-tokens-template.md) - Template for setting up tokens for any project.
209- [`references/preship-checklist.md`](references/preship-checklist.md) - Final design review checklist before shipping.
210- [`references/tailwind-patterns.md`](references/tailwind-patterns.md) - Optional. Tailwind-specific component patterns (hero, cards, buttons, data rows) for projects on that stack.