lucent-snow/style-extractor/style-extractor-2
Claude Code and agent skill by lucent-snow/style-extractor
- community
Checking that the SKILL.md file is still in the repository.
Extract evidence-based style guides and motion appendices from websites or web apps. Use when Codex needs reusable visual language, semantic tokens, component/state rules, runtime animation evidence, or style references that preserve design signal while stripping product-specific structure and content.
Install
npx vskill@latest install lucent-snow/style-extractor/style-extractor-2SKILL.md
Style Extractor (Web Style + Motion)
Extract a reusable design system from web UIs: colors, typography, spacing, components, states, and, when relevant, motion (timings, keyframes, delay chains, JS-driven behavior).
Core principle:
- Extract visual language and interaction rules, not the source product's information architecture.
- Keep what is reusable: tokens, component patterns, state changes, layout tendencies, motion cadence.
- Strip what is product-specific: business copy, app logic, navigation tree, feature taxonomy, marketing claims.
Output location (REQUIRED)
- Save all generated deliverables under:
%USERPROFILE%\\style-extractor\\ - Never write generated outputs under the skill folder (
.codex/skills/...) - Never dump screenshots, CSS, JS, and Markdown side-by-side in the root output directory
Each extraction must create a dedicated project folder:
Required deliverables for every extraction:
%USERPROFILE%\\style-extractor\\<project>-<style>\\guides\\style-guide.md%USERPROFILE%\\style-extractor\\<project>-<style>\\guides\\evidence-manifest.md%USERPROFILE%\\style-extractor\\<project>-<style>\\evidence\\
Required when motion is meaningful:
%USERPROFILE%\\style-extractor\\<project>-<style>\\guides\\motion-guide.md
Subdirectory rules:
guides/only for final Markdown deliverablesevidence/screenshots/only for PNG/JPG/WebP capturesevidence/assets/only for downloaded CSS/JS/SVG/font stylesheetsevidence/notes/only for raw dumps, runtime notes, traces, or helper text files- Root project folder should contain folders only; no loose screenshots or loose guide files
Use these reference files:
references/output-contract.md— required output structure and anti-patternsreferences/style-guide-template.md— required sections for the style guidereferences/motion-guide-template.md— required sections for the motion appendixreferences/evidence-manifest-template.md— required sections for the evidence manifest
References (quality bar)
references/9nine-visual-novel/— best-practice style + motion reference packagereferences/motherduck-design-system-reference/— strong static style reference package
What to learn from these references:
- keep the document dense enough to feel like a real reference manual
- preserve semantic token tables with representative raw values
- preserve component state matrices with concrete observed values
- preserve copy-paste examples and practical implementation notes when they materially help reuse
What not to copy blindly:
- long generic filler or repeated product intro
- raw-value dumping without semantic grouping
- excessive product-specific branding or IA detail
- sections that exist only to make the document look long, without adding reuse value
Required reference read-through (MANDATORY)
Before starting any extraction, read in this order: 1) references/output-contract.md 2) references/style-guide-template.md 3) references/motion-guide-template.md 4) references/evidence-manifest-template.md 5) all files under references/9nine-visual-novel/guides/ 6) all files under references/motherduck-design-system-reference/guides/
Reference package selection rule:
- motion-heavy, media-heavy, or section-transition-driven source → use
references/9nine-visual-novel/as the primary quality bar - static-structure-heavy source → read
references/motherduck-design-system-reference/
Do not start evidence collection, screenshotting, script execution, or drafting until both reference packages have been reviewed. Extraction is incomplete if the final deliverable does not explicitly state:
- that both reference packages were reviewed before extraction
- which package was used as the primary quality bar for the current target
Workflow
Phase 0 — Inputs
1) Project name + style/variant name 2) Sources: URL / web repo / both 3) Motion assessment: does the site have meaningful motion? (determines whether Phase 1B is needed) 4) Reuse target: web app / marketing site / desktop app / design reference only 5) Primary reference package selected: 9nine / MotherDuck
Before gathering evidence, decide which source traits belong in the reusable style and which should be excluded. Use this simple filter:
- Keep: tokens, spacing rhythm, typography hierarchy, density, component language, state treatment, motion cadence
- Adapt carefully: layout primitives, panel structure, navigation patterns, content density
- Discard: product copy, feature-specific flows, brand story, app-specific IA, domain-specific labels
Phase 0.5 — Read the reference package (REQUIRED)
Complete all of the following before Phase 1A:
- read
references/output-contract.md - read
references/style-guide-template.md - read
references/motion-guide-template.md - read
references/evidence-manifest-template.md - read
references/9nine-visual-novel/guides/style-guide.md - read
references/9nine-visual-novel/guides/motion-guide.md - read
references/9nine-visual-novel/guides/evidence-manifest.md - read
references/motherduck-design-system-reference/guides/style-guide.md - read
references/motherduck-design-system-reference/guides/motion-guide.md - read
references/motherduck-design-system-reference/guides/evidence-manifest.md - choose one of the two packages as the primary quality bar for the current extraction
If both packages are not read first, the extraction is invalid.
Phase 1A — Static evidence gathering
Step 1 — Open page & screenshots
Use Chrome MCP tools:
new_page/select_page/navigate_pagetake_screenshot(fullPage when helpful)
Minimum screenshot set: 1) baseline (full page/section) 2) navigation visible + active state 3) primary CTA: default + hover + pressed (if possible) 4) form controls: default + focus-visible (+ invalid if present) 5) modal/dialog open (if any)
Step 2 — Extract computed styles
Use evaluate_script to pull:
- CSS Variables (
:rootand scoped) - Colors, typography, spacing from
getComputedStyle - Component state matrices (default / hover / active / focus-visible / disabled)
Step 3 — Pull CSS/JS bodies
list_network_requests/get_network_requestto download CSS files- Useful for extracting
@keyframes, CSS variables, and media queries offline
Minimum static evidence to keep in ...\\evidence\\:
- screenshots under
evidence/screenshots/ - downloaded CSS/JS under
evidence/assets/ - notes and selector inventories under
evidence/notes/
Phase 1B — Motion evidence gathering (when site has meaningful motion)
Static and motion are independent paths. Skip this phase if the site has no meaningful animation.
Follow these steps in priority order. Each level captures more; stop when you have enough evidence.
Level 1 — @keyframes extraction (no interaction needed)
Paste scripts/transition-scanner.js, then call:
Returns all @keyframes definitions from stylesheets. This is deterministic and complete—no timing issues.
Level 2 — CSS transition scan (no interaction needed)
Same script, call:
Returns every element's transition-property / duration / easing / delay + clusters by pattern. This shows what can animate even if nothing is animating yet.
Level 3 — Interaction diff (requires triggering interactions)
This captures the dominant pattern on modern sites: JS sets inline style → CSS transition interpolates.
Paste scripts/interaction-diff.js, then:
Returns:
diffs— per-element before/after inline style + computed style changesduringAnimations—document.getAnimations()captured within the 50ms transition windowafterAnimations— what's still running after settle
Key insight: document.getAnimations() only returns results during active CSS transitions. The capture window is typically <300ms. This script captures within that window automatically.
Repeat for 3+ key interactions (section change, component switch, hover, scroll).
Level 4 — JS library extraction
Paste scripts/library-detect.js to detect third-party animation libraries.
Returns { globals, instances, dom, fingerprints, assets }.
Key: many modern sites bundle libraries as modules, so window.Swiper etc. may be undefined. The script also checks:
el.swiper— Swiper instance on DOM elements (works when bundled)[data-aos-*]— AOS attributes on elements[data-framer-*]— Framer Motion attributes- Asset URL hints (script/stylesheet URLs containing library names)
When instances are found, configs are extracted directly (Swiper params, AOS settings, etc.).
Level 5 — rAF sampling (fallback for opaque JS motion)
When the above levels don't capture enough (e.g., hand-written requestAnimationFrame loops), use scripts/motion-tools.js:
Records computed style values every frame. Useful for inferring duration and property ranges, but cannot capture easing or intent.
Level 6 — Performance trace (optional, complex motion)
For very complex orchestrated animations:
performance_start_trace/performance_stop_trace- Analyze via
performance_analyze_insight
Phase 2 — Abstraction and de-productization (REQUIRED)
Do not write the guide as a product teardown. Convert evidence into reusable rules.
For each major finding, classify it explicitly:
Reusable: can be copied directly as a token, component rule, state rule, or motion primitiveAdapted: useful idea, but needs reshaping for the target product typeDiscarded: source-specific structure or content that should not be copied
Examples:
- A cloud-blue surface palette:
Reusable - A docs sidebar + article rail layout:
Adapted - An AI chat app's prompt-library IA:
Discarded - A marketing hero with video background:
AdaptedorDiscarded, depending on target
Phase 3 — Semantic tokenization (REQUIRED)
Do not stop at raw values. Convert repeated values into semantic tokens: 1) cluster repeated values (colors/radii/durations/easings/shadows) 2) map usage (CTA/text/border/overlay/active/etc.) 3) name by intent (e.g., --color-accent, --motion-300, nav.switch.iconColor) 4) keep evidence alongside tokens (raw values + element/selector/screenshot)
Phase 4 — Write the deliverables
Start from the reference templates. Do not improvise the top-level structure unless the source clearly requires one.
Deliverable A — Style guide (REQUIRED)
Follow references/style-guide-template.md.
This file must answer:
- what the style feels like
- which tokens define it
- how components behave across states
- what layout tendencies are reusable
- how to rebuild the visual language without copying the product itself
Deliverable B — Motion guide (REQUIRED when dynamic)
Follow references/motion-guide-template.md.
This file must answer:
- what moves
- what triggers motion
- durations, delays, easing, and keyframes
- whether motion is CSS-driven, transition-driven, or JS/library-driven
- which motion primitives are reusable in another product
Deliverable C — Evidence manifest (REQUIRED)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSKILL.md
Popularity
- Repository stars
- 324
- Repository forks
- 18
- 7-day trend score
- 29
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/lucent-snow/style-extractor/style-extractor-2)