Design Reference Analysis
Reference this skill when reverse-engineering any website or design reference into implementation-grade specs. Follow all 8 steps in order.
The 8-Step Process
Step 1: Identify the Aesthetic
Capture the overall vibe in one sentence. Examples:
- "Pure black bg, Apple-inspired, liquid glass morphism, premium serif + sans-serif"
- "Cinematic, minimalist, dark, architectural. Video backgrounds, vignette overlays"
- "Light hero → dark via diagonal divider, system sans-serif, video blend modes"
Then note the tech stack:
Tech: React + [framework] + TypeScript + Tailwind + [UI library] + [animation library]
Fonts: [heading font] + [body font] + [mono font if present]
Step 2: Extract the Color System
Pull exact values using browser DevTools (Computed Styles panel).
Minimum extraction:
--bg: /* Page background */
--surface: /* Card/panel background */
--elevated: /* Raised elements */
--border: /* Dividers, borders */
--muted: /* Lowest text */
--secondary: /* Supporting text */
--primary: /* Main text */
--accent: /* Brand/action color */
Plus any gradients:
--accent-gradient: linear-gradient(90deg, #start, #end);
Never write "dark gray" or "light blue" — always hex, rgba, or HSL.
Step 3: Map the Typography
For every text element on the page, extract:
| Element |
Font Family |
Weight |
Size (Desktop) |
Size (Mobile) |
Tracking |
Leading |
Color |
Common elements to capture:
- Hero headline, sub-headline, CTA text
- Section headings (H2, H3)
- Body text, captions, labels
- Nav links, footer links
- Button text, badge text
- Stat values, code/mono text
Check font-feature-settings and font-variant-numeric for tabular numbers.
Step 4: Document Layout & Spacing
For every section:
Section: [name]
Container: [max-width] [padding]
Grid: [columns per breakpoint] [gap]
Section spacing: [padding-top/bottom]
Capture:
- Container max-width (inspect the outermost content wrapper)
- Grid column counts at each breakpoint
- Gap values between grid items
- Section vertical padding
- Card internal padding
- Navigation height and position (fixed/sticky)
Step 5: Catalog Effects
For every visual effect:
| Effect |
Element |
Complete CSS |
Look for:
- Glass/blur effects (
backdrop-filter, background-blend-mode)
- Gradient borders (::before pseudo-elements with mask-composite)
- Box shadows (multiple shadows, inset shadows, glow effects)
- Vignettes (radial-gradient overlays)
- Patterns (halftone, dot patterns, grid patterns)
- Video overlays (gradient fades, color tints)
Extract the FULL CSS — including pseudo-elements, mask properties, and animation keyframes.
Step 6: Record Animations
For every animation:
| Animation |
Trigger |
From |
To |
Duration |
Easing |
Delay |
Check for:
- Page load entrances (GSAP, Framer Motion)
- Scroll-triggered reveals (IntersectionObserver, ScrollTrigger)
- Hover effects (scale, translateY, color, shadow)
- Parallax (scroll-linked transforms)
- Marquee/ticker (infinite horizontal scroll)
- Loading screen (counter, progress, word rotation)
- Layout animations (shared element transitions)
Inspect the element's transition, animation, and computed transform during interaction.
Step 7: Map the Z-Index Stack
From DevTools, inspect z-index on all positioned elements:
z-0: Background, video
z-[1-3]: Overlays, dividers
z-10: Content
z-20: Sticky elements
z-30: Dropdowns
z-40-50: Navigation, modals
z-[100]: Lightbox
z-[9999]: Loading screen
Step 8: Compile the Spec
Assemble into implementation-grade format:
# [Reference Name] — Design Analysis
## Aesthetic
[One-sentence vibe + tech stack + fonts]
## Design System
[Color variables as CSS custom properties]
## Typography
[Full type scale table]
## Layout
[Section-by-section breakdown with exact Tailwind]
## Effects
[Complete CSS for every visual effect]
## Animations
[Framer Motion or GSAP code for every animation]
## Z-Index Map
[Layer stack]
## Responsive
[What changes at sm/md/lg/xl]
Quality Gate (7 Patterns)
Before submitting any reference analysis, verify:
- Every color is exact.
#0F0F0F, rgba(255,255,255,0.01), text-white/60. Never "dark" or "muted" without a value.
- Every spacing uses the system.
px-5 py-4 md:px-12 md:py-6, gap-12, mb-8. Never "some padding."
- Effects have complete CSS. Including pseudo-elements, masks, filters. Copy-pasteable.
- Animations have exact parameters. Duration, delay, easing, from/to values.
- Responsive is per-breakpoint.
text-[2.75rem] md:text-[5.5rem]. State exactly what changes.
- Z-index is explicit. Every layered element has a documented z-value.
- Typography is fully specified. Family + weight + size + responsive sizes + tracking + leading + color.
10-Question Quality Check
Run on every completed analysis:
- What color? → hex or Tailwind class with opacity
- What font? → family, weight, size per breakpoint, tracking, leading, style
- What spacing? → exact Tailwind values with responsive breakpoints
- What effect? → complete CSS including pseudo-elements, filters, shadows
- What animation? → exact Framer Motion or GSAP props
- What layout? → grid/flex columns per breakpoint, gap, max-width
- What z-order? → explicit z-index for every layered element
- What on hover? → exact state change
- What on mobile? → exactly what changes at sm/md/lg/xl
- What accessibility? → ARIA labels, keyboard focus, reduced motion
If any question can't be answered from the spec, the analysis isn't done.
DevTools Quick Reference
- Colors: Right-click element → Inspect → Computed →
background-color, color, border-color
- Fonts: Computed →
font-family, font-size, font-weight, letter-spacing, line-height
- Spacing: Computed →
padding, margin, gap (or inspect the box model diagram)
- Effects: Computed →
backdrop-filter, box-shadow, background-image, filter
- Animations: Elements panel → check for
transition, animation, transform in Styles
- Z-index: Computed →
z-index (check parent stacking contexts too)
- Responsive: Toggle device toolbar, check at 375/768/1024/1280/1920px
Rules
- Never analyze a reference without completing all 8 steps.
- Never submit a reference with vague descriptions — every value must be exact.
- Always verify by comparing your spec against the original at each breakpoint.
- Save completed analyses to
design-specs/references/ for future reuse.
1---2name: design-reference-analysis3description: 8-step reverse-engineering process for any website into implementation-grade specs. Use when analyzing a reference site, cloning a design, extracting design tokens, or turning a visual reference into a build-ready specification.4---56# Design Reference Analysis78Reference this skill when reverse-engineering any website or design reference into implementation-grade specs. Follow all 8 steps in order.910## The 8-Step Process1112### Step 1: Identify the Aesthetic1314Capture the overall vibe in one sentence. Examples:15- "Pure black bg, Apple-inspired, liquid glass morphism, premium serif + sans-serif"16- "Cinematic, minimalist, dark, architectural. Video backgrounds, vignette overlays"17- "Light hero → dark via diagonal divider, system sans-serif, video blend modes"1819Then note the tech stack:20```21Tech: React + [framework] + TypeScript + Tailwind + [UI library] + [animation library]22Fonts: [heading font] + [body font] + [mono font if present]23```2425---2627### Step 2: Extract the Color System2829Pull exact values using browser DevTools (Computed Styles panel).3031**Minimum extraction:**32```css33--bg: /* Page background */34--surface: /* Card/panel background */35--elevated: /* Raised elements */36--border: /* Dividers, borders */37--muted: /* Lowest text */38--secondary: /* Supporting text */39--primary: /* Main text */40--accent: /* Brand/action color */41```4243**Plus any gradients:**44```css45--accent-gradient: linear-gradient(90deg, #start, #end);46```4748Never write "dark gray" or "light blue" — always hex, rgba, or HSL.4950---5152### Step 3: Map the Typography5354For every text element on the page, extract:5556| Element | Font Family | Weight | Size (Desktop) | Size (Mobile) | Tracking | Leading | Color |57|---------|-------------|--------|----------------|---------------|----------|---------|-------|5859**Common elements to capture:**60- Hero headline, sub-headline, CTA text61- Section headings (H2, H3)62- Body text, captions, labels63- Nav links, footer links64- Button text, badge text65- Stat values, code/mono text6667Check `font-feature-settings` and `font-variant-numeric` for tabular numbers.6869---7071### Step 4: Document Layout & Spacing7273For every section:74```75Section: [name]76Container: [max-width] [padding]77Grid: [columns per breakpoint] [gap]78Section spacing: [padding-top/bottom]79```8081**Capture:**82- Container max-width (inspect the outermost content wrapper)83- Grid column counts at each breakpoint84- Gap values between grid items85- Section vertical padding86- Card internal padding87- Navigation height and position (fixed/sticky)8889---9091### Step 5: Catalog Effects9293For every visual effect:9495| Effect | Element | Complete CSS |96|--------|---------|-------------|9798**Look for:**99- Glass/blur effects (`backdrop-filter`, `background-blend-mode`)100- Gradient borders (::before pseudo-elements with mask-composite)101- Box shadows (multiple shadows, inset shadows, glow effects)102- Vignettes (radial-gradient overlays)103- Patterns (halftone, dot patterns, grid patterns)104- Video overlays (gradient fades, color tints)105106Extract the FULL CSS — including pseudo-elements, mask properties, and animation keyframes.107108---109110### Step 6: Record Animations111112For every animation:113114| Animation | Trigger | From | To | Duration | Easing | Delay |115|-----------|---------|------|-----|----------|--------|-------|116117**Check for:**118- Page load entrances (GSAP, Framer Motion)119- Scroll-triggered reveals (IntersectionObserver, ScrollTrigger)120- Hover effects (scale, translateY, color, shadow)121- Parallax (scroll-linked transforms)122- Marquee/ticker (infinite horizontal scroll)123- Loading screen (counter, progress, word rotation)124- Layout animations (shared element transitions)125126Inspect the element's `transition`, `animation`, and computed `transform` during interaction.127128---129130### Step 7: Map the Z-Index Stack131132From DevTools, inspect `z-index` on all positioned elements:133134```135z-0: Background, video136z-[1-3]: Overlays, dividers137z-10: Content138z-20: Sticky elements139z-30: Dropdowns140z-40-50: Navigation, modals141z-[100]: Lightbox142z-[9999]: Loading screen143```144145---146147### Step 8: Compile the Spec148149Assemble into implementation-grade format:150151```markdown152# [Reference Name] — Design Analysis153154## Aesthetic155[One-sentence vibe + tech stack + fonts]156157## Design System158[Color variables as CSS custom properties]159160## Typography161[Full type scale table]162163## Layout164[Section-by-section breakdown with exact Tailwind]165166## Effects167[Complete CSS for every visual effect]168169## Animations170[Framer Motion or GSAP code for every animation]171172## Z-Index Map173[Layer stack]174175## Responsive176[What changes at sm/md/lg/xl]177```178179---180181## Quality Gate (7 Patterns)182183Before submitting any reference analysis, verify:1841851. **Every color is exact.** `#0F0F0F`, `rgba(255,255,255,0.01)`, `text-white/60`. Never "dark" or "muted" without a value.1862. **Every spacing uses the system.** `px-5 py-4 md:px-12 md:py-6`, `gap-12`, `mb-8`. Never "some padding."1873. **Effects have complete CSS.** Including pseudo-elements, masks, filters. Copy-pasteable.1884. **Animations have exact parameters.** Duration, delay, easing, from/to values.1895. **Responsive is per-breakpoint.** `text-[2.75rem] md:text-[5.5rem]`. State exactly what changes.1906. **Z-index is explicit.** Every layered element has a documented z-value.1917. **Typography is fully specified.** Family + weight + size + responsive sizes + tracking + leading + color.192193---194195## 10-Question Quality Check196197Run on every completed analysis:1981991. What color? → hex or Tailwind class with opacity2002. What font? → family, weight, size per breakpoint, tracking, leading, style2013. What spacing? → exact Tailwind values with responsive breakpoints2024. What effect? → complete CSS including pseudo-elements, filters, shadows2035. What animation? → exact Framer Motion or GSAP props2046. What layout? → grid/flex columns per breakpoint, gap, max-width2057. What z-order? → explicit z-index for every layered element2068. What on hover? → exact state change2079. What on mobile? → exactly what changes at sm/md/lg/xl20810. What accessibility? → ARIA labels, keyboard focus, reduced motion209210**If any question can't be answered from the spec, the analysis isn't done.**211212---213214## DevTools Quick Reference215216- **Colors:** Right-click element → Inspect → Computed → `background-color`, `color`, `border-color`217- **Fonts:** Computed → `font-family`, `font-size`, `font-weight`, `letter-spacing`, `line-height`218- **Spacing:** Computed → `padding`, `margin`, `gap` (or inspect the box model diagram)219- **Effects:** Computed → `backdrop-filter`, `box-shadow`, `background-image`, `filter`220- **Animations:** Elements panel → check for `transition`, `animation`, `transform` in Styles221- **Z-index:** Computed → `z-index` (check parent stacking contexts too)222- **Responsive:** Toggle device toolbar, check at 375/768/1024/1280/1920px223224---225226## Rules227- Never analyze a reference without completing all 8 steps.228- Never submit a reference with vague descriptions — every value must be exact.229- Always verify by comparing your spec against the original at each breakpoint.230- Save completed analyses to `design-specs/references/` for future reuse.