Design System
supercent-io/skills-templateThis skill provides a comprehensive framework for creating production-grade, scalable UI designs with consistent visual language, including design tokens, layout rules, motion guidelines, and accessibility checks. It guides users through defining design elements, structuring layouts, implementing interactive behaviors, and ensuring accessibility, making it ideal for designers and developers aiming for high-quality, cohesive interfaces. It also offers best practices, troubleshooting tips, and Handoff documentation to streamline the design-to-development process.
Frontend Design System
This is a skill for production-grade UI design. It supports consistent and scalable frontend development through clear design tokens, layout rules, motion guidelines, and accessibility checks.
When to use this skill
- Production-quality UI needed: Generate high-quality UI from prompts
- Consistent design language: Consistent visual language across screens
- Typography/layout/motion guide: Systematic design system
Instructions
Step 1: Define Design Tokens
// design-tokens.ts
export const tokens = {
// Colors
colors: {
primary: {
50: '#EFF6FF',
100: '#DBEAFE',
500: '#3B82F6',
600: '#2563EB',
700: '#1D4ED8',
},
secondary: {
500: '#6366F1',
600: '#4F46E5',
},
accent: '#F59E0B',
success: '#10B981',
warning: '#F59E0B',
error: '#EF4444',
background: {
primary: '#FFFFFF',
secondary: '#F9FAFB',
tertiary: '#F3F4F6',
},
text: {
primary: '#1F2937',
secondary: '#6B7280',
tertiary: '#9CA3AF',
inverse: '#FFFFFF',
},
},
// Typography
typography: {
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
},
fontSize: {
xs: '0.75rem', // 12px
sm: '0.875rem', // 14px
base: '1rem', // 16px
lg: '1.125rem', // 18px
xl: '1.25rem', // 20px
'2xl': '1.5rem', // 24px
'3xl': '1.875rem', // 30px
'4xl': '2.25rem', // 36px
},
fontWeight: {
normal: 400,
medium: 500,
semibold: 600,
bold: 700,
},
lineHeight: {
tight: 1.25,
normal: 1.5,
relaxed: 1.75,
},
},
// Spacing (8px base unit)
spacing: {
0: '0',
1: '0.25rem', // 4px
2: '0.5rem', // 8px
3: '0.75rem', // 12px
4: '1rem', // 16px
5: '1.25rem', // 20px
6: '1.5rem', // 24px
8: '2rem', // 32px
10: '2.5rem', // 40px
12: '3rem', // 48px
16: '4rem', // 64px
},
// Border Radius
borderRadius: {
none: '0',
sm: '0.25rem', // 4px
md: '0.375rem', // 6px
lg: '0.5rem', // 8px
xl: '0.75rem', // 12px
'2xl': '1rem', // 16px
full: '9999px',
},
// Shadows
shadows: {
sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
md: '0 4px 6px -1px rgb(0 0 0 / 0.1)',
lg: '0 10px 15px -3px rgb(0 0 0 / 0.1)',
xl: '0 20px 25px -5px rgb(0 0 0 / 0.1)',
},
// Breakpoints
breakpoints: {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
'2xl': '1536px',
},
};
Step 2: Define Layout + UX Goals
page_spec:
type: "landing" | "dashboard" | "form" | "blog" | "e-commerce"
hierarchy:
primary_action: [Primary CTA]
secondary_actions: [secondary actions]
information_architecture:
- section: hero
priority: 1
- section: features
priority: 2
- section: social_proof
priority: 3
- section: cta
priority: 4
responsive:
mobile_first: true
breakpoints:
- mobile: "< 640px"
- tablet: "640px - 1024px"
- desktop: "> 1024px"
stack_behavior: "vertical on mobile, horizontal on desktop"
Step 3: Generate UI Output
Section-by-section component structure:
// Hero Section
<section className="hero">
<div className="container">
<div className="hero-content">
<Badge>New Release</Badge>
<Heading level={1}>
Main Headline Here
</Heading>
<Paragraph size="lg">
Supporting copy that explains the value proposition
in 1-2 sentences.
</Paragraph>
<div className="cta-group">
<Button variant="primary" size="lg">
Primary CTA
</Button>
<Button variant="secondary" size="lg">
Secondary CTA
</Button>
</div>
</div>
<div className="hero-visual">
<Image src="hero-image.png" alt="Product screenshot" />
</div>
</div>
</section>
Motion/Interaction notes:
/* Motion Guidelines */
:root {
/* Duration */
--duration-fast: 150ms;
--duration-normal: 300ms;
--duration-slow: 500ms;
/* Easing */
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in: cubic-bezier(0.4, 0, 1, 1);
}
/* Hover States */
.button {
transition: all var(--duration-fast) var(--ease-in-out);
}
.button:hover {
transform: translateY(-1px);
box-shadow: var(--shadow-md);
}
/* Page Transitions */
.page-enter {
opacity: 0;
transform: translateY(10px);
}
.page-enter-active {
opacity: 1;
transform: translateY(0);
transition: all var(--duration-normal) var(--ease-out);
}
Step 4: Validate Accessibility
## Accessibility Checklist
### Color Contrast (WCAG 2.1 AA)
- [ ] Text/background: 4.5:1 minimum (normal text)
- [ ] Text/background: 3:1 minimum (large text)
- [ ] UI components: 3:1 minimum
### Keyboard Navigation
- [ ] All interactive elements focusable
- [ ] Focus order logical (left→right, top→bottom)
- [ ] Focus indicator visible
- [ ] Skip links present
### Screen Reader
- [ ] Semantic HTML used
- [ ] Images have alt text
- [ ] Form labels associated
- [ ] ARIA labels where needed
### Text & Readability
- [ ] Minimum 16px body text
- [ ] Line height ≥ 1.5
- [ ] Paragraph width < 80 characters
- [ ] No text in images
Step 5: Handoff
## Design Handoff Package
### Component Breakdown
| Component | Props | Variants |
|-----------|-------|----------|
| Button | size, variant, disabled | primary, secondary, ghost |
| Input | size, error, placeholder | default, error, success |
| Card | padding, shadow | elevated, flat, outlined |
### CSS/Token Summary
- Colors: [link to color palette]
- Typography: [link to type scale]
- Spacing: 8px base unit
- Breakpoints: 640/768/1024/1280px
### Files
- Figma: [link]
- Tokens: design-tokens.ts
- Components: /src/components/
Examples
Example 1: SaaS Landing Page
Prompt:
Design a SaaS landing page with modern typography,
soft gradients, and subtle motion.
Include hero, features, pricing, and CTA.
Expected output:
- Section layout with visual direction
- Typography scale (H1: 48px → Body: 16px)
- Color palette with gradient definitions
- Motion/interaction specifications
- Component list with props
Example 2: Admin Dashboard
Prompt:
Create a clean admin dashboard with data cards,
filters, and tables. Focus on clarity and fast scanning.
Expected output:
- Grid layout (12-column)
- Component breakdown (cards, tables, filters)
- Visual hierarchy documentation
- Responsive behavior specification
Example 3: Mobile-First Form
Prompt:
Design a multi-step form optimized for mobile.
Include progress indicator, validation states,
and success confirmation.
Expected output:
- Step-by-step flow diagram
- Form field specifications
- Error/success state designs
- Touch-friendly sizing (min 44px targets)
Best practices
- Start with content hierarchy: UI follows content priority
- Consistent spacing scale: 8px-based system, no ad-hoc spacing
- Motion with intent: Animate only meaningful transitions
- Test on mobile: Verify layout integrity
- Accessibility first: Consider accessibility at the design stage
Common pitfalls
- Overuse of effects and gradients: Maintain simplicity
- Inconsistent typography scale: Use the defined scale
- Missing accessibility considerations: Color contrast, keyboard navigation
Troubleshooting
Issue: UI feels generic
Cause: No visual direction or tokens Solution: Provide style references and palette
Issue: Layout breaks on mobile
Cause: No responsive grid rules Solution: Define breakpoints and stacking behavior
Issue: Inconsistent components
Cause: Tokens not in use Solution: Reference all values from tokens
Output format
## Design System Report
### Tokens Applied
- **Colors**: [primary, secondary, accent]
- **Typography**: [font-family, scale]
- **Spacing**: [base unit, scale]
- **Shadows**: [levels]
### Section Layout
| Section | Grid | Components |
|---------|------|------------|
| Hero | 2-col | Badge, Heading, CTA |
| Features | 3-col | Card, Icon |
| Pricing | 3-col | PricingCard |
| CTA | 1-col | Button |
### Component List
- [ ] Button (primary, secondary, ghost)
- [ ] Card (elevated, flat)
- [ ] Input (default, error)
- [ ] Badge
- [ ] Icon
### Accessibility Audit
- [x] Contrast ratios pass
- [x] Focus indicators visible
- [x] Semantic HTML
Multi-Agent Workflow
Validation & Retrospectives
- Round 1 (Orchestrator): Visual direction, section completeness
- Round 2 (Analyst): Accessibility, hierarchy review
- Round 3 (Executor): Handoff checklist verification
Agent Roles
Agent Role Claude Token definition, component design Gemini Accessibility analysis, reference research Codex CSS/component code generation
Metadata
Version
- Current Version: 1.0.0
- Last Updated: 2026-01-21
- Compatible Platforms: Claude, ChatGPT, Gemini, Codex
Related Skills
Tags
#frontend #design #ui #ux #typography #animation #design-tokens #accessibility
GitHub Owner
Owner: supercent-io