Brand Design Language Reverse
Turn any live site into a copy-paste design system. Reads a real URL, extracts
what is observable (colors, fonts, component patterns, icon/animation
technique, framework), and outputs a five-part report ending in usable CSS
tokens. Analysis + delivery in one pass.
When to Use
- You admire a brand/product and want to recreate its visual feel in your own
project (landing, dashboard, component).
- You need a competitor's palette/type/components as a reference before
designing.
- Someone asks "what tech/framework does that site use?" or "how did they do
that animation/icon?".
- You are starting UI work and want a grounded, real-world reference instead of
guessing at colors and patterns.
Core Principles
- Evidence over guessing. Distinguish three confidence levels in every
report (see grading below). Never present an industry-known value as if you
scraped it, and never invent values.
- Observe, don't reverse-engineer internals. Inspect the public HTML/CSS/JS
the server sends. Do not decompile, do not probe authenticated product
internals, do not harvest private endpoints. Marketing/home pages are public
and fair game; a logged-in editor is not.
- Deliver working output. End every run with a concrete
tokens.css /
component snippet the user can drop in, not just an analysis essay.
Evidence Grading
Annotate each claim in the report so the user knows what to trust:
| Grade |
Meaning |
Example |
[observed] |
Read directly from served HTML/CSS this run |
inline #00b67a present in page styles |
[inferred] |
Reasoned from a visible pattern / public CSS variable |
gradient palette derived from two observed stops |
[known] |
Industry-public fact (Apple brand blue #0071e3) but NOT read this run |
mark it clearly as known, not scraped |
Workflow: URL → Design Tokens
1. Fetch the target URL
Use WebFetch (or curl for raw inspection) on the public page.
2. Extract the five dimensions
Gather raw evidence into a working notes table. Extract from served HTML/CSS,
not from memory:
A. Colors — scan inline styles and stylesheets for #hex and rgb(...).
Count frequency; repeated high-frequency hexes are the real brand tokens.
Exclude image-data noise (long data-URI blobs, image palette).
B. Typography — look for @font-face, font-family, and font-loading
URLs (fonts.googleapis.com, /wss/fonts, etc.).
C. Components — read class names and structure for nav, buttons, cards,
hero, footer, galleries. Note naming conventions (ac-*, globalnav-*,
product-*).
D. Icons & animation — inline <svg> vs icon fonts vs icon libs; classes
hinting at scroll/motion (*-chevron-icon, -dotnav-, parallax); tech
hints (WebGL, three, canvas).
E. Tech stack — framework fingerprints: __NEXT_DATA__//_next/
(Next.js), data-reactroot/react (React), generator meta (Joomla/Wix/…),
vite/webpack chunks, type="module" crossorigin.
F. Interaction & motion — the "feel" layer. Colors/fonts alone never
reproduce a site. Dig the actual CSS rules shipped with the page:
- Look for a
<style> block in the HTML — it can be 100 KB+ of the real
design (many sites inline it). Extract it and search it.
- Hover/focus/active: what property actually changes (background color?
opacity? transform? filter)? Copy the rule + value.
- Transitions: the
transition: shorthand and duration (Awwwards =
.3s everywhere). Global rhythm matters.
- Buttons: default bg vs hover bg hexes;
:focus treatment
(outline:none + bg swap is a common premium pattern).
- Motion vocabulary:
@keyframes names + what they animate; when motion
is used (loading/status) vs decorative; speeds.
- Image hover:
scale() / translateY / drop-shadow on the media —
the #1 "expensive feel" detail.
- Link underline tricks: two-tone
background-size slide, vs width-grow,
vs simple border.
- Page-transition / navigation: is there a loader overlay, route-change
fade, or is it plain
<a target=_blank> out-links (Awwwards cards link OUT
to the work's own site — no SPA route)? Don't assume SPA transitions exist.
G. Typography rhythm — beyond the font name: exact body font-size / line-height / font-weight, heading weights (do they stop at 600?), the
clamp() formula for display type, -webkit-font-smoothing, uppercase-label
styling. Dense, small-type editorial rhythm is often the real brand.
H. Information architecture / content layout — the "arrangement" layer.
A clone fails if nav/footer/content blocks aren't arranged like the source.
Extract the real structure, not just styling:
- Top nav: the actual primary items in order (Awwwards: Sites ·
Collections · Elements · Academy · Jobs · Market · Directory), the logo,
right-side actions (Log in / submit). Per-item typography + spacing
(
padding-inline, height), the --hm-* color tokens, and data-count
badges (Nominees "48K").
- Dropdown/mega-menu: does hovering/clicking open a full-width panel?
Its bg (
#ededed), min-height (~450px), rounded bottom corners, number
of columns, in-panel link size (14px/300), whether a data count or
sub-panel appears on the right.
- Footer: the column structure (brand block + product/company/support/
social columns), which legal links exist in the bottom row (About Us,
Contact Us, FAQs, Cookies Policy, Privacy Policy, Legal Terms), dark vs
light bg, small uppercase column headers.
- Header height token (
--header-height:54px vs 71px) and whether the
open state swaps the whole header background to the panel color.
3. Grade each finding ([observed]/[inferred]/[known])
4. Before writing: check for a self-reproducing "recipe"
If you can derive ONE concrete rule that reproduces the site's feel (e.g.
"body 14px / line-height 200% / weight 300; headings 600; hover = bg swap to a
darker neutral; one accent used once"), write it as an explicit Recipe line.
A color list without a recipe is not enough to clone the look.
5. Write the report + tokens
Produce the five-part report AND a tokens.css block:
/* tokens.css — [Site Name] */
:root {
/* A. Color */
--brand-primary: #00b67a; /* [observed] */
--brand-dark: #1a1b1c; /* [observed] */
--brand-accent: #fe7651; /* [observed] */
--surface: #fff;
--text: #1a1b1c;
--radius: 12px;
/* B. Type */
--font-sans: "Roboto", Helvetica, Arial, sans-serif; /* [observed] */
--font-display: var(--font-sans);
}
Then a short component recipe (nav / primary button / card) using those tokens.
Report Structure (ALWAYS use this template)
# Design Language — <Site>
## 1. Color system
primary / dark / accent / surface / text, each with hex + evidence grade
## 2. Typography (rhythm, not just names)
families + exact body font-size/line-height/weight + heading weights +
clamp() formulas + smoothing + uppercase-label styling
## 3. Interaction & motion — HOW it responds
transition duration/rhythm; hover/focus/active property changes (bg? opacity?
transform?) with hexes; @keyframes vocabulary; link-underline trick; image
hover treatment; button default→hover hexes; page-transition/navigation
behavior (loader? SPA? plain out-links?)
## 4. Components
nav, buttons, hero, cards, footer + observable class-naming patterns
## 5. Information architecture / content layout (the arrangement)
top-nav items in real order + data-count badges; dropdown/mega-menu (bg,
min-height, columns, full-width?); header height + open-state bg swap;
footer column structure (brand/product/company/support/social) + bottom legal
links (About/Contact/FAQs/Cookies/Privacy/Terms); section hierarchy (hero→tabs
→grid)
## 6. Icons & animation
inline-svg vs icon lib; motion classes; WebGL/canvas presence
## 7. Tech stack
framework, builder, SSR/CSR evidence
## 8. Recipe (one rule that reproduces the feel)
e.g. "body 14px/200%/300; headings 600; .3s transitions; hover = bg swap;
one accent; uppercase 12px gray labels"
## → Copy-paste tokens
tokens.css + a component recipe (button/card) using those tokens + the Recipe
Replication Quality Gate
A report is NOT done until these are answerable from it:
Known Reference Patterns
For brand archetypes you will meet repeatedly, references/ holds distilled
observations. Read the relevant file only when the site matches:
references/apple.md — Apple: extreme minimalism, SF Pro system type,
inline SVG, scroll-driven motion, no heavy framework.
references/flexclip.md — FlexClip: dark tool brand (ink #1a1b1c) with
multi-accent system (green/orange/blue), Joomla shell + Next.js app.
references/flourish.md — Flourish: data-viz SaaS, purple/blue duo,
self-built viz core, Next.js marketing.
references/awwwards.md — Awwwards: monochrome + one orange (#fa5d29),
body 14px/200%/300, headings 600, .3s transitions, hover = bg swap to
#383838, full-width dropdown nav, dark multi-column footer with
About/Contact/FAQs/Cookies/legal row.
When a site is NOT one of these, reverse it fresh per the workflow above; do
not force it into a bucket.
Style Notes
- Be specific with evidence: cite the selector/class where you saw a value.
- If a page is a marketing shell, say so and flag that the real product editor
is a deeper, separate surface you did not inspect.
- If you cannot reach the site or extract anything, say that plainly and
propose a fallback (Internet Archive, or user-supplied screenshot) instead of
fabricating.
1---2name: brand-design-language-reverse3description: Reverse-engineer the design language of any live website into structured, immediately-usable CSS design tokens, interaction/motion rules, and a feel- reproducing "recipe". Feed it a URL (Apple, FlexClip, Flourish, Stripe, Linear, any brand or SaaS site) and it produces a full breakdown — color system, typography rhythm (exact body line-height/weight, heading weights, clamp formulas), interaction & motion (hover/focus property changes, transition duration, keyframes, image-hover treatment, link-underline tricks, page-transition behavior), components, icon/animation technique, tech stack — plus ready-to-copy tokens and a replication quality gate. Colors alone never clone a site; this digs the CSS rules that make it *feel* right. MAKE SURE to use this skill whenever the user wants to: study a real site's design, copy the look/feel/colors/fonts of a competitor or admired brand, extract a brand's visual language before rebuilding it in React/CSS, compare how different products do UI, or turn an existing brand into4---5
6# Brand Design Language Reverse
7
8Turn any live site into a copy-paste design system. Reads a real URL, extracts
9what is observable (colors, fonts, component patterns, icon/animation
10technique, framework), and outputs a five-part report ending in usable CSS
11tokens. Analysis + delivery in one pass.
12
13## When to Use
14
15- You admire a brand/product and want to recreate its visual feel in your own
16 project (landing, dashboard, component).
17- You need a competitor's palette/type/components as a reference before
18 designing.
19- Someone asks "what tech/framework does that site use?" or "how did they do
20 that animation/icon?".
21- You are starting UI work and want a grounded, real-world reference instead of
22 guessing at colors and patterns.
23
24## Core Principles
25
261. **Evidence over guessing.** Distinguish three confidence levels in every
27 report (see grading below). Never present an industry-known value as if you
28 scraped it, and never invent values.
292. **Observe, don't reverse-engineer internals.** Inspect the public HTML/CSS/JS
30 the server sends. Do not decompile, do not probe authenticated product
31 internals, do not harvest private endpoints. Marketing/home pages are public
32 and fair game; a logged-in editor is not.
333. **Deliver working output.** End every run with a concrete `tokens.css` /
34 component snippet the user can drop in, not just an analysis essay.
35
36## Evidence Grading
37
38Annotate each claim in the report so the user knows what to trust:
39
40| Grade | Meaning | Example |
41|-------|---------|---------|
42| `[observed]` | Read directly from served HTML/CSS this run | inline `#00b67a` present in page styles |
43| `[inferred]` | Reasoned from a visible pattern / public CSS variable | gradient palette derived from two observed stops |
44| `[known]` | Industry-public fact (Apple brand blue #0071e3) but NOT read this run | mark it clearly as known, not scraped |
45
46## Workflow: URL → Design Tokens
47
48### 1. Fetch the target URL
49
50Use `WebFetch` (or `curl` for raw inspection) on the public page.
51
52### 2. Extract the five dimensions
53
54Gather raw evidence into a working notes table. Extract from served HTML/CSS,
55not from memory:
56
57- **A. Colors** — scan inline styles and stylesheets for `#hex` and `rgb(...)`.
58 Count frequency; repeated high-frequency hexes are the real brand tokens.
59 Exclude image-data noise (long data-URI blobs, image palette).
60- **B. Typography** — look for `@font-face`, `font-family`, and font-loading
61 URLs (`fonts.googleapis.com`, `/wss/fonts`, etc.).
62- **C. Components** — read class names and structure for nav, buttons, cards,
63 hero, footer, galleries. Note naming conventions (`ac-*`, `globalnav-*`,
64 `product-*`).
65- **D. Icons & animation** — inline `<svg>` vs icon fonts vs icon libs; classes
66 hinting at scroll/motion (`*-chevron-icon`, `-dotnav-`, `parallax`); tech
67 hints (WebGL, `three`, canvas).
68- **E. Tech stack** — framework fingerprints: `__NEXT_DATA__`/`/_next/`
69 (Next.js), `data-reactroot`/`react` (React), generator meta (Joomla/Wix/…),
70 `vite`/`webpack` chunks, `type="module" crossorigin`.
71
72- **F. Interaction & motion — the "feel" layer.** Colors/fonts alone never
73 reproduce a site. Dig the actual CSS rules shipped with the page:
74 - Look for a `<style>` block in the HTML — it can be 100 KB+ of the real
75 design (many sites inline it). Extract it and search it.
76 - **Hover/focus/active**: what property actually changes (background color?
77 `opacity`? `transform`? `filter`)? Copy the rule + value.
78 - **Transitions**: the `transition:` shorthand and duration (Awwwards =
79 `.3s` everywhere). Global rhythm matters.
80 - **Buttons**: default bg vs hover bg hexes; `:focus` treatment
81 (`outline:none` + bg swap is a common premium pattern).
82 - **Motion vocabulary**: `@keyframes` names + what they animate; when motion
83 is used (loading/status) vs decorative; speeds.
84 - **Image hover**: `scale()` / `translateY` / `drop-shadow` on the media —
85 the #1 "expensive feel" detail.
86 - **Link underline tricks**: two-tone `background-size` slide, vs width-grow,
87 vs simple border.
88 - **Page-transition / navigation**: is there a loader overlay, route-change
89 fade, or is it plain `<a target=_blank>` out-links (Awwwards cards link OUT
90 to the work's own site — no SPA route)? Don't assume SPA transitions exist.
91- **G. Typography rhythm** — beyond the font name: exact body `font-size /
92 line-height / font-weight`, heading weights (do they stop at 600?), the
93 `clamp()` formula for display type, `-webkit-font-smoothing`, uppercase-label
94 styling. Dense, small-type editorial rhythm is often the real brand.
95
96- **H. Information architecture / content layout — the "arrangement" layer.**
97 A clone fails if nav/footer/content blocks aren't arranged like the source.
98 Extract the real structure, not just styling:
99 - **Top nav**: the actual primary items in order (Awwwards: Sites ·
100 Collections · Elements · Academy · Jobs · Market · Directory), the logo,
101 right-side actions (Log in / submit). Per-item typography + spacing
102 (`padding-inline`, height), the `--hm-*` color tokens, and **data-count
103 badges** (Nominees "48K").
104 - **Dropdown/mega-menu**: does hovering/clicking open a full-width panel?
105 Its bg (`#ededed`), `min-height` (~450px), rounded bottom corners, number
106 of columns, in-panel link size (14px/300), whether a data count or
107 sub-panel appears on the right.
108 - **Footer**: the column structure (brand block + product/company/support/
109 social columns), which legal links exist in the bottom row (About Us,
110 Contact Us, FAQs, Cookies Policy, Privacy Policy, Legal Terms), dark vs
111 light bg, small uppercase column headers.
112 - **Header height token** (`--header-height:54px` vs `71px`) and whether the
113 open state swaps the whole header background to the panel color.
114
115### 3. Grade each finding (`[observed]/[inferred]/[known]`)
116
117### 4. Before writing: check for a self-reproducing "recipe"
118
119If you can derive ONE concrete rule that reproduces the site's feel (e.g.
120"body 14px / line-height 200% / weight 300; headings 600; hover = bg swap to a
121darker neutral; one accent used once"), write it as an explicit **Recipe** line.
122A color list without a recipe is not enough to clone the look.
123
124### 5. Write the report + tokens
125
126Produce the five-part report AND a `tokens.css` block:
127
128```css
129/* tokens.css — [Site Name] */
130:root {
131 /* A. Color */
132 --brand-primary: #00b67a; /* [observed] */
133 --brand-dark: #1a1b1c; /* [observed] */
134 --brand-accent: #fe7651; /* [observed] */
135 --surface: #fff;
136 --text: #1a1b1c;
137 --radius: 12px;
138 /* B. Type */
139 --font-sans: "Roboto", Helvetica, Arial, sans-serif; /* [observed] */
140 --font-display: var(--font-sans);
141}
142```
143
144Then a short component recipe (nav / primary button / card) using those tokens.
145
146## Report Structure (ALWAYS use this template)
147
148```
149# Design Language — <Site>
150
151## 1. Color system
152primary / dark / accent / surface / text, each with hex + evidence grade
153
154## 2. Typography (rhythm, not just names)
155families + exact body font-size/line-height/weight + heading weights +
156clamp() formulas + smoothing + uppercase-label styling
157
158## 3. Interaction & motion — HOW it responds
159transition duration/rhythm; hover/focus/active property changes (bg? opacity?
160transform?) with hexes; @keyframes vocabulary; link-underline trick; image
161hover treatment; button default→hover hexes; page-transition/navigation
162behavior (loader? SPA? plain out-links?)
163
164## 4. Components
165nav, buttons, hero, cards, footer + observable class-naming patterns
166
167## 5. Information architecture / content layout (the arrangement)
168top-nav items in real order + data-count badges; dropdown/mega-menu (bg,
169min-height, columns, full-width?); header height + open-state bg swap;
170footer column structure (brand/product/company/support/social) + bottom legal
171links (About/Contact/FAQs/Cookies/Privacy/Terms); section hierarchy (hero→tabs
172→grid)
173
174## 6. Icons & animation
175inline-svg vs icon lib; motion classes; WebGL/canvas presence
176
177## 7. Tech stack
178framework, builder, SSR/CSR evidence
179
180## 8. Recipe (one rule that reproduces the feel)
181e.g. "body 14px/200%/300; headings 600; .3s transitions; hover = bg swap;
182one accent; uppercase 12px gray labels"
183
184## → Copy-paste tokens
185tokens.css + a component recipe (button/card) using those tokens + the Recipe
186```
187
188## Replication Quality Gate
189
190A report is NOT done until these are answerable from it:
191- [ ] I know the exact body font-size, line-height, weight (not just the font).
192- [ ] I know what happens on hover of a button AND a card image (property + hex
193 / transform value), not just that "there is hover".
194- [ ] I know the global transition duration.
195- [ ] I can write the site's look from tokens + recipe alone.
196- [ ] I know whether "detail pages" are SPA transitions, a loader overlay, or
197 plain external links — I didn't assume.
198- [ ] I know the top-nav items in real order + whether items carry data-count
199 badges or open a full-width dropdown.
200- [ ] I know the footer column structure and which legal links sit in the
201 bottom row (About/Contact/FAQs/Cookies) — not just "there is a footer".
202- [ ] I can reproduce the header/footer/dropdown *arrangement*, not just colors.
203
204## Known Reference Patterns
205
206For brand archetypes you will meet repeatedly, `references/` holds distilled
207observations. Read the relevant file only when the site matches:
208
209- `references/apple.md` — Apple: extreme minimalism, SF Pro system type,
210 inline SVG, scroll-driven motion, no heavy framework.
211- `references/flexclip.md` — FlexClip: dark tool brand (ink #1a1b1c) with
212 multi-accent system (green/orange/blue), Joomla shell + Next.js app.
213- `references/flourish.md` — Flourish: data-viz SaaS, purple/blue duo,
214 self-built viz core, Next.js marketing.
215- `references/awwwards.md` — Awwwards: monochrome + one orange (#fa5d29),
216 body 14px/200%/300, headings 600, .3s transitions, hover = bg swap to
217 #383838, full-width dropdown nav, dark multi-column footer with
218 About/Contact/FAQs/Cookies/legal row.
219
220When a site is NOT one of these, reverse it fresh per the workflow above; do
221not force it into a bucket.
222
223## Style Notes
224
225- Be specific with evidence: cite the selector/class where you saw a value.
226- If a page is a marketing shell, say so and flag that the real product editor
227 is a deeper, separate surface you did not inspect.
228- If you cannot reach the site or extract anything, say that plainly and
229 propose a fallback (Internet Archive, or user-supplied screenshot) instead of
230 fabricating.