Loading...
Loading...
Extract complete design systems from any website — colors, typography, spacing, shadows, and more — using the designlang CLI.
npx skill4agent add aradotso/trending-skills designlang-design-extractSkill by ara.so — Daily 2026 Skills collection.
# No install needed — run directly
npx designlang https://stripe.com
# Install globally
npm install -g designlang
# Install as an agent skill
npx skills add Manavarya09/design-extract# Extract everything from a site
npx designlang https://stripe.com
# Extract everything with all captures enabled
npx designlang https://stripe.com --full
# Custom output directory and file prefix
npx designlang https://stripe.com --out ./tokens --name stripe
# Wait for SPA to load before extracting
npx designlang https://app.example.com --wait 2000
# Crawl multiple internal pages for site-wide tokens
npx designlang https://stripe.com --depth 3# Extract dark mode styles
npx designlang https://vercel.com --dark
# Capture at 4 responsive breakpoints
npx designlang https://stripe.com --responsive
# Capture hover/focus/active interaction states
npx designlang https://stripe.com --interactions
# Take component screenshots (buttons, cards, nav, hero)
npx designlang https://stripe.com --screenshots
# Everything at once
npx designlang https://stripe.com --full# With cookies for protected pages
npx designlang https://internal-app.com --cookie "session=abc123" --cookie "user_id=42"
# With custom headers
npx designlang https://internal-app.com --header "Authorization:Bearer $TOKEN"
# Combined
npx designlang https://app.example.com \
--cookie "session=$SESSION_COOKIE" \
--header "X-API-Key:$API_KEY"# Score a site's design quality (A-F rating, 7 categories)
npx designlang score https://vercel.com
# Compare two sites side-by-side
npx designlang diff https://stripe.com https://paddle.com
# Compare N brands in a matrix
npx designlang brands stripe.com vercel.com github.com linear.app
# Apply extracted design directly to your project (auto-detects framework)
npx designlang apply https://stripe.com --dir ./my-app
# Generate a working Next.js starter with extracted design
npx designlang clone https://stripe.com
# Monitor a site for design changes hourly
npx designlang watch https://stripe.com --interval 60
# Sync local tokens with live site
npx designlang sync https://stripe.com --out ./src/tokens
# View design change history
npx designlang history https://stripe.comnpx designlang https://stripe.com| File | Purpose |
|---|---|
| AI-optimized markdown with all 19 design sections |
| Visual report with swatches, type scale, a11y score |
| W3C Design Tokens format |
| Drop-in Tailwind CSS theme |
| CSS custom properties |
| Figma Variables import (light + dark) |
| React/CSS-in-JS theme (Chakra, Stitches, etc.) |
| shadcn/ui |
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# Extract design tokens from a reference site
npx designlang https://linear.app --out ./design-tokens --name linear
# The generated tailwind.config.js can be merged into your project:
# ./design-tokens/linear-tailwind.config.jstailwind.config.js/** @type {import('tailwindcss').Config} */
module.exports = {
theme: {
extend: {
colors: {
primary: '#5E6AD2',
background: '#FFFFFF',
surface: '#F7F8F9',
// ... all extracted colors
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
fontSize: {
xs: ['11px', { lineHeight: '16px' }],
sm: ['13px', { lineHeight: '20px' }],
base: ['15px', { lineHeight: '24px' }],
// ... full type scale
},
borderRadius: {
sm: '4px',
md: '6px',
lg: '8px',
// ... extracted radii
},
boxShadow: {
card: '0 1px 3px rgba(0,0,0,0.12)',
// ... extracted shadows
},
},
},
}# Extract the AI-optimized markdown
npx designlang https://stripe.com --out ./tokens
# Then use in a prompt:
cat ./tokens/stripe-com-design-language.md | \
pbcopy # macOS: copies to clipboard
# Or reference it directly in Claude/Cursor:
# "Use the design language in ./tokens/stripe-com-design-language.md
# to style this component..."npx designlang brands stripe.com braintree.com paddle.com adyen.com
# Generates:
# brands.md — markdown comparison matrix
# brands.html — visual side-by-side with color overlap analysis# Auto-detect project structure and write to the right files
npx designlang apply https://stripe.com --dir ./my-nextjs-app
# Or manually use the generated shadcn theme:
# Copy stripe-com-shadcn-theme.css content into app/globals.cssshadcn-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;
/* ... all extracted variables */
}
}npx designlang https://github.com --out ./tokensdesign-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"
}
}
}
}npx designlang https://chakra-ui.com --out ./tokenstheme.jsexport 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',
},
}# Check every 30 minutes, output to a dedicated folder
npx designlang watch https://vercel.com \
--interval 30 \
--out ./design-monitoring
# Useful in CI — run once and diff against stored baseline
npx designlang diff \
https://vercel.com \
./design-monitoring/vercel-com-design-tokens.jsonnpx designlang clone https://stripe.com
# Creates ./cloned-design/ with:
# - Next.js app with extracted colors/fonts/spacing applied
# - tailwind.config.js pre-populated
# - globals.css with CSS variables
# - Basic component stubs styled to match
cd cloned-design
npm install
npm run dev--var--responsive--interactions@font-facenpx designlang score https://your-site.com# Add wait time for JavaScript-heavy SPAs
npx designlang https://app.example.com --wait 3000
# Or use a higher viewport for desktop-only layouts
npx designlang https://example.com --width 1440 --height 900# Get your session cookie from browser DevTools → Application → Cookies
npx designlang https://app.example.com \
--cookie "auth_token=$AUTH_TOKEN" \
--cookie "csrf=$CSRF_TOKEN"# Only generate a specific framework's theme
npx designlang https://stripe.com --framework react
npx designlang https://stripe.com --framework shadcn
# Single-page only (no depth crawling)
npx designlang https://stripe.com --depth 0# Limit to the main page at desktop viewport, no deep crawl
npx designlang https://tailwindcss.com \
--depth 0 \
--width 1280 \
--no-history# Playwright needs browsers installed
npx playwright install chromium
# Or if installed globally:
npm install -g designlang
playwright install chromiumapply# Explicitly point to your project root with a tailwind config present
npx designlang apply https://stripe.com --dir ./my-app
# Ensure ./my-app contains tailwind.config.js or tailwind.config.ts
# for Tailwind detection, or components.json for shadcn detection-design-language.md# Extract your own site's design language for agent context
npx designlang https://your-production-site.com \
--out ./docs/design \
--name my-app
# Reference in CLAUDE.md or .cursorrules:
# "When creating UI components, follow the design language
# documented in ./docs/design/my-app-design-language.md"