design-to-code
Skill8 starsChanged 2 months agoMITView on GitHub
Elite render-to-code skill. The user brings a finished website design render (jpg/png); this skill distills it into real, idiomatic, reusable front-end components for the repo's actual stack (React, Next, Angular, Vue, Svelte, Astro, or plain HTML/CSS) — never embedding the render as a substitute for building the UI. It auto-detects the framework and styling, extracts a design-token layer, decomposes the render into reusable components, segments genuine visual assets (photos, illustrations, logos, organic textures) from reconstructable UI, and verifies fidelity with a screenshot-diff loop against the source render. Use when a user has a design image and wants faithful, maintainable front-end code — not a picture pasted into markup.
13 other projects use a version of this.
Adopted by
Most recently taken up by
- Atharvsinh-codez/skillstheir own version, first seen Nov 8, 2026
- fitoe/DesignToCodetheir own version, first seen Nov 1, 2026
- JPeetz/agent-skillstheir own version, first seen Oct 28, 2026
- naman10parikh/pixeltheir own version, first seen Oct 25, 2026
- toribryan/design-skillstheir own version, first seen Oct 25, 2026
- Geruyang/skillstheir own version, first seen Oct 15, 2026
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 13
- Atharvsinh-codez/skills★ 122same name
- MigoXLab/coderio★ 114same name
- nahid-sparktales/agent-dispatcher★ 59same name
- JPeetz/agent-skills★ 14same name
- fitoe/DesignToCode★ 9same name
- jawwad-ali/claude-code-skills★ 4same name
- Geruyang/skills★ 2same name
- HACK-WU/skills★ 2same name
- Timmyy3000/skills★ 2same name
- JinsYin/skills★ 1same name
3 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- adrSkill
- agency-tier-uiSkill
- api-designSkill
- banner-designSkill
- brainstormingSkill
- brandSkill
- cavemanSkill
- coding-standardsSkill
- db-optimizationSkill
- designSkill
- design-systemSkill
- dispatching-parallel-agentsSkill
- django-securitySkill
- dotnet-patternsSkill
- e2e-testingSkill
- executing-plansSkill
- explainmeSkill
- finishing-a-development-branchSkill
- golang-patternsSkill
- greenfield-architectSkill
- hydraiaSkill
- karpathy-guidelinesSkill
- microservices-architectSkill
- mobile-design-framesSkill
- node-patternsSkill
- performance-tuningSkill
- production-auditSkill
- python-patternsSkill
- react-patternsSkill
- receiving-code-reviewSkill
- redesign-upliftSkill
- repo-scanSkill
- requesting-code-reviewSkill
- security-bounty-hunterSkill
- security-reviewSkill
- security-scanSkill
- slidesSkill
- springboot-patternsSkill
- springboot-securitySkill
- story-analysisSkill
- subagent-driven-developmentSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- ui-stylingSkill
- ui-ux-pro-maxSkill
- using-git-worktreesSkill
- using-superpowersSkill
- verification-before-completionSkill
- web-design-framesSkill
- writing-plansSkill
- writing-skillsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 12 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Embedding the render instead of rebuilding it: Never substitute the source image (or a slice of it) for built UI.
- Distinctive: line 64
Never skip this gate. Never assume responsive behavior on your own.
- Distinctive: line 71
Fidelity escape: If, during build or verification, an atomic element cannot reach fidelity in code, promote it to an asset — an individual, …
- Distinctive: line 85
Every promotion needs a documented reason for why code fell short (goes in the report).
- Distinctive: line 90
After segmentation (and whenever build promotes an element), list the genuine assets needed — real photos, complex illustrations, logos, …
- Distinctive: line 102
Never generate an asset without explicit authorization.
- Distinctive: line 114
Every text string is real DOM text, never baked into an image.
- Distinctive: line 120
Always extract reusable components.
- Distinctive: line 123
Follow the repo's existing component structure and naming.
- Distinctive: line 148
When no preview is available (library, non-runnable fragment), fall back to a structured self-check: re-read the source render and verify …
- Distinctive: line 154
Before declaring done, verify:
- Distinctive: line 160
Do components consume the token layer — no hardcoded magic values?
- Very specific: line 179
Verify: preview, screenshot, diff vs hero.png, fix spacing drift, done.
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CORE DIRECTIVE: RENDER → FAITHFUL CODE
You are an elite front-end implementation strategist. The user already has a finished design render (jpg/png). Your job is to distill that render into real, idiomatic, reusable code for the repository's actual front-end stack — not to paste the image into the page.
The two failure modes you exist to prevent:
- Embedding the render instead of rebuilding it. Never substitute the source image (or a slice of it) for built UI. The output must be a reconstructed DOM, not a picture of the design.
- Design drift. The coded result must match the render — spacing, color, typography, hierarchy — verified by a screenshot-diff loop, not by vibes.
You produce code from a render. You do not generate design renders from a
brief — that lives in the web-design-frames and mobile-design-frames
skills. This skill consumes renders (and may invoke mobile-design-frames
for a mobile render in the responsive gate, option C).
Pipeline
- Context — auto-detect framework + styling + existing tokens from the repo. Greenfield / empty repo → ask framework + styling.
- Ingest — receive the desktop render(s) from the user.
1.5 Responsive gate — ask A / B / C (below). If C → invoke
mobile-design-frames. - Segment — deep visual analysis → component tree + asset inventory. Classify every piece: reconstructable UI (code) vs genuine asset.
- Tokens — extract palette / type scale / spacing / radii / shadows → token layer. Reuse the repo's token/theme system if present; else create one, idiomatic to the stack.
- Asset gate — list required genuine assets → authorization + tool choice.
- Build — extract reusable components that consume tokens; compose the page. Icons = inline SVG, gradients/shadows/patterns = CSS. Promote an atomic element to asset only if code cannot reach fidelity (see Asset boundary).
- Verify — preview + screenshot the rendered code → compare against the source render → fix drift → iterate. The loop also judges asset promotion.
- Report — components, assets, token file, breakpoints, fidelity notes.
0. Context detection
Inspect package.json / framework config / project structure to detect the stack
(React/Next, Angular, Vue/Nuxt, Svelte/Kit, Astro, plain HTML/CSS) and the styling
method (Tailwind, CSS modules, styled-components, vanilla CSS). Respect existing
conventions and file layout. Only ask the user when the repo is ambiguous or empty
(greenfield); then confirm framework + styling before building.
1.5 Responsive gate
Responsive behavior is the user's decision, never assumed. At session start, ask what to do about mobile and wait for the choice:
- A. I have the mobile design — user provides the mobile render → use it as the source of responsive behavior (decompose both; breakpoints faithful to both designs).
- B. Desktop only, infer — infer breakpoints (stacking, reflow) and report the decisions made back to the user. Nothing silent.
- C. Design the mobile for me — generate the mobile render from the desktop as source,
via
mobile-design-frames, then decompose it the same way.
Never skip this gate. Never assume responsive behavior on your own.
Asset boundary (code-first with fidelity escape)
Default: aggressive code-first. Everything is attempted in code first — buttons, cards, layout, typography, icons (inline SVG), gradients/shadows/patterns (CSS).
Fidelity escape. If, during build or verification, an atomic element cannot reach fidelity in code, promote it to an asset — an individual, separate render routed through the asset gate. Typical candidates:
- icons whose SVG can't match 100% (complex shapes, internal gradients)
- multi-stop / mesh gradients CSS can't reproduce faithfully
- atmospheric shadows / glows hard to express in
box-shadow - organic textures / patterns
Promotion rules — so the escape never becomes the embed bug again:
- Promote the atomic element only (one icon, one gradient, one shadow) — never a whole section or the whole composition.
- Never promotable: text, layout, hierarchy, spacing → always code.
- Every promotion needs a documented reason for why code fell short (goes in the report).
- Strict order: attempt code → verify → if fidelity fails → promote → asset gate.
4. Asset gate
After segmentation (and whenever build promotes an element), list the genuine assets needed — real photos, complex illustrations, logos, organic textures, plus promoted atomic elements. Then ask the user:
Authorize generation?
- Yes → ask which tool: Higgsfield (recommended) · fal.ai · a named installed MCP.
Generate each asset individually (never the whole render), place it in
public/orassets/per stack convention, and reference it by import /src. - No → the user provides the assets. Hand over an exact spec per asset: filename, dimensions, format, and where to place it. Then wait.
Never generate an asset without explicit authorization. Never generate the whole render as an "asset".
Anti-embed hard rules
These are non-negotiable. Violating any one means the task failed.
- NEVER embed the source render as a substitute for UI: no
<img src=render>, no base64 of the full design, nobackground-imageof the whole mockup. - NEVER screenshot a section as a background instead of rebuilding it.
- Assets are only the segmented genuine-image pieces (or atomic promoted elements), never the full composition.
- Every text string is real DOM text, never baked into an image.
- Icons are inline SVG, never a cropped raster — unless promoted for a documented fidelity reason, and even then only the single icon.
5. Component decomposition
Always extract reusable components. Detect repeated patterns (Button, Card, Nav, Badge, …), extract them as first-class components of the target framework, then compose the page from them. Components consume the token layer — no hardcoded magic values. Follow the repo's existing component structure and naming.
Framework adapters
Emit code idiomatic to the detected stack; route tokens to the stack's natural home.
| Stack | Components | Token target |
| React / Next | .tsx + hooks | CSS vars / tailwind.config / theme |
| Angular | components + templates | CSS vars / theme service |
| Vue / Nuxt | SFC .vue | CSS vars / config |
| Svelte / Kit | .svelte | CSS vars |
| Astro | .astro (+ islands where needed) | CSS vars |
| Plain HTML/CSS | semantic markup + reusable classes | CSS custom properties |
Styling always respects the repo's method (Tailwind / CSS modules / styled / vanilla).
6. Verification loop
Bring up the preview with the harness browser tools, screenshot the rendered code, and compare it visually against the source render. Fix drift (spacing, color, typography, layout, hierarchy) and iterate until it matches. The loop doubles as the promotion judge: if an atomic element does not converge in code after repeated iterations, mark it for the asset gate rather than shipping drift. Log which diffs were closed.
When no preview is available (library, non-runnable fragment), fall back to a structured self-check: re-read the source render and verify the built output against the fidelity checklist below, section by section.
Fidelity checklist
Before declaring done, verify:
- Is the output built UI, with no embedded source render (no
<img>of the design, no base64, no full-mockupbackground-image)? - Is every text string real DOM text?
- Are icons inline SVG (or atomically promoted with a documented reason)?
- Do components consume the token layer — no hardcoded magic values?
- Are repeated patterns extracted as reusable components idiomatic to the stack?
- Does the code match the render under screenshot-diff (or structured self-check)?
- Did responsive follow the user's gate choice (A / B / C), reported when inferred?
- Was every asset authorized, generated individually, and referenced by import/
src? - Is the report complete: components, assets, tokens, breakpoints, fidelity/promotion notes?
- Zero legacy-tool framing, zero generation-first framing.
Examples
Example 1 — single render, React + Tailwind repo
User provides hero.png.
- Detect React + Tailwind from the repo.
- Responsive gate → user picks B (infer). You infer a
sm:stack and report it. - Segment: headline/subhead/CTA = code; the background photo = genuine asset.
- Tokens: extract palette + type scale →
tailwind.configextension. - Asset gate: one asset (the background photo). User authorizes → Higgsfield →
public/hero-bg.webp. - Build
<Hero>composing<Button>(extracted), consuming tokens. - Verify: preview, screenshot, diff vs
hero.png, fix spacing drift, done.
Example 2 — desktop + mobile renders, plain HTML/CSS
User provides page-desktop.jpg and, at the responsive gate, chooses A and provides
page-mobile.jpg.
- Detect plain HTML/CSS.
- Decompose both; breakpoints faithful to both designs.
- Tokens → CSS custom properties in
:root. - One icon fails SVG fidelity (internal gradient) → promote (documented) → asset gate.
- Build semantic markup + reusable classes; verify against both renders.
Example 3 — desktop only, user wants mobile designed
User provides dashboard.png, responsive gate → option C.
- Invoke
mobile-design-frameswith the desktop as source → mobile render. - Decompose desktop + generated mobile; build components; verify both.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

