Skip to content
Back to skills

style-extractor

ASecurity

Extract evidence-based web UI style + motion guides (Markdown, optional HTML prototype).

  • 442 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
toolsperformance

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add Lucent-Snow/style-extractor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of style-extractor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for style-extractor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lucent-snow-style-extractor/badge)](https://www.skillsdirectory.com/skills/lucent-snow-style-extractor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: style-extractor
description: Extract evidence-based web UI style + motion guides (Markdown, optional HTML prototype).
---

# Style Extractor (Web Style + Motion)

This skill extracts a reusable design system from **web UIs**: colors, typography, spacing, components, and—when the UI is dynamic—motion (runtime timings, keyframes, delay chains).

## Output location (REQUIRED)

- Save all generated deliverables under: `%USERPROFILE%\\style-extractor\\`
- Never write generated outputs under the skill folder (`.codex/skills/...`)

Recommended structure:
- `...\\<project>-<style>-style.md`
- `...\\<project>-<style>-evidence\\` (screenshots / css / js / motion / traces)

## References (quality bar)

- `references/endfield-design-system-style.md` — best-practice **style + motion** reference
- `references/motherduck-design-system-style.md` — strong **static style** reference

---

## Workflow

### Phase 0 — Inputs

1) Project name + style/variant name  
2) Sources: URL / web repo / both  
3) Motion importance: if meaningful motion exists, Strategy A2/A3 is required

### Phase 1 — Evidence gathering (do this first)

#### Strategy A — Live website (Chrome MCP)

Use:
- `new_page` / `select_page` / `navigate_page`
- `take_screenshot` (fullPage when helpful)
- `evaluate_script`
- `list_network_requests` / `get_network_request` (pull CSS/JS bodies when possible)
- `performance_start_trace` / `performance_stop_trace` (optional for complex motion)

#### Strategy A1.5 — Screenshot-assisted evidence (HIGHLY RECOMMENDED)

Screenshots don’t replace computed styles, but they improve:
- semantic intent (primary vs secondary vs disabled)
- gated/hard-to-freeze states (login, region locks, scroll-only reveals)
- visual-only details (textures, subtle gradients, composition)

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)
6) motion sequence (2–4 shots): ~0ms / ~120ms / ~300–600ms after trigger

#### Strategy A2 — Runtime motion evidence (REQUIRED for dynamic sites)

Computed styles alone won’t reconstruct timing quality. Capture runtime motion via:
- `document.getAnimations({ subtree: true })`
- per animation: `duration/delay/fill/iterations/easing` + moved properties (`opacity/transform/color/...`)
- when possible: full keyframes via `animation.effect.getKeyframes()`

Minimum capture loop:
1) baseline snapshot
2) trigger interaction (click/scroll/hover/focus)
3) snapshots at `t0`, `t80–120ms`, `t300–600ms`

Reusable snippets (paste into `evaluate_script`):
- `scripts/motion-tools.js`
- `scripts/library-detect.js`
- `scripts/extract-keyframes.py` (offline keyframes extraction from downloaded `.css`)

#### Strategy A3 — JS-driven motion / third-party libs (IMPORTANT)

If motion is JS-driven (e.g., Swiper/carousels), `document.getAnimations()` may miss the main movement.

Detect via:
- DOM/CSS fingerprints (`.swiper-wrapper/.swiper-slide`, `--swiper-theme-color`)
- asset hints (script/style URLs containing `swiper/gsap/lottie/three`)
- globals (`window.Swiper`, `window.gsap`, ...)

Fallback evidence:
- per-frame sampling (rAF loop ~700–900ms): `transform/opacity/...`
- or a Performance trace

### Phase 2 — 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 3 — Write the style guide (recommended sections)

Minimum recommended sections:
1) Overview
2) Design philosophy (evidence-based)
3) Semantic tokens (colors + motion)
4) Color palette + usage mapping
5) Typography scale
6) Spacing scale
7) Components (with state matrix)
8) Motion (runtime evidence + full `@keyframes` + delay chains + JS-driven notes)
9) Layering (z-index/overlays)
10) Responsive behavior (breakpoints + degradation)
11) Copy-paste examples (5+)

Component state matrix must include at least:
- default / hover / active(pressed) / focus-visible / disabled (loading if present)

## Quality checklist

Static:
- tokens include usage intent (not just lists)
- examples are copy-pasteable (HTML+CSS)

Motion (when dynamic):
- 3+ key interactions with `document.getAnimations()` evidence
- full `@keyframes` blocks for important animations
- at least one documented “delay chain” if present
- JS-driven motion: detection proof + sampling/trace evidence

Files in this skill

  • SKILL.md4.6 KB
  • references/README.md264 B
  • references/endfield-design-system-style.md12.8 KB
  • references/motherduck-design-system-style.md26.7 KB
  • scripts/extract-keyframes.py2.9 KB
  • scripts/library-detect.js1.6 KB
  • scripts/motion-tools.js4.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.