/ Directory / Playground / web-design
● Community KAOPU-XiaoPu ⚡ Instant

web-design

by KAOPU-XiaoPu · KAOPU-XiaoPu/web-design

Spec first, code second — web-design forces a 9-section DESIGN.md from your PRD/URL/screenshot before Claude writes a line of CSS.

web-design is a Claude Code skill that fixes the 'random-ish AI web page' problem. Give it a PRD, reference URL, screenshot, or even a brand name; it extracts design cues and produces a 9-section DESIGN.md covering color, typography, components, layout, motion, depth, accessibility, and responsive behavior. Only then does it generate code — matched to the spec and audited for consistency. Portable: the same spec produces coherent output across AI tools.

Why use it

Key features

Live Demo

What it looks like in practice

web-design-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/KAOPU-XiaoPu/web-design",
        "~/.claude/skills/web-design"
      ],
      "_inferred": false
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/KAOPU-XiaoPu/web-design",
        "~/.claude/skills/web-design"
      ],
      "_inferred": false
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/KAOPU-XiaoPu/web-design",
        "~/.claude/skills/web-design"
      ],
      "_inferred": false
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "web-design-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/KAOPU-XiaoPu/web-design",
        "~/.claude/skills/web-design"
      ],
      "_inferred": false
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "web-design-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/KAOPU-XiaoPu/web-design",
        "~/.claude/skills/web-design"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "web-design-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/KAOPU-XiaoPu/web-design",
          "~/.claude/skills/web-design"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add web-design-skill -- git clone https://github.com/KAOPU-XiaoPu/web-design ~/.claude/skills/web-design

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use web-design

Build a landing page with a real design system in under an hour

👤 Solo founders, indie hackers, early-stage PMs ⏱ ~45 min beginner

When to use: You need a landing page for a product and don't want to commission or pay for Figma work.

Prerequisites
  • Claude Code installed — npm install -g @anthropic-ai/claude-code
  • web-design skill installed — git clone https://github.com/KAOPU-XiaoPu/web-design ~/.claude/skills/web-design
Flow
  1. Feed the brand
    /web-design — build a landing page for 'Lumo', a B2B SaaS for event logistics. Reference: stripe.com's layout; vibe: calm, competent.✓ Copied
    → Skill generates DESIGN.md with 9 sections; shows it before coding
  2. Edit the spec, not the code
    In DESIGN.md, change primary color to #2E6BE6 and headings to Inter Tight. Regenerate the page from the updated spec.✓ Copied
    → Code regenerated to match edits; no random extra changes
  3. Audit
    Run the skill's audit step — flag any component that doesn't match DESIGN.md tokens.✓ Copied
    → Audit report with per-component pass/fail

Outcome: A landing page that looks designed, not 'AI-ed'. Portable DESIGN.md you can hand to a designer later for refinement.

Pitfalls
  • Spec is ignored on the second page — Always regenerate 'from DESIGN.md'; don't ask Claude to add a page without spec reference
  • Reference URL too generic (e.g. 'apple.com') — Point at something in your product's category; vague references yield vague specs
Combine with: filesystem · hue-brand-skill

Rebrand an existing site coherently, not as a search-and-replace

👤 Teams doing a visual refresh ⏱ ~90 min intermediate

When to use: Marketing handed you new brand tokens and you don't want to touch 300 components by hand.

Flow
  1. Import tokens into DESIGN.md
    Update DESIGN.md with these new colors and typography. Leave layout/motion/components sections alone.✓ Copied
    → Clean diff on DESIGN.md
  2. Regenerate styles
    Regenerate the globals and component styles from DESIGN.md. Do not touch component structure.✓ Copied
    → Style-only diff; zero structural changes
  3. Audit and fix stragglers
    Audit across src/components. Any hardcoded colors/fonts not from the spec?✓ Copied
    → List of offenders; patches applied

Outcome: Coherent rebrand; no ghost-old-color surprises two weeks later.

Pitfalls
  • Hardcoded hex scattered across the codebase — Audit catches them; make fixing part of the rebrand, not 'later'
Combine with: filesystem · hue-brand-skill

Turn a screenshot into a layout starter

👤 Anyone who saw a site they like and wants a starting point for their own (not a copy) ⏱ ~30 min intermediate

When to use: You have a screenshot of a reference site and want a coherent starter, not a pixel clone.

Flow
  1. Provide the screenshot
    Attached: screenshot of [reference.png]. Extract the design cues to DESIGN.md (vibe only — don't clone).✓ Copied
    → DESIGN.md with cues inferred from the image, not literal pixel values
  2. Set your content
    Override content in DESIGN.md's 'Narrative' section with my product's copy.✓ Copied
    → Spec keeps the structural cues but with your content
  3. Generate
    Generate a Next.js + Tailwind starter from DESIGN.md.✓ Copied
    → Code compiles; matches the spec; original enough to not be a clone

Outcome: A starter inspired by but distinct from the reference — ethically and visually.

Pitfalls
  • Temptation to ask for an exact clone — Don't — the skill is designed to extract cues, not reproduce; asking for clones degrades output
Combine with: hue-brand-skill

Combinations

Pair with other MCPs for X10 leverage

web-design-skill + hue-brand-skill

hue extracts brand tokens; web-design places them in DESIGN.md

Use hue on stripe.com, then bake those tokens into web-design's DESIGN.md for our new landing page.✓ Copied
web-design-skill + interactive-slides-skill

Use DESIGN.md's tokens to style an investor deck

Generate the investor deck (interactive-slides) using our web-design DESIGN.md tokens for consistency.✓ Copied
web-design-skill + filesystem

Edit DESIGN.md on disk with normal tools; regenerate code on save

After my edits to DESIGN.md, regenerate the affected components.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
/web-design PRD | URL | screenshot | brand name → DESIGN.md (editable) Any new page or rebrand pass — always spec-first Moderate Claude calls (vision if screenshot)

Cost & Limits

What this costs to run

API quota
None beyond normal Claude usage
Tokens per call
First pass (spec + code) is token-heavy; subsequent edits are cheap (regenerate just the diff)
Monetary
Free (MIT-style)
Tip
Lock in DESIGN.md first; then regenerate only the sections you change

Security

Permissions, secrets, blast radius

Credential storage: None
Data egress: None — local skill; any external calls are Claude's normal ones

Troubleshooting

Common errors and fixes

Generated code ignores DESIGN.md

Re-invoke with explicit 'from DESIGN.md' framing; the skill expects spec-first calls, not 'make a hero section'

Verify: Check the skill output — it should cite DESIGN.md sections
Spec section empty for brand keywords only

Add 1–2 reference URLs to seed the cues; brand name alone is too sparse

Verify: Re-run with 'reference: …' added
Audit flags many false positives

Audit compares against DESIGN.md tokens; if tokens are loose, audit feels strict. Tighten DESIGN.md color/type values before re-running.

Alternatives

web-design vs others

AlternativeWhen to use it insteadTradeoff
hue (brand extraction)You need the brand tokens; not a full web-page workflowNo code generation; produces a design system to feed elsewhere
ui-ux-pro-max-skillYou want a large style library with built-in palettes and industry rulesBigger surface; less spec-first
Hand-write TailwindYou want total controlSlow; inconsistent without a spec

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills