| name | designlang-design-extract |
| description | Extract complete design systems from any website — colors, typography, spacing, shadows, and more — using the designlang CLI. |
| triggers | ["extract design tokens from a website","reverse engineer a website's design system","get colors and fonts from a site","generate tailwind config from existing site","copy design language from website","extract CSS variables from a URL","analyze website design system","clone a website's visual design"] |
DESIGNLANG — Design System Extraction
Skill by ara.so — Daily 2026 Skills collection.
designlang crawls any website with a headless browser (Playwright), extracts every computed style from the live DOM, and generates 8 output files: AI-optimized markdown, visual HTML preview, Tailwind config, React theme, shadcn/ui theme, Figma variables, W3C design tokens, and CSS custom properties.
Installation
npx designlang https://stripe.com
npm install -g designlang
npx skills add Manavarya09/design-extract
Core Commands
Basic Extraction
npx designlang https://stripe.com
npx designlang https://stripe.com --full
npx designlang https://stripe.com --out ./tokens --name stripe
npx designlang https://app.example.com --wait 2000
npx designlang https://stripe.com --depth 3
Specialized Extraction
npx designlang https://vercel.com --dark
npx designlang https://stripe.com --responsive
npx designlang https://stripe.com --interactions
npx designlang https://stripe.com --screenshots
npx designlang https://stripe.com --full
Authentication
npx designlang https://internal-app.com --cookie "session=abc123" --cookie "user_id=42"
npx designlang https://internal-app.com --header "Authorization:Bearer $TOKEN"
npx designlang https://app.example.com \
--cookie "session=$SESSION_COOKIE" \
--header "X-API-Key:$API_KEY"
Utility Commands
npx designlang score https://vercel.com
npx designlang diff https://stripe.com https://paddle.com
npx designlang brands stripe.com vercel.com github.com linear.app
npx designlang apply https://stripe.com --dir ./my-app
npx designlang clone https://stripe.com
npx designlang watch https://stripe.com --interval 60
npx designlang sync https://stripe.com --out ./src/tokens
npx designlang history https://stripe.com
Output Files
Running npx designlang https://stripe.com produces:
| File | Purpose |
|---|
stripe-com-design-language.md | AI-optimized markdown with all 19 design sections |
stripe-com-preview.html | Visual report with swatches, type scale, a11y score |
stripe-com-design-tokens.json | W3C Design Tokens format |
stripe-com-tailwind.config.js | Drop-in Tailwind CSS theme |
stripe-com-variables.css | CSS custom properties |
stripe-com-figma-variables.json | Figma Variables import (light + dark) |
stripe-com-theme.js | React/CSS-in-JS theme (Chakra, Stitches, etc.) |
stripe-com-shadcn-theme.css | shadcn/ui globals.css variables |
Full CLI Reference
designlang <url> [options]
Options:
-o, --out <dir> Output directory (default: ./design-extract-output)
-n, --name <name> Output file prefix (default: derived from URL)
-w, --width <px> Viewport width (default: 1280)
--height <px> Viewport height (default: 800)
--wait <ms> Wait after page load for SPAs (default: 0)
--dark Also extract dark mode styles
--depth <n> Internal pages to crawl (default: 0)
--screenshots Capture component screenshots
--responsive Capture at multiple breakpoints
--interactions Capture hover/focus/active states
--full Enable all captures
--cookie <val> Cookie for auth pages (name=value, repeatable)
--header <val> Custom header (name:value, repeatable)
--framework <type> Only generate specific theme (react, shadcn)
--no-history Skip saving to history
--verbose Detailed progress output
Common Patterns
Pattern 1: Extract and apply to a Tailwind project
npx designlang https://linear.app --out ./design-tokens --name linear
Generated tailwind.config.js looks like:
module.exports = {
theme: {
extend: {
colors: {
primary: '#5E6AD2',
background: '#FFFFFF',
surface: '#F7F8F9',
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
fontSize: {
xs: ['11px', { lineHeight: '16px' }],
sm: ['13px', { lineHeight: '20px' }],
base: ['15px', { lineHeight: '24px' }],
},
borderRadius: {
sm: '4px',
md: '6px',
lg: '8px',
},
boxShadow: {
card: '0 1px 3px rgba(0,0,0,0.12)',
},
},
},
}
Pattern 2: Feed the markdown to an LLM
npx designlang https://stripe.com --out ./tokens
cat ./tokens/stripe-com-design-language.md | \
pbcopy
Pattern 3: Compare competitors
npx designlang brands stripe.com braintree.com paddle.com adyen.com
Pattern 4: Apply to a shadcn/ui project
npx designlang apply https://stripe.com --dir ./my-nextjs-app
Generated shadcn-theme.css:
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--primary: 238 72% 57%;
--primary-foreground: 210 40% 98%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--border: 214.3 31.8% 91.4%;
--radius: 0.5rem;
}
}
Pattern 5: W3C Design Tokens for tooling
npx designlang https://github.com --out ./tokens
Generated design-tokens.json:
{
"$schema": "https://design-tokens.github.io/community-group/format/",
"color": {
"primary": {
"$value": "#0969da",
"$type": "color"
},
"background": {
"default": {
"$value": "#ffffff",
"$type": "color"
}
}
},
"typography": {
"fontFamily": {
"sans": {
"$value": "-apple-system, BlinkMacSystemFont, 'Segoe UI'",
"$type": "fontFamily"
}
}
}
Pattern 6: React theme object
npx designlang https://chakra-ui.com --out ./tokens
Generated theme.js:
export const theme = {
colors: {
primary: '#319795',
secondary: '#553C9A',
},
fonts: {
body: 'Inter, system-ui, sans-serif',
heading: 'Inter, system-ui, sans-serif',
},
space: {
1: '4px',
2: '8px',
4: '16px',
8: '32px',
},
radii: {
sm: '4px',
md: '6px',
lg: '8px',
full: '9999px',
},
}
Pattern 7: Monitor a design system for changes
npx designlang watch https://vercel.com \
--interval 30 \
--out ./design-monitoring
npx designlang diff \
https://vercel.com \
./design-monitoring/vercel-com-design-tokens.json
Pattern 8: Clone a site's design as a Next.js starter
npx designlang clone https://stripe.com
cd cloned-design
npm install
npm run dev
What Gets Extracted
The markdown output covers 19 sections:
- Color Palette — all unique colors with usage context
- Typography — font families, weights, sizes, line heights, letter spacing
- Spacing — padding/margin/gap values used across the site
- Border Radii — all radius values with component context
- Box Shadows — elevation system
- CSS Custom Properties — all
--var declarations
- Breakpoints — detected responsive breakpoints
- Transitions & Animations — duration, easing, properties animated
- Component Patterns — button, card, input, nav with full CSS snippets
- Layout System — grid columns, flex patterns, container widths
- Responsive Design — what changes across breakpoints (with
--responsive)
- Interaction States — hover/focus/active deltas (with
--interactions)
- Accessibility — WCAG 2.1 contrast scores for all fg/bg pairs
- Gradients — type, direction, stops, classification
- Z-Index Map — layer hierarchy, z-index wars detection
- SVG Icons — deduplicated, size/style classified, color palette
- Font Files — source (Google/self-hosted/CDN/system),
@font-face CSS
- Image Style Patterns — aspect ratios, filters, shape treatments
- Quick Start — ready-to-use snippet to recreate the design
Design Scoring
npx designlang score https://your-site.com
Scores 7 categories on a 0–100 scale with A-F grade:
- Color Discipline — palette size, harmony, usage consistency
- Typography — scale rationality, weight/size combinations
- Spacing System — whether spacing follows a scale
- Shadows — elevation system coherence
- Border Radii — consistency across components
- Accessibility — WCAG 2.1 contrast pass rate
- Tokenization — CSS custom property usage
Troubleshooting
Site loads blank or styles are missing
npx designlang https://app.example.com --wait 3000
npx designlang https://example.com --width 1440 --height 900
Authentication-protected pages
npx designlang https://app.example.com \
--cookie "auth_token=$AUTH_TOKEN" \
--cookie "csrf=$CSRF_TOKEN"
Output files are too large
npx designlang https://stripe.com --framework react
npx designlang https://stripe.com --framework shadcn
npx designlang https://stripe.com --depth 0
Too many colors extracted (utility CSS sites)
npx designlang https://tailwindcss.com \
--depth 0 \
--width 1280 \
--no-history
Playwright/browser not found
npx playwright install chromium
npm install -g designlang
playwright install chromium
apply command doesn't detect my framework
npx designlang apply https://stripe.com --dir ./my-app
Integration with AI Agents
The -design-language.md file is specifically structured for LLM consumption. Feed it directly to Claude, GPT-4, or Cursor to:
- Recreate UI components matching the extracted design
- Generate new components consistent with the design system
- Audit your own components against a reference design
- Document your own site's design system automatically
npx designlang https://your-production-site.com \
--out ./docs/design \
--name my-app