From product-design
Design system management for building and reusing UI components, tokens, and patterns. Use when working with component libraries, design tokens, style guides, or reusable UI patterns to ensure consistency and promote component reuse.
npx claudepluginhub jpoutrin/product-forge --plugin product-designThis skill uses the workspace's default tool permissions.
This skill automatically activates when working with design systems, component libraries, or reusable UI patterns. It ensures consistency and promotes component reuse across projects.
Builds scalable design systems with design tokens, atomic design, Storybook, theming, and governance. Use for component libraries, design standards, and unifying product experiences.
Builds scalable design systems with three-tier design tokens, theme support, React component APIs, and documentation strategies. Use for creating or evolving component libraries.
Audits design systems for naming inconsistencies/hardcoded values, documents component variants/states/accessibility, extends with new tokens/patterns fitting existing system.
Share bugs, ideas, or general feedback.
This skill automatically activates when working with design systems, component libraries, or reusable UI patterns. It ensures consistency and promotes component reuse across projects.
BUILD ONCE, USE EVERYWHERE
❌ Duplicating UI code across components
✅ Building reusable, documented design system components
When this skill activates, Claude will:
Automatically detect when code could benefit from design system patterns:
| Pattern | Detection | Recommendation |
|---|---|---|
| Repeated styles | Same CSS in multiple places | Extract to design token |
| Similar components | Components with slight variations | Create variant system |
| Magic numbers | Hard-coded values (colors, spacing) | Replace with tokens |
| Inconsistent naming | Different names for same concept | Standardize naming |
| Missing documentation | Undocumented components | Add usage docs |
DESIGN TOKEN STRUCTURE
════════════════════════════════════════════════════════════
PRIMITIVE TOKENS (Raw Values)
└── color.blue.500: "#3b82f6"
└── space.4: "16px"
└── font.size.base: "16px"
SEMANTIC TOKENS (Purpose-Based)
└── color.primary: "{color.blue.500}"
└── spacing.component: "{space.4}"
└── text.body: "{font.size.base}"
COMPONENT TOKENS (Component-Specific)
└── button.background: "{color.primary}"
└── button.padding: "{spacing.component}"
└── button.fontSize: "{text.body}"
COMPONENT ORGANIZATION (Atomic Design)
════════════════════════════════════════════════════════════
src/components/
├── atoms/ # Smallest building blocks
│ ├── Button/
│ ├── Input/
│ ├── Icon/
│ └── Text/
│
├── molecules/ # Combinations of atoms
│ ├── FormField/
│ ├── SearchBox/
│ └── Card/
│
├── organisms/ # Complex UI sections
│ ├── Header/
│ ├── Sidebar/
│ └── DataTable/
│
└── templates/ # Page layouts
├── DashboardLayout/
└── AuthLayout/
Button/
├── Button.tsx # Component implementation
├── Button.styles.ts # Styles (CSS modules or styled)
├── Button.types.ts # TypeScript interfaces
├── Button.test.tsx # Unit tests
├── Button.stories.tsx # Storybook documentation
└── index.ts # Public exports
Automatically warn user when:
Hard-coded values detected
"⚠️ DESIGN SYSTEM: Consider replacing hard-coded value with design token"
Duplicate styles found
"⚠️ DESIGN SYSTEM: This style exists in [component]. Consider extracting to shared token"
Missing documentation
"⚠️ DESIGN SYSTEM: Component missing Storybook story or usage documentation"
Inconsistent naming
"⚠️ DESIGN SYSTEM: Naming pattern differs from existing components"
Component too complex
"⚠️ DESIGN SYSTEM: Consider breaking this into smaller atomic components"
📋 Design System Audit
□ TOKENS
□ Color primitives defined
□ Semantic color tokens exist
□ Spacing scale consistent
□ Typography scale defined
□ COMPONENTS
□ Atomic structure followed
□ Components are documented
□ TypeScript types defined
□ Accessibility tested
□ PATTERNS
□ Layout patterns documented
□ Form patterns standardized
□ Error handling consistent
□ Loading states defined