Deep extraction.
Any URL. Full system.
Colors, type, spacing, motion, a11y, interactive states, exports.
designsnap crawls a live page with a headless browser, scans every element's computed styles, clusters values into tokens, scores the system's consistency, runs an accessibility audit, captures hover states, detects the spacing grid, and outputs to 5 formats in one command.
What it looks like
How it works
Eight steps. No AI inference. No screenshot parsing. Reading what the browser actually rendered.
the URL
+ fonts render
computed styles
@keyframes, @media
state changes
spacing grid
across 6 axes
one command
Consistency Score
Every extraction rates the design system's consistency across six dimensions. 0-100 per axis, averaged into an overall score. Helps you understand how systematic a design actually is before working with it.
Color Analysis
Clustering groups similar hex values by Euclidean distance in RGB space. Role inference assigns semantic labels based on lightness, saturation, and usage context. Harmony detection identifies the palette type (monochromatic, complementary, analogous, triadic). Pairing validation tests every fg/bg combination for WCAG AA/AAA compliance.
Grid System Detection
Spacing values from every padding, margin, and gap are tested against candidate base units (4px, 5px, 6px, 8px, 10px). The base with the highest adherence rate wins. Green bars = on grid. Red = off grid.
Interactive States
The cursor is programmatically moved over interactive elements. Style changes between default and hover states are captured as structured diffs. Hover the buttons below to see what designsnap records.
Motion & Animation
Transition durations, easing functions, animated properties, and @keyframes are extracted from stylesheets and computed styles. Builds a complete motion vocabulary for the design system.
150ms · 42 uses200ms · 28 uses300ms · 15 usesease · 36 usesease-in-out · 22 usescubic-bezier · 8 usesall · 30 usesopacity · 18 usestransform · 12 usesAccessibility Audit
Contrast ratios tested against WCAG 2.1 for every text element. Heading order validated. Landmark elements counted. Form labels checked. ARIA attributes inventoried. Focus styles detected.
Export Formats
One extraction, five output formats. Use --all to generate everything at once.
Install
npm install -g designsnap
| Flag | Description | Default |
|---|---|---|
-o, --output | Output file path | ./DESIGN.md |
--preview | Generate visual preview HTML | false |
--json | Output raw extracted data | false |
--dark | Extract dark mode tokens | false |
--responsive | Multi-viewport extraction | false |
--no-states | Skip hover/focus simulation | false |
--wait <ms> | Wait time for dynamic content | 3000 |
--tailwind | Export Tailwind config | false |
--css | Export CSS custom properties | false |
--tokens | Export Style Dictionary JSON | false |
--figma | Export Figma Tokens JSON | false |
--all | Export all formats | false |
Programmatic API
import { snap } from "designsnap" const result = await snap("https://example.com", { wait: 3000, extractDark: true, multiViewport: true, extractStates: true, }) result.markdown // DESIGN.md (14 sections) result.data.consistencyScore // { overall: 82, color: 90, ... } result.data.colorHarmony // { type: "analogous", ... } result.data.gridSystem // { base: 8, adherence: 78 } result.data.scaleRatio // { name: "Major Third", ratio: 1.25 } result.data.accessibility // { contrastIssues: [...], ... } result.data.motionSystem // { durations: {}, easings: {} } result.data.interactiveStates // { hover: [...], focus: [...] } result.exports.tailwind // Tailwind config string result.exports.css // CSS variables string result.exports.styleDictionary // Style Dictionary JSON result.exports.figmaTokens // Figma Tokens JSON
Framework Detection
designsnap scans CSS custom property naming patterns, class conventions, and meta tags to identify what framework or design system library a site is built with. Detects Tailwind, Bootstrap, Material UI, Chakra UI, Ant Design, Radix, shadcn/ui, Foundation, and Bulma with confidence scores.
System Completeness
Beyond consistency, designsnap checks 20 criteria that define a complete design system. Color roles, font pairs, type scale, heading hierarchy, spacing grid, component variants, motion tokens, dark mode, responsive breakpoints, focus styles, CSS variables, and icon system. You get a percentage and a checklist.
Diff Mode
Compare two design system extractions side by side. Useful for competitive analysis, redesign tracking, or detecting design drift between staging and production.
import { snapDiff } from "designsnap" const result = await snapDiff("https://site-a.com", "https://site-b.com") result.diffMarkdown // structured diff as markdown result.diffResult.summary // { colorsAdded: 3, colorsRemoved: 1, ... } result.diffResult.scores.overall // { a: 82, b: 75, delta: -7 } result.diffResult.colors.added // [{ hex: "#ff0000", role: "error" }] result.diffResult.gridSystem // { a: "8px (78%)", b: "4px (85%)" }
The diff covers colors, fonts, spacing, radii, shadows, components, breakpoints, grid system, consistency scores, and accessibility changes.
Disclaimer
Educational & Experimental Use Only
This tool is provided strictly for educational and experimental purposes. It reads publicly visible computed CSS values from rendered web pages, equivalent to what any browser's developer tools expose.
- No proprietary code, assets, or non-public information is accessed
- Extracted tokens represent publicly visible styling
- No ownership of any visual identity or brand is claimed
- Users are responsible for compliance with applicable terms of service
- Does not bypass any access controls, authentication, or rate limiting
- Output should not be used to create confusingly similar products or infringe trademarks
The author provides this tool as-is with no warranty. Use responsibly.