From claude-frontforge
Copy any website's design system — give a URL and get back its colors, typography scale, spacing grid, shadows, and layout patterns with confidence scores. Outputs CSS variables, Tailwind config, or Figma tokens ready to use.
How this command is triggered — by the user, by Claude, or both
Slash command
/claude-frontforge:analyze-websitecommands/The summary Claude sees in its command listing — used to decide when to auto-load this command
# claude-frontforge analyze-website Extract design systems from live websites through vision-based analysis. ## Usage ## Options - `--focus=<area>`: typography, colors, spacing, layout, surfaces, all (default: all) - `--format=<format>`: json, css, tailwind, figma (default: json) - `--compare`: Enable comparison mode for multiple URLs ## What Gets Extracted ### Typography - Font families (classified by type: sans, serif, mono, display) - Size scale with relationships - Weight usage patterns - Line height conventions - **Confidence: 80-85%** ### Colors - Primary/secondary/accent col...
Extract design systems from live websites through vision-based analysis.
/analyze-website <url> # Analyze single site
/analyze-website <url> --focus=colors # Focus on specific tokens
/analyze-website <url1> <url2> --compare # Compare multiple sites
--focus=<area>: typography, colors, spacing, layout, surfaces, all (default: all)--format=<format>: json, css, tailwind, figma (default: json)--compare: Enable comparison mode for multiple URLsStructure Pass (1440px desktop)
Component Pass (Element inspection)
Interaction Pass (States + responsive)
{
"metadata": {
"url": "stripe.com",
"analyzedAt": "2026-02-02T10:30:00Z",
"overallConfidence": "82%"
},
"tokens": {
"typography": {
"families": {
"primary": "Inter (sans-serif)",
"mono": "JetBrains Mono"
},
"scale": ["12px", "14px", "16px", "18px", "24px", "32px", "48px"],
"weights": ["400", "500", "600", "700"],
"confidence": "85%"
},
"colors": {
"primary": "#635BFF",
"secondary": "#0A2540",
"neutral": ["#F6F9FC", "#E3E8EE", "#8792A2", "#425466", "#0A2540"],
"semantic": {
"success": "#30D158",
"warning": "#FF9F0A",
"error": "#FF453A"
},
"confidence": "88%"
},
"spacing": {
"base": "4px",
"scale": ["4px", "8px", "16px", "24px", "32px", "48px", "64px"],
"confidence": "78%"
},
"surfaces": {
"shadows": [
"0 1px 3px rgba(0,0,0,0.08)",
"0 4px 12px rgba(0,0,0,0.1)",
"0 12px 24px rgba(0,0,0,0.12)"
],
"borders": "1px solid rgba(0,0,0,0.08)",
"radius": ["4px", "8px", "12px"],
"confidence": "82%"
}
},
"contentAnalysis": {
"siteType": "SaaS / Fintech",
"voiceTone": "Professional, confident, technical",
"industrySignals": ["payments", "developer-focused", "enterprise"],
"confidence": "92%"
},
"strategyInference": {
"primaryGoal": "Developer trust and enterprise credibility",
"audienceSignals": ["Technical decision-makers", "Developers"],
"designTradeoffs": [
"Chose density over breathing room",
"Prioritized information over delight"
]
},
"suggestedDirection": "Sophistication & Trust",
"decisionTraces": [
"Cool color palette (blue/slate) → Professional, trustworthy",
"Layered shadows → Premium, dimensional feel",
"Monospace in code blocks → Developer credibility"
]
}
When using --compare with multiple URLs:
/analyze-website stripe.com linear.app mercury.com --compare
Outputs a comparison matrix:
| Aspect | Stripe | Linear | Mercury |
|--------|--------|--------|---------|
| Direction | Sophistication | Precision | Sophistication |
| Base spacing | 4px | 4px | 8px |
| Depth strategy | Layered | Borders | Subtle shadows |
| Typography | Inter | Inter | SF Pro |
| Primary color | #635BFF | #5E6AD2 | #2563EB |
Be transparent about accuracy:
After analysis, you can:
/init with extracted tokens/generate-tokens --format=tailwindUser: /analyze-website linear.app
Claude: Analyzing linear.app...
📊 Analysis Complete (Confidence: 85%)
**Direction Detected:** Precision & Density
**Key Characteristics:**
- Tight 4px grid
- Borders-only depth (minimal shadows)
- Monochromatic palette with purple accent
- Dense information display
**Typography:**
- Primary: Inter (sans-serif)
- Scale: 11, 12, 13, 14, 16, 20, 24px
- Weights: 400, 500, 600
**Colors:**
- Primary: #5E6AD2 (purple)
- Background: #1A1A1F (dark)
- Text: #E8E8ED (light)
**Strategy Inference:**
Linear optimizes for power users who need information density.
The minimal depth (borders-only) keeps focus on content.
Create .frontforge/system.md with these patterns? (y/n)
npx claudepluginhub thiagoedson/claude-frontforge --plugin claude-frontforge/analysisAnalyzes the CSS design system of any website from a URL, extracting design tokens, fonts, and color ramps into a design.md spec and an HTML report.
/analyze-siteNavigates to a website, captures desktop and mobile screenshots, and extracts colors, typography, layout patterns, UI components, and motion effects into a structured design report.
/design-context-extractExtracts design DNA (colors, typography, spacing, components, motion) from screenshots, URLs, screen recordings, or project files. Outputs design-tokens.json, Tailwind config, CSS variables, or Markdown spec.
/design-compareCaptures two websites with Playwright and produces a structured side-by-side design comparison covering layout, color, typography, navigation, and recommendations.
/competitor-scanAnalyzes 1-3 competitor websites for design intelligence — extracts color palettes, typography, layout patterns, component libraries, and brand positioning, then generates a competitive positioning matrix.
/design-systemAudits a design system by evaluating design tokens including contrast, focus rings, spacing, and motion. Helps identify inconsistencies and accessibility issues.