A website
reads as a
design system.
designlang crawls any URL and returns its complete design language — tokens, typography, spacing, shadows, components, regions, health, remediations — in W3C DTCG format, with native emitters for iOS, Android, Flutter and WordPress, and a live MCP server your editor can read.
Free, rate-limited to 3 extractions per day. Private IPs rejected. No accounts.
Aliases, not values.
v7.0 writes tokens in W3C DTCG. Hover a semantic row on the left and watch the alias resolve through to its primitive on the right.
Your editor reads this.
The MCP server exposes five resources and five tools over stdio, speaking JSON-RPC to Claude Code, Cursor, and Windsurf. See §09 for install.
---
description: Design system extracted from https://stripe.com — use these tokens, do not invent new ones.
globs: **/*.{ts,tsx,jsx,js,css,scss,html,vue,svelte,swift,kt,dart,php}
alwaysApply: true
---
# Design system reference
Source: https://stripe.com
Extracted by designlang v7.0.0 on 2026-04-18T12:00:00Z
## Semantic tokens (use these)
- color.action.primary: #533afd
- color.surface.default: #ffffff
- color.text.body: #0a2540
- radius.control: 8px
- typography.body.fontFamily: sohne-var, Helvetica Neue, Arial, sans-serif
## How to use
- Prefer `semantic.*` tokens over `primitive.*`.
- Never invent new tokens or hex values; reuse the ones above.
- When a value is missing, pick the closest existing semantic token and flag the gap.
- Reference tokens by their dotted path (e.g. `semantic.color.action.primary`).
▍▍▍▍One token. Five languages.
The same semantic token, emitted in five native dialects. No style leaks, no translation layer.
:root {--color-action-primary: #533afd;
--radius-control: 8px;
}
designlang <url> --platforms all writes these files under ./design-extract-output/<platform>/.
The stylesheet is the problem.
Most sites ship 40–90% unused CSS, long walls of !important escalations, and a specificity graph that rises forever. v7.0 surfaces all of it — not as a vanity score, but as exact declaration-level evidence.
From score to fix.
Most tools hand you a failing contrast ratio. designlang hands you the next color in your own palette that passes AA. Drag to see the difference.
designlang only suggests colors that already exist in the extracted palette. No invented tokens.
Structure, not just style.
designlang labels the page before measuring it. Nav, hero, pricing, footer — nine roles; landmarks first, heuristics second. Components are clustered by DOM signature and style vector, not by guessing at class names.
- navtop-anchored navigation. landmark + top-anchored + link density > 0.5
- heroprimary above-the-fold statement. large type + early viewport + CTA
- featuresgrid of benefit/feature cells. 3+ siblings, similar structural hash
- pricingprice tiers and plans. currency symbol + repeated card shape
- testimonialssocial proof / quotes. blockquote or quote glyph + attribution
- ctastandalone conversion band. single button + heading, full-width container
- footerbottom landmark. landmark + bottom-anchored + link density high
- sidebarlateral aside content. landmark=complementary or aside element
- contentprose / article body. main landmark, paragraph density, reading width
background: var(--accent); color: var(--paper); border: 1px solid var(--accent); padding: 10px 18px;
background: transparent; color: var(--ink); border: 1px solid var(--ink); padding: 10px 18px;
background: transparent; color: var(--ink); border: 1px solid transparent; padding: 10px 18px; text-decoration: underline; text-underline-offset: 3;
background: var(--paper-2); color: var(--ink-3); border: 1px solid var(--ink-3); padding: 10px 18px;
Six design systems,
one format.
Each specimen was crawled once and written to DTCG. The page accent below is pulled from the specimen's own extracted primary — the same semantic.color.action.primary your agent would get over MCP.
Where designlang doesn't win,
it says so.
We picked five tools doing closely adjacent work. The matrix below is our honest assessment on 2026-04-18, written by someone who actually uses all six.
| Feature | designlang | v0 | Builder.io Visual Copilot | Style Dictionary | Subframe | Project Wallace |
|---|---|---|---|---|---|---|
| Extracts from a live URL | — | — | — | |||
| Emits W3C DTCG tokens | — | — | — | — | ||
| Semantic alias layer | — | — | — | |||
| Multi-platform output (iOS, Android, Flutter) | — | — | — | — | ||
| MCP server over stdio | — | — | — | — | — | |
| CSS health audit | — | — | — | — | ||
| A11y remediation suggestions | — | — | — | |||
| Component cluster detection | — | — | ||||
| Offline / local-only | — | — | — | — | ||
| Open source / MIT | — | — | — |
What designlang is not
- It is not a design-to-code generator. It extracts the system, not the components as JSX.
- It is not a hosted cloud service. The free website extractor is rate-limited; production use should run the CLI or MCP server locally.
- It is not a Figma plugin. designlang reads the rendered DOM, not the Figma file — the output is what your users actually see, not what a designer intended.
CLI
Zero install via npx. Node ≥ 20.
1 $ npx designlang <url> 2 $ npx designlang <url> --platforms all 3 $ npx designlang <url> --emit-agent-rules 4 $ npx designlang <url> --tokens-legacy 5 $ npx designlang <url> --dark
MCP server
claude_desktop_config.json / ~/.cursor/mcp.json
{
"mcpServers": {
"designlang": {
"command": "npx",
"args": [
"designlang",
"mcp",
"--output-dir",
"./design-extract-output"
]
}
}
}Once connected, every MCP-aware agent can query your last extraction.
Agent rules
One flag emits ready-to-commit rules for every popular agent.
$ npx designlang <url> --emit-agent-rules
- .cursor/rules/designlang.mdc
- .claude/skills/designlang/SKILL.md
- CLAUDE.md.fragment
- agents.md