
design-system
Extract a complete design system from an existing website or screenshot into a DESIGN.md file. Analyses colours, typography, component styles, spacing, and atmosphere through browser automation and HTML inspection. Produces a semantic design system document optimised for consistent page generation. Triggers: 'extract design system', 'design system', 'create DESIGN.md', 'analyse the design', 'what design does this site use', 'extract styles from', 'reverse engineer the design'.
- Installs
- 1.1K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jezweb/claude-skills --skill design-system- 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 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 Extractor
Analyse an existing website, HTML file, or screenshot and synthesise a semantic design system into a DESIGN.md file. The output is optimised for use with the design-loop skill and general page generation.
When to Use
- Starting a new project based on an existing site's visual language
- Documenting a site's design system that was never formally written down
- Preparing
.design/DESIGN.mdbefore running the design loop - Extracting brand guidelines from a client's existing website
- Creating consistency documentation for a multi-page project
- Extracting design tokens from a Google Stitch project
Workflow
Step 1: Identify the Source
Ask the user for one of:
| Source | Method |
|---|---|
| Live URL | Browse via Playwright CLI or scraper, screenshot + extract HTML |
| Local HTML file | Read the file directly |
| Screenshot image | Analyse visually (limited — no exact hex extraction) |
| Existing project | Scan site/public/ for HTML files to analyse |
| Stitch project | Use @google/stitch-sdk to fetch screen HTML + design theme |
Step 2: Extract Raw Design Data
From a Live URL
-
Browse the site using Playwright CLI:
playwright-cli -s=design open {url} playwright-cli -s=design screenshot --filename=.design/screenshots/source-desktop.png -
Extract the full HTML — either via scraper MCP or by reading the page source
-
Resize and screenshot mobile (375px):
playwright-cli -s=design resize 375 812 playwright-cli -s=design screenshot --filename=.design/screenshots/source-mobile.png -
Close the session:
playwright-cli -s=design close
From a Local HTML File
Read the file directly and extract design tokens from the source.
From a Screenshot Only
Analyse the image visually. Note: colour extraction will be approximate without HTML source. Flag this limitation in the output.
From a Google Stitch Project
If @google/stitch-sdk is installed and STITCH_API_KEY is set:
import { stitch } from "@google/stitch-sdk";
// List projects to find the target
const projects = await stitch.projects();
// Get project details (includes designTheme)
const project = stitch.project(projectId);
const screens = await project.screens();
// Get HTML from the main screen
const screen = screens[0]; // or find by title
const htmlUrl = await screen.getHtml();
const imageUrl = await screen.getImage();
The Stitch designTheme object provides structured tokens directly:
{
"colorMode": "DARK",
"font": "INTER",
"roundness": "ROUND_EIGHT",
"customColor": "#40baf7",
"saturation": 3
}
Map these to DESIGN.md sections:
colorMode→ Theme (Light/Dark)font→ Typography font familyroundness→ Component border-radius (ROUND_EIGHT= 8px,ROUND_SIXTEEN= 16px, etc.)customColor→ Primary brand coloursaturation→ Colour vibrancy (1-5 scale)
Then also download and analyse the HTML for the full palette (Stitch's theme object only has the primary colour — the full palette is in the generated CSS).
Step 3: Analyse Design Tokens
Extract these from the HTML/CSS source:
Colours
Look in these locations (priority order):
- CSS custom properties —
:root { --primary: #hex; }or@themeblocks - Tailwind config —
<script>block withtailwind.configor@themein<style> - Inline styles —
style="color: #hex"orstyle="background: #hex" - Tailwind classes —
bg-blue-600,text-gray-900(map to palette) - Computed from screenshot — last resort, approximate
For each colour found, determine its role:
| Role | How to identify |
|---|---|
| Primary | Buttons, links, active states, brand elements |
| Background | <body> or <html> background |
| Surface | Cards, containers, elevated elements |
| Text Primary | <h1>, <h2>, main body text |
| Text Secondary | Captions, metadata, muted text |
| Border | Dividers, input borders, card borders |
| Accent | Badges, notifications, highlights |
Typography
Extract:
| Token | Where to find |
|---|---|
| Font families | Google Fonts <link>, @import, font-family in CSS |
| Heading weights | font-bold, font-semibold, or explicit font-weight |
| Body size | Base font-size on <body> or root |
| Line height | leading-* classes or line-height CSS |
| Letter spacing | tracking-* classes or letter-spacing CSS |
Components
Identify patterns for:
- Buttons — shape (rounded-full, rounded-lg), colours, padding, hover states
- Cards — background, border, shadow, border-radius, padding
- Navigation — sticky/static, background treatment, active indicator
- Forms — input style, focus ring, label positioning
- Hero sections — layout pattern, overlay treatment, CTA placement
Spacing & Layout
- Max content width — look for
max-w-*or explicitmax-width - Section padding — typical vertical padding between sections
- Grid system — column count, gap values
- Whitespace philosophy — tight, balanced, generous, or dramatic
Step 4: Synthesise into Natural Language
Critical: The DESIGN.md should describe the design in semantic, natural language supported by exact values. This is not a CSS dump — it's a document a designer or AI can read to understand and reproduce the visual language.
| Don't write | Write instead |
|---|---|
rounded-xl | "Softly rounded corners (12px)" |
shadow-md | "Subtle elevation with diffused shadow" |
#1E40AF | "Deep Ocean Blue (#1E40AF) for primary actions" |
py-16 | "Generous section spacing with breathing room" |
Step 5: Write DESIGN.md
Output the file to .design/DESIGN.md (or user-specified path).
Follow the structure from the design-loop skill's references/site-template.md — specifically the DESIGN.md Template section. The key sections are:
- Visual Theme & Atmosphere — mood, vibe, philosophy
- Colour Palette & Roles — table with role, name, hex, usage
- Typography — font families, weights, sizes, line heights
- Component Styles — buttons, cards, nav, forms
- Layout Principles — max width, spacing, grid, whitespace
- Design System Notes for Generation — the copy-paste block for baton prompts
Step 6: Verify Accuracy
If browser automation is available:
- Generate a small test section (e.g. a card + button + heading) using the extracted design system
- Screenshot it alongside the original
- Compare visually — adjust any values that don't match
Step 7: Report to User
Present:
- Summary of extracted tokens (colour count, fonts, component patterns)
- The generated DESIGN.md location
- Any tokens that were approximate (flagged with ⚠️)
- Suggestions for manual review (colours from screenshots, ambiguous typography)
Handling Multiple Pages
If the site has multiple pages with different styles:
- Analyse the homepage first — it usually has the most complete design language
- Spot-check 2-3 inner pages for consistency
- Note any page-specific overrides in the Component Styles section
- If pages are wildly different, ask the user which page to use as the canonical source
Tips
- Tailwind sites are easiest — the config block has everything
- Google Fonts links are gold — they specify exact families and weights
- CSS custom properties are reliable — they represent intentional design tokens
- Inline Tailwind classes need interpretation —
bg-slate-900needs mapping to a role - Screenshots are last resort — accurate hex extraction from images is unreliable
- Dark mode: Check for
.darkclass overrides orprefers-color-schememedia queries
Common Pitfalls
- ❌ Listing raw CSS values without semantic description
- ❌ Missing the dark mode palette (check for
.darkclass or media query) - ❌ Ignoring component patterns (just listing colours isn't enough)
- ❌ Not including Section 6 (the copy-paste generation block)
- ❌ Approximate colours from screenshots without flagging the uncertainty
FAQ
What does the design-system skill do?
Extract a complete design system from an existing website or screenshot into a DESIGN.md file. Analyses colours, typography, component styles, spacing, and atmosphere through browser automation and HTML inspection. Produces a semantic design system document optimised for consistent page generation. Triggers: 'extract design system', 'design system', 'create DESIGN.md', 'analyse the design', 'what design does this site use', 'extract styles from', 'reverse engineer the design'.
How do I install design-system?
Run npx skills add https://github.com/jezweb/claude-skills --skill design-system 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/ (personal) or .claude/skills/design-system/ (project).
Which AI agents can use design-system?
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 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?
It is published by jezweb in jezweb/claude-skills. It has 1,119 recorded installs.
More from jezweb/claude-skills
shadcn-ui
jezweb/claude-skills
Install and configure shadcn/ui components for React projects. Guides component selection, installation order, dependency management, customisation with semantic tokens, and common UI recipes (forms, data tables, navigation, modals). Use after tailwind-theme-builder has set up the theme infrastructure, when adding components, building forms, creating data tables, or setting up navigation.
color-palette
jezweb/claude-skills
Generate complete, accessible colour palettes from a single brand hex. Produces 11-shade scale (50-950), semantic tokens, dark mode variants, Tailwind v4 CSS output, WCAG contrast checks. Use whenever the user supplies a brand hex and asks for a palette, mentions setting up a design system, wants Tailwind theme colours from a brand colour, or asks to check colour accessibility / contrast.
tailwind-theme-builder
jezweb/claude-skills
Set up Tailwind v4 + shadcn/ui themed UI with dark mode. Install deps, configure CSS variables via @theme inline, wire dark mode toggle, verify. Use whenever the user mentions Tailwind v4, setting up Tailwind theming, shadcn/ui colours, dark mode, or troubleshooting colours not working, tw-animate-css errors, @theme inline conflicts, @apply breaking after upgrade, or v3 → v4 migration issues.
wordpress-elementor
jezweb/claude-skills
Edit Elementor pages and manage templates on WordPress sites via browser automation (for visual / structural changes) or WP-CLI (for safe text replacements). Use whenever the user wants to edit an Elementor page, update text in Elementor widgets, apply or manage Elementor templates, or make content changes to pages built with the Elementor page builder.
ux-audit
jezweb/claude-skills
Walk through a live web app AS a real user to find usability + behavioural bugs that static reviews miss. REQUIRES proof of interaction (typing, clicking, sending, observing) before any verdict — a sweep that didn't interact terminates with verdict 'Incomplete'. Walks threads, exercises every element, runs the multi-pane stress matrix, visual polish sweep, component perfection checklist, automated a11y (axe-core), pragmatic performance budget (LCP/CLS/INP), scenario battery (11 scenarios), and stress recipes including the real-flavour data battery. Hard gates: console errors/warnings = 0, network 5xx = 0, layout collapse = 0, axe Critical/Serious = 0, perf budget green. Audit-the-audit meta-check rejects rushed reports. Each finding has reproduction steps, evidence path, and suspected code location. Trigger with 'ux audit', 'walkthrough', 'qa sweep', 'audit the app', 'dogfood this', 'check all pages', 'find what's broken', 'stress the UI'.
tailwind-v4-shadcn
jezweb/claude-skills
Set up Tailwind v4 with shadcn/ui using @theme inline pattern and CSS variable architecture. Four-step pattern: CSS variables, Tailwind mapping, base styles, automatic dark mode. Prevents 8 documented errors. Use when initializing React projects with Tailwind v4, or fixing colors not working, tw-animate-css errors, @theme inline dark mode conflicts, @apply breaking, v3 migration issues.
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.