Phase 5: Design System
Build a consistent component library
Components
1. Design Tokens
:root {
/* Colors */
--color-primary: #3b82f6;
--color-secondary: #64748b;
--color-success: #22c55e;
--color-error: #ef4444;
/* Typography */
--font-sans: 'Inter', sans-serif;
--font-size-sm: 0.875rem;
--font-size-base: 1rem;
--font-size-lg: 1.125rem;
/* Spacing */
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-4: 1rem;
--space-8: 2rem;
/* Border Radius */
--radius-sm: 0.25rem;
--radius-md: 0.5rem;
--radius-lg: 1rem;
}
2. Base Components
// components/ui/button.tsx
interface ButtonProps {
variant: 'primary' | 'secondary' | 'outline';
size: 'sm' | 'md' | 'lg';
children: React.ReactNode;
onClick?: () => void;
}
export function Button({ variant, size, children, onClick }: ButtonProps) {
return (
<button
className={cn('btn', `btn-${variant}`, `btn-${size}`)}
>
{children}
</button>
);
}
3. Component Categories
- Primitives: Button, Input, Select, Checkbox
- Layout: Container, Grid, Stack, Flex
- Navigation: Navbar, Sidebar, Tabs, Breadcrumb
- Feedback: Alert, Toast, Modal, Spinner
- Data Display: Table, Card, List, Badge
Tools
- shadcn/ui (recommended)
- Tailwind CSS
- Radix UI primitives
Output
Save components to: components/ui/
Next Phase
After completion: /phase-6-ui-integration
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: popup-studio-ai-bkit-gemini-phase-5-design-system3description: Phase 5: Design System4---56# Phase 5: Design System78> Build a consistent component library910## Components1112### 1. Design Tokens1314```css15:root {16 /* Colors */17 --color-primary: #3b82f6;18 --color-secondary: #64748b;19 --color-success: #22c55e;20 --color-error: #ef4444;2122 /* Typography */23 --font-sans: 'Inter', sans-serif;24 --font-size-sm: 0.875rem;25 --font-size-base: 1rem;26 --font-size-lg: 1.125rem;2728 /* Spacing */29 --space-1: 0.25rem;30 --space-2: 0.5rem;31 --space-4: 1rem;32 --space-8: 2rem;3334 /* Border Radius */35 --radius-sm: 0.25rem;36 --radius-md: 0.5rem;37 --radius-lg: 1rem;38}39```4041### 2. Base Components4243```typescript44// components/ui/button.tsx45interface ButtonProps {46 variant: 'primary' | 'secondary' | 'outline';47 size: 'sm' | 'md' | 'lg';48 children: React.ReactNode;49 onClick?: () => void;50}5152export function Button({ variant, size, children, onClick }: ButtonProps) {53 return (54 <button55 className={cn('btn', `btn-${variant}`, `btn-${size}`)}56 onClick={onClick}57 >58 {children}59 </button>60 );61}62```6364### 3. Component Categories6566- **Primitives**: Button, Input, Select, Checkbox67- **Layout**: Container, Grid, Stack, Flex68- **Navigation**: Navbar, Sidebar, Tabs, Breadcrumb69- **Feedback**: Alert, Toast, Modal, Spinner70- **Data Display**: Table, Card, List, Badge7172## Tools7374- shadcn/ui (recommended)75- Tailwind CSS76- Radix UI primitives7778## Output7980Save components to: `components/ui/`8182## Next Phase8384After completion: `/phase-6-ui-integration`8586---87> Converted and distributed by [TomeVault](https://tomevault.io/claim/popup-studio-ai) — claim your Tome and manage your conversions.88<!-- tomevault:4.0:skill_md:2026-04-11 -->