Figma To Static
LeoYeAI/openclaw-master-skills
Convert Figma design files to pixel-level mobile-first static HTML/CSS pages.
Reverse-engineering a Sketch file (or Figma export with similar shape) into pixel-perfect React + CSS — the iteration mental model, tree reconstruction, layout inference algorithms, geometry math…
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pproenca/dot-skills design-to-react-algorithms --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .claude/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .claude/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithmsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pproenca/dot-skills design-to-react-algorithms --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .agents/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .agents/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pproenca/dot-skills design-to-react-algorithms --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .cursor/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .cursor/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pproenca/dot-skills.git --path skills/.experimental/design-to-react-algorithms--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pproenca/dot-skills design-to-react-algorithms --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .gemini/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .gemini/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pproenca/dot-skills design-to-react-algorithmsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .github/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .github/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pproenca/dot-skills design-to-react-algorithms --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.experimental/design-to-react-algorithms .opencode/skills/design-to-react-algorithms && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "design-to-react-algorithms" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/design-to-react-algorithms into .opencode/skills/design-to-react-algorithms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-to-react-algorithms", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
design-to-react-algorithmsReverse-engineering a Sketch file (or Figma export with similar shape) into pixel-perfect React + CSS — the iteration mental model, tree reconstruction, layout inference algorithms, geometry math…
Design To React Algorithms is an agent skill from pproenca/dot-skills. Reverse-engineering a Sketch file (or Figma export with similar shape) into pixel-perfect React + CSS — the iteration mental model, tree reconstruction, layout inference algorithms, geometry math, visual-regression diffing, and the style/typography/path conversions that make "improvement without regression" enforceable. Trigger even if the user doesn't explicitly mention "algorithms" but is converting a design source into web code, building a design-to-code pipeline, or struggling to make incremental fidelity…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 53 other files, including reference files and assets (for example `AGENTS.md`, `assets/templates/_template.md` and `metadata.json`).
It sits in Frontend & Design, covering Design to code, Visual regression testing and Reverse engineering and malware. It works with React and Figma. The repository describes itself as: A collection of AI agent skills following the Agent Skills open format. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cf93c57. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Design To React Algorithms loads about 2.9k tokens when it runs, and up to ~41k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 846 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pproenca/dot-skills at commit cf93c57, republished under its MIT licence (© pproenca). 846 words, ~2,912 tokens.
.claude/skills/design-to-react-algorithms/SKILL.md (or your agent's skills folder). This skill also uses 50 other files; get the full folder from GitHub.The reverse-engineering pipeline that converts Sketch files into pixel-perfect React + CSS, with regression-safe iteration as the load-bearing constraint. The skill is organized around the cascade effect of design-to-code conversion: a wrong call in stage N corrupts every output from stage N+1 onward, so categories are ordered by how much downstream they own.
The user's primary requirement — "each improvement doesn't cause regressions" — is enforceable only if the iteration loop, the layer tree, and the layout solver are correct before you start polishing styles. Read the rules in priority order.
.sketch file (or equivalent design source) and emits React + CSSMSImmutableFlexGroupLayout, attributedString, curvePoint, MSImmutableStyleCorners) into idiomatic CSSThe ordering is the cascade — fix earlier stages first; later-stage fixes are wasted if the upstream tree is wrong.
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Reverse-Engineering Iteration Strategy | CRITICAL | iter- |
| 2 | Tree Reconstruction & Symbol Resolution | CRITICAL | tree- |
| 3 | Layout Algorithms (Flex/Freeform Inference) | CRITICAL | layout- |
| 4 | Coordinate & Geometry Math | HIGH | geom- |
| 5 | Visual Regression & Diff Algorithms | HIGH | diff- |
| 6 | Style Translation (Color, Gradient, Shadow, Border) | MEDIUM-HIGH | style- |
| 7 | Typography Math | MEDIUM | type- |
| 8 | Path & Shape Rendering | MEDIUM | path- |
iter-bisect-from-root — Convert top-down, bisect bottom-up to localize regressions in O(log n)iter-baseline-snapshot-gate — Every change must pass committed baselines before mergeiter-convert-symbols-before-instances — Topologically sort symbols → instances; never inline duplicatesiter-freeze-design-tokens-first — Extract sharedSwatches/layerStyles to CSS variables BEFORE any componentiter-one-family-per-pr — Scope conversions to one component family per iterationiter-keep-known-good-branch — Maintain a baseline branch as a three-way regression triage anchortree-resolve-overrides-before-emit — Apply overrideValues against master into named propstree-hash-subtrees-for-componentization — Structural hashing finds repetition designers missedtree-collapse-passthrough-groups — Drop no-style single-child groups; preserve world coordstree-hoist-shared-style-via-subtree-equivalence — Subtree equivalence + modifier classes, not per-property deduptree-clipping-mask-is-stacking-context — hasClippingMask requires isolation: isolate + clip-pathtree-foreign-symbols-become-library-imports — Foreign symbols are package imports, not duplicateslayout-flex-group-enum-mapping — Map MSImmutableFlexGroupLayout enums 1:1 to CSS flex propertieslayout-infer-flex-from-axis-projection-overlap — 1D separating-axis test for freeform → flex row/columnlayout-detect-grid-via-2d-coordinate-clustering — Cluster edge coordinates with ε to detect CSS Gridlayout-promote-freeform-when-equal-gaps — Equal gaps within tolerance → display: flex; gap: Npxlayout-reverse-engineer-padding-not-margin — Insets become parent padding; rebase childrenlayout-preserve-wrapping-enabled — wrappingEnabled is the only way the source signals responsive intentlayout-ignore-layout-is-absolute-escape — flexItem.ignoreLayout: true → position: absolute over position: relative parentgeom-compose-parent-transforms-before-emit — Compose 2D affine matrices, don't concatenate raw x/ygeom-round-only-at-leaves — Carry floats through; round once at the CSS boundarygeom-rotation-is-css-transform — Frame is unrotated AABB; emit transform: rotate()geom-shape-group-bounds-via-union — Bounds = axis-aligned union of children, rebase to origingeom-clipping-bounds-intersect-not-union — Nested clips intersect; never union or replacediff-use-ssim-for-aa-content — SSIM for antialiased content; raw pixel diff false-positives on every retestdiff-region-budgeted-tolerances — Per-region SSIM floors (text 0.99, gradient 0.95, image 1.0)diff-antialias-aware-pixelmatch-threshold — Pixelmatch includeAA: false for icon defect detectiondiff-perceptual-hash-for-wrong-component-detection — Hamming distance buckets route triage automaticallydiff-subtree-bisection-to-localize-regression — Disable subtrees in binary search to find the offending nodediff-baseline-per-component-not-per-page — Storybook per-story snapshots; scope = blast radiusstyle-srgb-float-to-hex-via-gamma-correct-path — Sketch sRGB floats are already gamma-encoded; direct conversion onlystyle-preserve-display-p3 — colorSpace: 1 → emit color(display-p3 …) with sRGB fallbackstyle-gradient-angle-via-atan2 — atan2(dx, -dy) reframes Sketch vector to CSS gradient anglestyle-stack-multi-shadow-in-paint-order — Reverse shadow array — Sketch paints last-first, CSS first-laststyle-reconcile-border-position — Border position 0/1/2 → frame expansion or outline for outsidestyle-per-corner-radii-shorthand — Per-corner radii map to TL TR BR BL clockwise (not Sketch's row order)type-split-attributed-string-runs-only-when-differ — Coalesce identical adjacent attribute runs; single-run case needs no inner spantype-pt-lineheight-to-unitless — lineHeight / fontSize → CSS unitless that scales with the fonttype-kerning-pt-to-em-letter-spacing — kerning / fontSize → em-relative letter-spacingtype-build-font-fallback-ladder — Sketch family → web stack; SF Pro needs -apple-system, BlinkMacSystemFont, …type-paragraph-spacing-between-not-after — Use gap on the parent, not margin-bottom with :last-childpath-curve-point-to-svg-cubic-bezier — M + per-segment C from curveFrom/curveTopath-rectangle-with-fixed-radius-is-css — Detect axis-aligned rounded rects early; emit <div> not <svg>path-apple-smooth-corners-via-superellipse — Apple smooth corners are superellipses (n≈5), not circular arcspath-flatten-boolean-ops-at-parse-time — Resolve union/subtract via paper.js in Node; ship one flat pathpath-honor-winding-rule — windingRule 0/1 → SVG fill-rule nonzero/evenodd; explicit, not defaultreferences/_sections.md for category definitions and the cascade rationaleiter-*) — without the regression gate, every other rule is just techniquestree-*) and layout (layout-*) — these are the load-bearing structural decisionsgeom-*) and diff (diff-*) — these are the precision and validation layersFor a brand-new converter, follow the rules in priority order. For an existing converter, identify which stage owns the regression you're seeing (use [[diff-subtree-bisection-to-localize-regression]] + [[diff-perceptual-hash-for-wrong-component-detection]] to triage) and fix at the highest stage that owns it.
| File | Description |
|---|---|
| references/_sections.md | Category definitions, impact levels, cascade rationale |
| assets/templates/_template.md | Template for adding new rules to this skill |
| metadata.json | Version, discipline, references |
| AGENTS.md | Auto-built TOC (regenerate via scripts/build-agents-md.js) |
© pproenca, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 50 other files (references, assets) in skills/.experimental/design-to-react-algorithms of pproenca/dot-skills.
Open the folder on GitHubat commit cf93c57
Design To React Algorithms next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Design To React Algorithms this skillpproenca/dot-skills | 214 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Figma To StaticLeoYeAI/openclaw-master-skills | 2.2k | — | ~7.1k | Automated safety check: Pass | MIT | |
| Design To CodeMigoXLab/coderio | 114 | 2 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Wonder BlocksKhan/wonder-blocks | 163 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Figma Codegenawdr74100/figwright | 977 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Frontend UI StandardsMaxHan7/frontend-ui-standards-skill | 106 | — | ~2.4k | Automated safety check: Pass | MIT |
LeoYeAI/openclaw-master-skills
Convert Figma design files to pixel-level mobile-first static HTML/CSS pages.
MigoXLab/coderio
Pixel-perfect Figma to React conversion using coderio. An agent skill from MigoXLab/coderio.
Khan/wonder-blocks
Implements user interfaces using the Wonder Blocks (WB) design system — Khan Academy's React component library.
awdr74100/figwright
Generate framework-aware code from a Figma design. An agent skill from awdr74100/figwright.
MaxHan7/frontend-ui-standards-skill
A skill your agent uses when implementing, refactoring, or reviewing frontend UI across SwiftUI, React, React Native, Flutter, web, or mobile apps.
coinbase/cds
Turn Figma designs into CDS React (cds-web) or React Native (cds-mobile) code.
pproenca/dot-skills
Audio forensics and voice recovery guidelines for CSI-level audio analysis.
pproenca/dot-skills
Guided, scripted pipeline for running JSX/TSX/React codemods safely across large legacy codebases.
pproenca/dot-skills
Create well-structured RFCs and technical proposals for software projects.
pproenca/dot-skills
Developer-experience friction auditing and fixing — slow onboarding, repeated manual setup steps, missing bootstrap/reset/seed scripts, undiscoverable conventions.
pproenca/dot-skills
Turn a rough idea for a language into a complete, implementable specification — a DSL, query, config/data, template, or protocol language — by interviewing the author dimension by dimension until…
pproenca/dot-skills
Drafting Python Enhancement Proposals (PEPs) — proposing a Python language feature, a standard library change, an interoperability standard, or an informational/process document for the Python…
Categories
Reverse-engineering a Sketch file (or Figma export with similar shape) into pixel-perfect React + CSS — the iteration mental model, tree reconstruction, layout inference algorithms, geometry math…. Design To React Algorithms is an agent skill from pproenca/dot-skills. Reverse-engineering a Sketch file (or Figma export with similar shape) into pixel-perfect React + CSS — the iteration mental model, tree reconstruction, layout inference algorithms, geometry math, visual-regression diffing, and the style/typography/path conversions that make "improvement without regression" enforceable.
Design To React Algorithms fits situations like: even if the user doesnt explicitly mention algorithms but is converting a design source into web code; building a design-to-code pipeline; struggling to make incremental fidelity improvements without breaking previously-converted output.
Run `npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a claude-code`. Or copy the skill folder (skills/.experimental/design-to-react-algorithms in pproenca/dot-skills) into .claude/skills/design-to-react-algorithms in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a codex`. Or copy the skill folder (skills/.experimental/design-to-react-algorithms in pproenca/dot-skills) into .agents/skills/design-to-react-algorithms in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pproenca/dot-skills --skill design-to-react-algorithms -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/design-to-react-algorithms, .gemini/skills/design-to-react-algorithms, .github/skills/design-to-react-algorithms and .opencode/skills/design-to-react-algorithms in your project.
SKILL.md names no scripts, command-line tools or credentials: Design To React Algorithms is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Design To React Algorithms is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 38k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Design To React Algorithms: Figma To Static (LeoYeAI/openclaw-master-skills, 2.2k stars), Design To Code (MigoXLab/coderio, 114 stars), Wonder Blocks (Khan/wonder-blocks, 163 stars) and Figma Codegen (awdr74100/figwright, 977 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pproenca (a GitHub user) maintains it in pproenca/dot-skills, which has 214 GitHub stars. The repository holds 182 skills in this directory. The repository was last updated on August 15, 2026.
Source: pproenca/dot-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.