Skill: Image to Code
Reconstruct a design from a visual reference as a real design system, not a one-off copy. Match the system (color/type/spacing language), never lift copyrighted imagery or brand assets.
Steps
- Read the reference like a designer. Infer and write down:
- Palette — 1 dominant surface family, text colors, 1 primary action + at most 1 accent (sample the hues; don't guess random hex).
- Type — family feel (geometric/grotesk/serif), the scale jumps, display vs. body contrast, weights.
- Spacing & density — base unit, section rhythm, card padding; airy vs. compact.
- Radius & depth — radius language (sharp/soft/pill), shadow vs. hairline separation.
- Layout archetype + sequence — full-bleed hero / asymmetric split / bento / editorial stack (
taste/design-taste.md → Variance Mandate).
- Anchor to a known system if it's close — browse
taste/aesthetic-systems.md / python3 scripts/design_systems.py search <term> and adopt that recipe to stabilize decisions.
- Build the token theme from the inferred values → 3-tier DTCG (
design-tokens skill); generate a single theme.css. Verify every color pair with scripts/contrast.py / scripts/validate_contrast.py (light + dark) — a sampled brand color that fails AA gets adjusted; taste never overrides POUR.
- Rebuild layout + components token-driven via
frameworks/adapter-protocol.md + components/*: one shared primitive layer, all 8 states, a11y wired, no emoji (lucide), single theme. Apply taste (design-taste.md) so it doesn't regress to generic.
- Verify against the reference — render and screenshot it, compare side-by-side to the reference; run
node scripts/measure_render.mjs, lint_hardcodes.py, taste_audit.mjs, and npm run verify.
Verification (definition of done)
npm run verify is 100% (tokens resolve, contrast AA light+dark, no hardcodes/emoji, real-render WCAG).
- The rebuilt UI uses ONE inferred token theme — no per-section palettes.
- A screenshot of the result visibly matches the reference's design language.
Honest limit: this matches the design system, not a pixel-perfect copy. Do not reproduce the reference's photographs, logos, or copyrighted copy — substitute your own or generic placeholders.
Kit location
This skill is part of ux-ui-agent-skills v2.4.0.
Resolve every relative path in the steps above against:
.agents/ux-ui-agent-skills/
(from repo root: /Users/tao.exe/Documents/skill/.agents/ux-ui-agent-skills)
Load .agents/ux-ui-agent-skills/CLAUDE.md when you need the full agent persona or Request Router.
1---2name: image-to-code3description: Turn a reference image, screenshot, or mockup into token-driven, accessible code — infer the design system from the reference (palette, type scale, spacing, radius, layout archetype), map it to the 3-tier tokens, rebuild it, then verify with the kit's gates. Use when the user provides a design/screenshot and wants matching UI code.4---56# Skill: Image to Code78Reconstruct a design from a visual reference as a real design system, not a one-off copy. Match the *system* (color/type/spacing language), never lift copyrighted imagery or brand assets.910## Steps111. **Read the reference like a designer.** Infer and write down:12 - **Palette** — 1 dominant surface family, text colors, 1 primary action + at most 1 accent (sample the hues; don't guess random hex).13 - **Type** — family feel (geometric/grotesk/serif), the scale jumps, display vs. body contrast, weights.14 - **Spacing & density** — base unit, section rhythm, card padding; airy vs. compact.15 - **Radius & depth** — radius language (sharp/soft/pill), shadow vs. hairline separation.16 - **Layout archetype + sequence** — full-bleed hero / asymmetric split / bento / editorial stack (`taste/design-taste.md` → Variance Mandate).172. **Anchor to a known system** if it's close — browse `taste/aesthetic-systems.md` / `python3 scripts/design_systems.py search <term>` and adopt that recipe to stabilize decisions.183. **Build the token theme** from the inferred values → 3-tier DTCG (`design-tokens` skill); generate a single `theme.css`. Verify every color pair with `scripts/contrast.py` / `scripts/validate_contrast.py` (light + dark) — a sampled brand color that fails AA gets adjusted; taste never overrides POUR.194. **Rebuild layout + components** token-driven via `frameworks/adapter-protocol.md` + `components/*`: one shared primitive layer, all 8 states, a11y wired, no emoji (lucide), single theme. Apply taste (`design-taste.md`) so it doesn't regress to generic.205. **Verify against the reference** — render and screenshot it, compare side-by-side to the reference; run `node scripts/measure_render.mjs`, `lint_hardcodes.py`, `taste_audit.mjs`, and `npm run verify`.2122## Verification (definition of done)23- `npm run verify` is 100% (tokens resolve, contrast AA light+dark, no hardcodes/emoji, real-render WCAG).24- The rebuilt UI uses ONE inferred token theme — no per-section palettes.25- A screenshot of the result visibly matches the reference's design language.2627> Honest limit: this matches the design **system**, not a pixel-perfect copy. Do not reproduce the reference's photographs, logos, or copyrighted copy — substitute your own or generic placeholders.282930---3132## Kit location3334This skill is part of **ux-ui-agent-skills v2.4.0**.3536Resolve every relative path in the steps above against:3738`.agents/ux-ui-agent-skills/`3940(from repo root: `/Users/tao.exe/Documents/skill/.agents/ux-ui-agent-skills`)4142Load `.agents/ux-ui-agent-skills/CLAUDE.md` when you need the full agent persona or Request Router.