frontend-design-system
73
总安装量
74
周安装量
#3023
全站排名
安装命令
npx skills add https://github.com/supercent-io/skills-template --skill frontend-design-system
Agent 安装分布
claude-code
61
opencode
58
gemini-cli
56
antigravity
49
cursor
47
Skill 文档
Frontend Design System
íë¡ëì ìì¤ì UI ëìì¸ì ìí ì¤í¬ì ëë¤. ëª íí ëìì¸ í í°, ë ì´ìì ê·ì¹, 모ì ê°ì´ëë¼ì¸, ì ê·¼ì± ì²´í¬ë¥¼ íµí´ ì¼ê´ëê³ íì¥ ê°ë¥í íë¡ í¸ìë ê°ë°ì ì§ìí©ëë¤.
When to use this skill
- íë¡ëì íì§ UI íì: í롬íí¸ìì ê³ íì§ UI ìì±
- ì¼ê´ë ëìì¸ ì¸ì´: íë©´ ê° ì¼ê´ë ìê°ì ì¸ì´
- íì´í¬ê·¸ëí¼/ë ì´ìì/모ì ê°ì´ë: ì²´ê³ì ì¸ ëìì¸ ìì¤í
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: [주ì CTA]
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
ì¹ì ë³ ì»´í¬ëí¸ êµ¬ì¡°:
// 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 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 ê¸°ë° ìì¤í , ad-hoc ê°ê²© ê¸ì§
- Motion with intent: ì미 ìë ì íë§ ì ëë©ì´ì
- Test on mobile: ë ì´ìì ë¬´ê²°ì± íì¸
- Accessibility first: ëìì¸ ë¨ê³ìì ì ê·¼ì± ê³ ë ¤
Common pitfalls
- í¨ê³¼ì ê·¸ë¼ë°ì´ì ê³¼ì©: ë¨ìí¨ ì ì§
- ì¼ê´ì± ìë íì´í¬ê·¸ëí¼ ì¤ì¼ì¼: ì ìë ì¤ì¼ì¼ ì¬ì©
- ì ê·¼ì± ê³ ë ¤ ëë½: ìì ëë¹, í¤ë³´ë ë¤ë¹ê²ì´ì
Troubleshooting
Issue: UI feels generic
Cause: ìê°ì ë°©í¥ì´ë í í° ìì Solution: ì¤íì¼ ë í¼ë°ì¤ì íë í¸ ì ê³µ
Issue: Layout breaks on mobile
Cause: ë°ìí 그리ë ê·ì¹ ìì Solution: ë¸ë ì´í¬í¬ì¸í¸ì ì¤íí¹ ëì ì ì
Issue: Inconsistent components
Cause: í í° ë¯¸ì¬ì© Solution: 모ë ê°ì í í°ìì 참조
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): ìê°ì ë°©í¥, ì¹ì ìì ì±
- Round 2 (Analyst): ì ê·¼ì±, ê³ì¸µ 구조 리뷰
- Round 3 (Executor): í¸ëì¤í ì²´í¬ë¦¬ì¤í¸ ê²ì¦
Agent Roles
| Agent | Role |
|---|---|
| Claude | í í° ì ì, ì»´í¬ëí¸ ì¤ê³ |
| Gemini | ì ê·¼ì± ë¶ì, ë í¼ë°ì¤ 리ìì¹ |
| Codex | CSS/ì»´í¬ëí¸ ì½ë ìì± |
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