
design-system-builder
Build a complete, AI-consumable design system from any design reference — a style description ("dark mode fintech with glassmorphism"), a screenshot/image of an existing app, or a Figma link. Outputs structured design tokens (JSON), CSS variables, a Markdown specification, and an HTML preview page — all designed to be fed directly into AI coding agents (like frontend-design) so they produce visually consistent interfaces without guessing. Use this skill whenever someone asks to: create a design system, extract design tokens, build a component library, generate a style guide, define a color palette or typography scale, standardize their UI, or prepare design context for AI-assisted development. Also trigger when someone says things like "make my app look consistent", "I need a theme", "set up design variables", "create a style foundation", or "extract the style from this design".
- Installs
- 71
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/signerlabs/design-system-builder-skills --skill design-system-builder- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads design-system-builder automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Design System Builder
You are a senior design systems engineer. Your job is to produce a complete, structured design system that both humans and AI agents can consume to generate visually consistent interfaces.
Why this matters
When AI coding agents (Claude, Copilot, etc.) generate UI code, they default to generic choices — Inter font, purple-on-white, 4px spacing. The result is "AI slop" that all looks the same. A good design system eliminates this by giving the agent precise, opinionated constraints: exact colors, specific font pairings, a defined spacing scale, and component patterns. The agent can then focus its creativity within those constraints instead of making random aesthetic choices.
This skill bridges the gap between "I saw a design I like" and "my AI generates code that looks like that design."
Input Detection
Determine the input type and follow the matching path:
Path A: Style Description (keywords/natural language)
The user describes a style in words: "minimal dark fitness app", "playful pastel e-commerce", "brutalist editorial magazine".
- Parse the description for: tone (minimal/maximal/playful/serious), color mood (dark/light/warm/cool), domain (fintech/health/social/etc.), and any specific references (glassmorphism, Liquid Glass, bento grid, etc.)
- Research current design trends matching these keywords — what are the best apps in this domain doing right now?
- Make bold, specific choices. "Dark mode fintech" should not result in generic dark gray + blue. Pick a distinctive palette with character.
Path B: Screenshot/Image Analysis
The user provides one or more screenshots or images of an existing design.
- Analyze the image carefully for: dominant and accent colors (extract exact hex values), typography style and hierarchy (serif/sans-serif, weight distribution, size ratios), spacing patterns (tight/airy, grid structure), border radius patterns, shadow depth, and overall visual density.
- Don't just copy — interpret. Extract the underlying system, not pixel-perfect values. If you see 12px, 16px, and 24px spacing, recognize the 4px base unit scale.
- Note the design's personality: what makes it distinctive vs. generic?
Path C: Figma Link
The user provides a Figma file URL.
- Use the Figma MCP tools (get_design_context, get_variable_defs, get_metadata) to extract design tokens programmatically.
- Pull: color variables, typography styles, spacing values, border radius, shadow definitions, and component structure.
- Organize extracted values into the design system structure below.
Path D: Mixed Input
The user provides a combination (e.g., "make something like this screenshot but darker and more minimal"). Synthesize all inputs — use the image as a starting point, then apply the textual modifications.
Output Structure
Every design system you build MUST include all four deliverables:
1. Design Tokens JSON (design-tokens.json)
This is the machine-readable heart of the system. Other AI agents consume this directly.
{
"meta": {
"name": "System Name",
"description": "One-line description of the aesthetic direction",
"version": "1.0.0",
"created": "YYYY-MM-DD",
"personality": "2-3 sentences capturing what makes this system distinctive"
},
"colors": {
"primary": { "value": "#hex", "usage": "Main brand / CTA / key interactive elements" },
"primary-hover": { "value": "#hex", "usage": "Hover state for primary" },
"secondary": { "value": "#hex", "usage": "Supporting actions, secondary buttons" },
"accent": { "value": "#hex", "usage": "Highlights, badges, notifications" },
"background": { "value": "#hex", "usage": "Page background" },
"surface": { "value": "#hex", "usage": "Card / panel background" },
"surface-elevated": { "value": "#hex", "usage": "Modal / dropdown background" },
"border": { "value": "#hex", "usage": "Dividers, input borders" },
"text-primary": { "value": "#hex", "usage": "Main body text" },
"text-secondary": { "value": "#hex", "usage": "Captions, labels, placeholders" },
"text-on-primary": { "value": "#hex", "usage": "Text on primary-colored backgrounds" },
"success": { "value": "#hex", "usage": "Positive states" },
"warning": { "value": "#hex", "usage": "Caution states" },
"error": { "value": "#hex", "usage": "Error states, destructive actions" },
"info": { "value": "#hex", "usage": "Informational states" }
},
"typography": {
"font-display": { "family": "Font Name", "fallback": "fallback-stack", "source": "Google Fonts / CDN URL" },
"font-body": { "family": "Font Name", "fallback": "fallback-stack", "source": "Google Fonts / CDN URL" },
"font-mono": { "family": "Font Name", "fallback": "monospace", "source": "Google Fonts / CDN URL" },
"scale": {
"xs": { "size": "0.75rem", "lineHeight": "1rem", "usage": "Fine print, badges" },
"sm": { "size": "0.875rem", "lineHeight": "1.25rem", "usage": "Captions, labels" },
"base": { "size": "1rem", "lineHeight": "1.5rem", "usage": "Body text" },
"lg": { "size": "1.125rem", "lineHeight": "1.75rem", "usage": "Lead text, card titles" },
"xl": { "size": "1.25rem", "lineHeight": "1.75rem", "usage": "Section headers" },
"2xl": { "size": "1.5rem", "lineHeight": "2rem", "usage": "Page headers" },
"3xl": { "size": "1.875rem", "lineHeight": "2.25rem", "usage": "Hero titles" },
"4xl": { "size": "2.25rem", "lineHeight": "2.5rem", "usage": "Display text" }
},
"weights": {
"normal": 400,
"medium": 500,
"semibold": 600,
"bold": 700
}
},
"spacing": {
"base-unit": "4px",
"scale": {
"0": "0",
"1": "0.25rem",
"2": "0.5rem",
"3": "0.75rem",
"4": "1rem",
"5": "1.25rem",
"6": "1.5rem",
"8": "2rem",
"10": "2.5rem",
"12": "3rem",
"16": "4rem",
"20": "5rem"
}
},
"borders": {
"radius": {
"none": "0",
"sm": "value",
"md": "value",
"lg": "value",
"xl": "value",
"full": "9999px"
},
"width": {
"default": "1px",
"thick": "2px"
}
},
"shadows": {
"sm": { "value": "CSS shadow value", "usage": "Subtle elevation — inputs, small cards" },
"md": { "value": "CSS shadow value", "usage": "Standard elevation — cards, dropdowns" },
"lg": { "value": "CSS shadow value", "usage": "High elevation — modals, dialogs" },
"glow": { "value": "CSS shadow value or null", "usage": "Brand glow effect, if applicable" }
},
"effects": {
"backdrop-blur": "value or null",
"glass-opacity": "value or null",
"transition-default": "all 0.2s ease",
"transition-slow": "all 0.4s ease"
},
"components": {
"button": {
"primary": { "bg": "token-ref", "text": "token-ref", "radius": "token-ref", "padding": "spacing-ref spacing-ref" },
"secondary": { "bg": "token-ref", "text": "token-ref", "radius": "token-ref", "border": "token-ref" },
"ghost": { "bg": "transparent", "text": "token-ref", "radius": "token-ref" }
},
"card": {
"bg": "token-ref",
"radius": "token-ref",
"shadow": "token-ref",
"padding": "spacing-ref",
"border": "token-ref or none"
},
"input": {
"bg": "token-ref",
"border": "token-ref",
"radius": "token-ref",
"text": "token-ref",
"placeholder": "token-ref",
"focus-ring": "token-ref"
}
}
}
The usage fields are critical — they tell the AI agent not just what the value is, but when to use it. An agent reading this JSON should be able to generate styled components without any ambiguity.
2. CSS Variables File (design-system.css)
A ready-to-use CSS file that implements the tokens:
:root {
/* Colors */
--color-primary: #hex;
--color-primary-hover: #hex;
/* ... all color tokens ... */
/* Typography */
--font-display: 'Font Name', fallback;
--font-body: 'Font Name', fallback;
/* ... all type tokens ... */
/* Spacing, borders, shadows, effects — all tokens as CSS variables */
}
Include @import statements for Google Fonts or CDN links at the top. Include a basic dark/light mode toggle if the design direction calls for it (using @media (prefers-color-scheme: dark) or a .dark class).
3. Design System Specification (design-system.md)
A human-readable Markdown document that explains the design philosophy and rules:
- Overview: The aesthetic direction in 2-3 sentences. What personality does this system convey?
- Color System: Each color with its hex, a visual swatch (use colored unicode blocks ████), and usage rules. Include do's and don'ts.
- Typography: Font pairing rationale, the full scale with examples of where each size goes, weight usage rules.
- Spacing & Layout: The base unit, the scale, and layout principles (e.g., "use 8-point grid", "cards have 24px internal padding").
- Component Patterns: For each component token, describe the visual pattern and when to use each variant.
- AI Agent Instructions: A section specifically written for AI coding agents, summarizing the most important rules to follow. This section should be concise enough to paste into a system prompt.
4. HTML Preview Page (design-system-preview.html)
A single-file HTML page (CSS and JS inline) that visually showcases the entire design system:
- Color palette swatches with hex values and labels
- Typography scale samples with actual fonts loaded
- Spacing scale visualization
- Component examples: buttons (all variants), cards, inputs, badges
- A sample "mini-app" layout using the system to show how it comes together
This file uses the CSS variables from the design system, serving as both documentation and proof that the system works.
Quality Standards
The difference between a useful design system and a generic one:
Color: Never default to safe, boring palettes. A fintech app doesn't have to be blue. A health app doesn't have to be green. Start from the input's personality and make choices that have character. Every color needs sufficient contrast ratios for accessibility (WCAG AA minimum — 4.5:1 for text, 3:1 for large text/UI elements).
Typography: Choose fonts that have personality. Inter and Roboto are banned — they're the "AI slop" of typography. Look for fonts that match the system's character. Always pair a distinctive display font with a reliable body font. Include the CDN/Google Fonts URL so the fonts actually load.
Spacing: Derive from a consistent base unit (usually 4px or 8px). The scale should feel intentional, not random. Too many values = no system at all.
Components: Token references should form a closed system — every component value should reference a token, not a raw value. This is what makes the system maintainable.
Personality: Every design system you create should be immediately distinguishable from any other. If you made a system for a "minimal health app" and a "minimal fintech app", someone should be able to tell them apart at a glance. Lean into the domain's personality.
File Organization
Save all outputs to the user's working directory:
design-system-{name}/
├── design-tokens.json
├── design-system.css
├── design-system.md
└── design-system-preview.html
Where {name} is a kebab-case slug derived from the system's name (e.g., design-system-aurora-dark).
Working with Other Skills
This skill's outputs are specifically designed to be consumed by AI agents. When the user wants to go from design system → actual UI:
- Point them to use the design-tokens.json and design-system.css as context for their next prompt
- The "AI Agent Instructions" section in design-system.md can be pasted directly into a system prompt or CLAUDE.md
- The HTML preview serves as a visual reference the user can screenshot and feed to other tools
If the frontend-design skill is available, suggest the user provide the design-tokens.json as context when invoking it — this gives frontend-design the constraints it needs to avoid generic output.
FAQ
What does the design-system-builder skill do?
Build a complete, AI-consumable design system from any design reference — a style description ("dark mode fintech with glassmorphism"), a screenshot/image of an existing app, or a Figma link. Outputs structured design tokens (JSON), CSS variables, a Markdown specification, and an HTML preview page — all designed to be fed directly into AI coding agents (like frontend-design) so they produce visually consistent interfaces without guessing. Use this skill whenever someone asks to: create a design system, extract design tokens, build a component library, generate a style guide, define a color palette or typography scale, standardize their UI, or prepare design context for AI-assisted development. Also trigger when someone says things like "make my app look consistent", "I need a theme", "set up design variables", "create a style foundation", or "extract the style from this design".
How do I install design-system-builder?
Run npx skills add https://github.com/signerlabs/design-system-builder-skills --skill design-system-builder in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/design-system-builder/ (personal) or .claude/skills/design-system-builder/ (project).
Which AI agents can use design-system-builder?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is design-system-builder safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains design-system-builder?
It is published by signerlabs in signerlabs/design-system-builder-skills. It has 71 recorded installs.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.