- Add CSS components: .page-meta badges, .domain-header, .install-banner - Fix invisible tab navigation (explicit color for light/dark modes) - Rewrite generate-docs.py with design system templates - Domain indexes: centered headers with icons, install banners, grid cards - Skill pages: pill badges (domain, skill ID, source), install commands - Agent/command pages: type badges with domain icons - Regenerate all 210 pages (180 skills + 15 agents + 15 commands) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
391 lines
11 KiB
Markdown
391 lines
11 KiB
Markdown
---
|
||
title: "UI Design System"
|
||
description: "UI Design System - Claude Code skill from the Product domain."
|
||
---
|
||
|
||
# UI Design System
|
||
|
||
<div class="page-meta" markdown>
|
||
<span class="meta-badge">:material-lightbulb-outline: Product</span>
|
||
<span class="meta-badge">:material-identifier: `ui-design-system`</span>
|
||
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/product-team/ui-design-system/SKILL.md">Source</a></span>
|
||
</div>
|
||
|
||
<div class="install-banner" markdown>
|
||
<span class="install-label">Install:</span> <code>claude /plugin install product-skills</code>
|
||
</div>
|
||
|
||
|
||
Generate design tokens, create color palettes, calculate typography scales, build component systems, and prepare developer handoff documentation.
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
- [Trigger Terms](#trigger-terms)
|
||
- [Workflows](#workflows)
|
||
- [Workflow 1: Generate Design Tokens](#workflow-1-generate-design-tokens)
|
||
- [Workflow 2: Create Component System](#workflow-2-create-component-system)
|
||
- [Workflow 3: Responsive Design](#workflow-3-responsive-design)
|
||
- [Workflow 4: Developer Handoff](#workflow-4-developer-handoff)
|
||
- [Tool Reference](#tool-reference)
|
||
- [Quick Reference Tables](#quick-reference-tables)
|
||
- [Knowledge Base](#knowledge-base)
|
||
|
||
---
|
||
|
||
## Trigger Terms
|
||
|
||
Use this skill when you need to:
|
||
|
||
- "generate design tokens"
|
||
- "create color palette"
|
||
- "build typography scale"
|
||
- "calculate spacing system"
|
||
- "create design system"
|
||
- "generate CSS variables"
|
||
- "export SCSS tokens"
|
||
- "set up component architecture"
|
||
- "document component library"
|
||
- "calculate responsive breakpoints"
|
||
- "prepare developer handoff"
|
||
- "convert brand color to palette"
|
||
- "check WCAG contrast"
|
||
- "build 8pt grid system"
|
||
|
||
---
|
||
|
||
## Workflows
|
||
|
||
### Workflow 1: Generate Design Tokens
|
||
|
||
**Situation:** You have a brand color and need a complete design token system.
|
||
|
||
**Steps:**
|
||
|
||
1. **Identify brand color and style**
|
||
- Brand primary color (hex format)
|
||
- Style preference: `modern` | `classic` | `playful`
|
||
|
||
2. **Generate tokens using script**
|
||
```bash
|
||
python scripts/design_token_generator.py "#0066CC" modern json
|
||
```
|
||
|
||
3. **Review generated categories**
|
||
- Colors: primary, secondary, neutral, semantic, surface
|
||
- Typography: fontFamily, fontSize, fontWeight, lineHeight
|
||
- Spacing: 8pt grid-based scale (0-64)
|
||
- Borders: radius, width
|
||
- Shadows: none through 2xl
|
||
- Animation: duration, easing
|
||
- Breakpoints: xs through 2xl
|
||
|
||
4. **Export in target format**
|
||
```bash
|
||
# CSS custom properties
|
||
python scripts/design_token_generator.py "#0066CC" modern css > design-tokens.css
|
||
|
||
# SCSS variables
|
||
python scripts/design_token_generator.py "#0066CC" modern scss > _design-tokens.scss
|
||
|
||
# JSON for Figma/tooling
|
||
python scripts/design_token_generator.py "#0066CC" modern json > design-tokens.json
|
||
```
|
||
|
||
5. **Validate accessibility**
|
||
- Check color contrast meets WCAG AA (4.5:1 normal, 3:1 large text)
|
||
- Verify semantic colors have contrast colors defined
|
||
|
||
---
|
||
|
||
### Workflow 2: Create Component System
|
||
|
||
**Situation:** You need to structure a component library using design tokens.
|
||
|
||
**Steps:**
|
||
|
||
1. **Define component hierarchy**
|
||
- Atoms: Button, Input, Icon, Label, Badge
|
||
- Molecules: FormField, SearchBar, Card, ListItem
|
||
- Organisms: Header, Footer, DataTable, Modal
|
||
- Templates: DashboardLayout, AuthLayout
|
||
|
||
2. **Map tokens to components**
|
||
|
||
| Component | Tokens Used |
|
||
|-----------|-------------|
|
||
| Button | colors, sizing, borders, shadows, typography |
|
||
| Input | colors, sizing, borders, spacing |
|
||
| Card | colors, borders, shadows, spacing |
|
||
| Modal | colors, shadows, spacing, z-index, animation |
|
||
|
||
3. **Define variant patterns**
|
||
|
||
Size variants:
|
||
```
|
||
sm: height 32px, paddingX 12px, fontSize 14px
|
||
md: height 40px, paddingX 16px, fontSize 16px
|
||
lg: height 48px, paddingX 20px, fontSize 18px
|
||
```
|
||
|
||
Color variants:
|
||
```
|
||
primary: background primary-500, text white
|
||
secondary: background neutral-100, text neutral-900
|
||
ghost: background transparent, text neutral-700
|
||
```
|
||
|
||
4. **Document component API**
|
||
- Props interface with types
|
||
- Variant options
|
||
- State handling (hover, active, focus, disabled)
|
||
- Accessibility requirements
|
||
|
||
5. **Reference:** See `references/component-architecture.md`
|
||
|
||
---
|
||
|
||
### Workflow 3: Responsive Design
|
||
|
||
**Situation:** You need breakpoints, fluid typography, or responsive spacing.
|
||
|
||
**Steps:**
|
||
|
||
1. **Define breakpoints**
|
||
|
||
| Name | Width | Target |
|
||
|------|-------|--------|
|
||
| xs | 0 | Small phones |
|
||
| sm | 480px | Large phones |
|
||
| md | 640px | Tablets |
|
||
| lg | 768px | Small laptops |
|
||
| xl | 1024px | Desktops |
|
||
| 2xl | 1280px | Large screens |
|
||
|
||
2. **Calculate fluid typography**
|
||
|
||
Formula: `clamp(min, preferred, max)`
|
||
|
||
```css
|
||
/* 16px to 24px between 320px and 1200px viewport */
|
||
font-size: clamp(1rem, 0.5rem + 2vw, 1.5rem);
|
||
```
|
||
|
||
Pre-calculated scales:
|
||
```css
|
||
--fluid-h1: clamp(2rem, 1rem + 3.6vw, 4rem);
|
||
--fluid-h2: clamp(1.75rem, 1rem + 2.3vw, 3rem);
|
||
--fluid-h3: clamp(1.5rem, 1rem + 1.4vw, 2.25rem);
|
||
--fluid-body: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
|
||
```
|
||
|
||
3. **Set up responsive spacing**
|
||
|
||
| Token | Mobile | Tablet | Desktop |
|
||
|-------|--------|--------|---------|
|
||
| --space-md | 12px | 16px | 16px |
|
||
| --space-lg | 16px | 24px | 32px |
|
||
| --space-xl | 24px | 32px | 48px |
|
||
| --space-section | 48px | 80px | 120px |
|
||
|
||
4. **Reference:** See `references/responsive-calculations.md`
|
||
|
||
---
|
||
|
||
### Workflow 4: Developer Handoff
|
||
|
||
**Situation:** You need to hand off design tokens to development team.
|
||
|
||
**Steps:**
|
||
|
||
1. **Export tokens in required formats**
|
||
```bash
|
||
# For CSS projects
|
||
python scripts/design_token_generator.py "#0066CC" modern css
|
||
|
||
# For SCSS projects
|
||
python scripts/design_token_generator.py "#0066CC" modern scss
|
||
|
||
# For JavaScript/TypeScript
|
||
python scripts/design_token_generator.py "#0066CC" modern json
|
||
```
|
||
|
||
2. **Prepare framework integration**
|
||
|
||
**React + CSS Variables:**
|
||
```tsx
|
||
import './design-tokens.css';
|
||
|
||
<button className="btn btn-primary">Click</button>
|
||
```
|
||
|
||
**Tailwind Config:**
|
||
```javascript
|
||
const tokens = require('./design-tokens.json');
|
||
|
||
module.exports = {
|
||
theme: {
|
||
colors: tokens.colors,
|
||
fontFamily: tokens.typography.fontFamily
|
||
}
|
||
};
|
||
```
|
||
|
||
**styled-components:**
|
||
```typescript
|
||
import tokens from './design-tokens.json';
|
||
|
||
const Button = styled.button`
|
||
background: ${tokens.colors.primary['500']};
|
||
padding: ${tokens.spacing['2']} ${tokens.spacing['4']};
|
||
`;
|
||
```
|
||
|
||
3. **Sync with Figma**
|
||
- Install Tokens Studio plugin
|
||
- Import design-tokens.json
|
||
- Tokens sync automatically with Figma styles
|
||
|
||
4. **Handoff checklist**
|
||
- [ ] Token files added to project
|
||
- [ ] Build pipeline configured
|
||
- [ ] Theme/CSS variables imported
|
||
- [ ] Component library aligned
|
||
- [ ] Documentation generated
|
||
|
||
5. **Reference:** See `references/developer-handoff.md`
|
||
|
||
---
|
||
|
||
## Tool Reference
|
||
|
||
### design_token_generator.py
|
||
|
||
Generates complete design token system from brand color.
|
||
|
||
| Argument | Values | Default | Description |
|
||
|----------|--------|---------|-------------|
|
||
| brand_color | Hex color | #0066CC | Primary brand color |
|
||
| style | modern, classic, playful | modern | Design style preset |
|
||
| format | json, css, scss, summary | json | Output format |
|
||
|
||
**Examples:**
|
||
|
||
```bash
|
||
# Generate JSON tokens (default)
|
||
python scripts/design_token_generator.py "#0066CC"
|
||
|
||
# Classic style with CSS output
|
||
python scripts/design_token_generator.py "#8B4513" classic css
|
||
|
||
# Playful style summary view
|
||
python scripts/design_token_generator.py "#FF6B6B" playful summary
|
||
```
|
||
|
||
**Output Categories:**
|
||
|
||
| Category | Description | Key Values |
|
||
|----------|-------------|------------|
|
||
| colors | Color palettes | primary, secondary, neutral, semantic, surface |
|
||
| typography | Font system | fontFamily, fontSize, fontWeight, lineHeight |
|
||
| spacing | 8pt grid | 0-64 scale, semantic (xs-3xl) |
|
||
| sizing | Component sizes | container, button, input, icon |
|
||
| borders | Border values | radius (per style), width |
|
||
| shadows | Shadow styles | none through 2xl, inner |
|
||
| animation | Motion tokens | duration, easing, keyframes |
|
||
| breakpoints | Responsive | xs, sm, md, lg, xl, 2xl |
|
||
| z-index | Layer system | base through notification |
|
||
|
||
---
|
||
|
||
## Quick Reference Tables
|
||
|
||
### Color Scale Generation
|
||
|
||
| Step | Brightness | Saturation | Use Case |
|
||
|------|------------|------------|----------|
|
||
| 50 | 95% fixed | 30% | Subtle backgrounds |
|
||
| 100 | 95% fixed | 38% | Light backgrounds |
|
||
| 200 | 95% fixed | 46% | Hover states |
|
||
| 300 | 95% fixed | 54% | Borders |
|
||
| 400 | 95% fixed | 62% | Disabled states |
|
||
| 500 | Original | 70% | Base/default color |
|
||
| 600 | Original × 0.8 | 78% | Hover (dark) |
|
||
| 700 | Original × 0.6 | 86% | Active states |
|
||
| 800 | Original × 0.4 | 94% | Text |
|
||
| 900 | Original × 0.2 | 100% | Headings |
|
||
|
||
### Typography Scale (1.25x Ratio)
|
||
|
||
| Size | Value | Calculation |
|
||
|------|-------|-------------|
|
||
| xs | 10px | 16 ÷ 1.25² |
|
||
| sm | 13px | 16 ÷ 1.25¹ |
|
||
| base | 16px | Base |
|
||
| lg | 20px | 16 × 1.25¹ |
|
||
| xl | 25px | 16 × 1.25² |
|
||
| 2xl | 31px | 16 × 1.25³ |
|
||
| 3xl | 39px | 16 × 1.25⁴ |
|
||
| 4xl | 49px | 16 × 1.25⁵ |
|
||
| 5xl | 61px | 16 × 1.25⁶ |
|
||
|
||
### WCAG Contrast Requirements
|
||
|
||
| Level | Normal Text | Large Text |
|
||
|-------|-------------|------------|
|
||
| AA | 4.5:1 | 3:1 |
|
||
| AAA | 7:1 | 4.5:1 |
|
||
|
||
Large text: ≥18pt regular or ≥14pt bold
|
||
|
||
### Style Presets
|
||
|
||
| Aspect | Modern | Classic | Playful |
|
||
|--------|--------|---------|---------|
|
||
| Font Sans | Inter | Helvetica | Poppins |
|
||
| Font Mono | Fira Code | Courier | Source Code Pro |
|
||
| Radius Default | 8px | 4px | 16px |
|
||
| Shadows | Layered, subtle | Single layer | Soft, pronounced |
|
||
|
||
---
|
||
|
||
## Knowledge Base
|
||
|
||
Detailed reference guides in `references/`:
|
||
|
||
| File | Content |
|
||
|------|---------|
|
||
| `token-generation.md` | Color algorithms, HSV space, WCAG contrast, type scales |
|
||
| `component-architecture.md` | Atomic design, naming conventions, props patterns |
|
||
| `responsive-calculations.md` | Breakpoints, fluid typography, grid systems |
|
||
| `developer-handoff.md` | Export formats, framework setup, Figma sync |
|
||
|
||
---
|
||
|
||
## Validation Checklist
|
||
|
||
### Token Generation
|
||
- [ ] Brand color provided in hex format
|
||
- [ ] Style matches project requirements
|
||
- [ ] All token categories generated
|
||
- [ ] Semantic colors include contrast values
|
||
|
||
### Component System
|
||
- [ ] All sizes implemented (sm, md, lg)
|
||
- [ ] All variants implemented (primary, secondary, ghost)
|
||
- [ ] All states working (hover, active, focus, disabled)
|
||
- [ ] Uses only design tokens (no hardcoded values)
|
||
|
||
### Accessibility
|
||
- [ ] Color contrast meets WCAG AA
|
||
- [ ] Focus indicators visible
|
||
- [ ] Touch targets ≥ 44×44px
|
||
- [ ] Semantic HTML elements used
|
||
|
||
### Developer Handoff
|
||
- [ ] Tokens exported in required format
|
||
- [ ] Framework integration documented
|
||
- [ ] Design tool synced
|
||
- [ ] Component documentation complete
|