Guide
Rebuilding your site? Extract its design system first
A rebuild, a rebrand or a move to a new framework is when a design system quietly gets lost. The colors live in old CSS, the type scale in someone's head, the button states in a component nobody wants to open.
Extract your current site as a DESIGN.md before you change anything. You get a written baseline for the new build, one your team and your coding agent can both read.
Written for teams planning a rebuild, rebrand or migration. Updated .
What you'll get
- A DESIGN.md of your current site, committed before the first line of the rebuild.
- A clear view of what the file captured and what it did not.
- A checklist of what to verify by hand: assets, states, motion, breakpoints and pages behind a login.
- A way to compare the new site with the old one when you are done.
When to do this
- A framework move. Same look, new stack. The DESIGN.md lets your coding agent rebuild components with the exact values instead of reading old stylesheets.
- A rebrand. Capture the old system first, so you know exactly which colors, fonts and radii change and which stay.
- A handover. A new agency or a new team gets one file that describes how the site looks today, instead of a tour of the codebase.
Steps
Extract the live site before you change anything
Paste your production URL on the Design Extractor home page and run a Pro extraction. It must be a public page: the extraction loads it like a visitor, so localhost and pages behind a login do not work.
Commit it as the baseline
Save it as DESIGN.md in the new repository and commit it before the rebuild starts. It now records how the site looked on that day.
Read the Known Gaps section
The end of the file lists what the run could not capture. Every item there is something to check by hand.
Check what a DESIGN.md cannot hold
Assets, logged-in screens, motion and the other items below. Add notes to the file as you go.
Build against it
Point your coding agent to the file, as the Claude Code and Cursor guide shows, and review each new screen against it.
What the file captured on Stripe
To see what you get, look at the Stripe DESIGN.md in the gallery. Its Pro run captured 5 pages of stripe.com: /nl, /nl/pricing, /nl/products, /nl/newsroom/news/stripe-openai-instant-checkout, /nl/contact/sales. A run on your own site produces the same structure.
| Colors | 21 tokens, each with its role |
|---|---|
| Typography | 17 styles in Sohne |
| Radii | 10 tokens |
| Spacing | 62 tokens |
| Components | 71 recipes in HTML and CSS: 44 passed the check against the live page, 27 flagged or not checkable, each with the reason |
| Sections | Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, Do's and Don'ts, Responsive Behavior, Iteration Guide, Known Gaps |
What it says it missed
The file is honest about its limits. The first 5 of 11 items in its Known Gaps section:
## Known Gaps
- **Many recipes did not reproduce exactly.** `button-primary` (84% pixel match), `card` (78%), `card-2` (94%), `promo-banner` (77%) and `skip-link` (0%; it is visually hidden until focused) are approximations. So are several header and footer recipes (`header-landing`, `header-inner-2` timed out, `footer-landing`, `footer-inner`, `footer-inner-2`).
- **Some recipes could not be judged at all.** `stat` and `stat-2` were not verifiable, because page media covered most of the element.
- **Some elements were never visible.** `footer-landing`, `header-inner` and `logo-strip-item` were not visible when verification ran, so their values come from computed styles only.
- **No section rhythm was measured.** `sectionRhythm` is empty, so vertical spacing between page sections and the inner padding of large cards is described only qualitatively.
- **No `base` spacing step was published.** The evidence frequency (4px, 8px, 12px, 16px and 24px most common) suggests a 4px-derived grid, but it is not a verified token.Extracted from Stripe's public website, not official brand guidelines. Read the full Stripe DESIGN.md
Your own file will have its own list. Treat it as your to-do list for the checks below.
What to check by hand
| Item | Why the file may miss it | What to do |
|---|---|---|
| Logo, icons, images | A DESIGN.md describes styles, not files. | Export them from the current codebase and keep them with the new one. |
| Logged-in screens | The extraction only sees public pages. | List how the app differs from the marketing site, such as denser tables or a sidebar. |
| States | Hover and focus are recorded where the run saw them; pressed, disabled and error states often are not. | Click through forms and buttons and note the missing states. |
| Motion | Transitions and animations are described in words at most. | Note durations and easing from the current CSS. |
| Breakpoints | The run captures a desktop and a mobile width. | Check the tablet layout and note where columns change. |
| Templates outside the sample | Pro samples around five key pages. | Extract any page that looks different, such as docs or checkout, on its own. |
After the rebuild
When the new site is live, extract it again and compare the two files. Unchanged tokens mean the look survived; changed ones are either the rebrand you planned or drift to fix.
Any text diff shows the changed hex values and sizes. Google's @google/design.md package adds a diff command that compares two versions token by token; the DESIGN.md explainer covers the format and its tooling. If you edit the file by hand along the way, check it with the DESIGN.md Validator.
Files used in this guide
Open one to see a full DESIGN.md, from the tokens at the top to the Known Gaps at the end.
Finance & FintechStripe
Stripe's marketing homepage uses a tightly controlled design system (HDS — Stripe Design System) built around the variable font "sohne-var" at light weights (300–400), a deep navy-to-indigo brand palette anchored by #533afd (Stripe Indigo), and a signature full-bleed spectral gradient hero. Components are low-radius (4–6px), flat-to-minimal-shadow, and structured around an 8px base spacing grid. The overall tone is authoritative yet approachable — financial infrastructure communicated through confident typography and restrained color use.
Business & Professional ServicesShopify
Shopify's marketing homepage uses a dramatic full-bleed video hero with a near-black (#02090a) background that contrasts sharply with the white navigation bar above. The primary brand accent is a vivid mint green (#36f4a4) used sparingly for highlights and interactive states. Typography is split between NeueHaasGrotesk for display/editorial headings and Inter-Variable for UI body copy. CTAs use fully-rounded pill shapes (border-radius: 9999px). The overall system is confident, high-contrast, and aspirational — built to convert visitors into merchants.
Developer & Infrastructure · Developer Tools & IDEsSupabase
Supabase uses a dark-first design system anchored by a deep near-black background (oklch ~0.19) with a vivid green brand accent (#3ecf8e / #3fcf8e). The layout is structured around a responsive feature card grid, with Manrope for display headings and Inter for body/UI text. Source Code Pro handles all monospace/code contexts. The color system is built on oklch custom properties with semantic naming. Cards use 12px radius with subtle border treatment, buttons use 6–8px radius, and the overall density is moderate with an 8px base spacing grid.
FAQ
Extract your design system before a rebuild: questions
Short answers to what people ask before they try this.
No. A DESIGN.md is a text file that describes styles: colors, typography, spacing, radii and component recipes in HTML and CSS. Export the logo, icons, illustrations and photos from your current codebase or design files and keep them next to it.
No. The extraction loads the page from its URL like a visitor would, so pages behind a login, on localhost or on a private network are not supported. Extract the public site, and write down how the logged-in screens differ.
Pro samples the key pages of the site, around five, and merges what it finds into one DESIGN.md. If an important template is not among them, such as a docs page or a checkout, extract that page's URL as well and compare the two files.
Extract the new site once it is live and compare the two files. Google's @google/design.md package has a diff command that compares two versions of a DESIGN.md token by token, and any text diff shows changed hex values and sizes.
Capture your site before you change it
Paste your production URL. A Pro extraction samples its key pages and returns one DESIGN.md.
Related guides
Make Claude Code and Cursor build UI that matches a website
Extract a site you like, drop its DESIGN.md into your repo and point your agent to it, with the exact prompts for Claude Code and Cursor.
No designer? Borrow a proven design system for your app
How to pick a reference site, what to keep from its DESIGN.md and what to change so the result is yours and not a copy.
Blend two reference sites into one design for a prototype
Compare two extracted DESIGN.md files token by token and merge them into one spec for a prototype, by hand or with your agent.
Give your coding agent design specs on demand with MCP
Connect the MCP server so your agent can extract a site's DESIGN.md on its own, wait for it and build from it.