Figma Design System Builder
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
Translates an image (or a set of image references — screenshots, mockups, Figma URLs, live websites) into two mirrored design-system artifacts: docs/design.md (YAML tokens + prose, following…
$ npx skills add BuildGreatProducts/builder-os --skill design-system -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install BuildGreatProducts/builder-os design-system --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/BuildGreatProducts/builder-os.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/design-system .claude/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .claude/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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/BuildGreatProducts/builder-os/tree/main/skills/design-systemType 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 BuildGreatProducts/builder-os --skill design-system -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install BuildGreatProducts/builder-os design-system --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BuildGreatProducts/builder-os.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/design-system .agents/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .agents/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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 BuildGreatProducts/builder-os --skill design-system -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install BuildGreatProducts/builder-os design-system --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BuildGreatProducts/builder-os.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/design-system .cursor/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .cursor/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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/BuildGreatProducts/builder-os.git --path skills/design-system--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 BuildGreatProducts/builder-os --skill design-system -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install BuildGreatProducts/builder-os design-system --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BuildGreatProducts/builder-os.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/design-system .gemini/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .gemini/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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 BuildGreatProducts/builder-os design-systemInstalls 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 BuildGreatProducts/builder-os --skill design-system -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/BuildGreatProducts/builder-os.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/design-system .github/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .github/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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 BuildGreatProducts/builder-os --skill design-system -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install BuildGreatProducts/builder-os design-system --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BuildGreatProducts/builder-os.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/design-system .opencode/skills/design-system && 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-system" agent skill from https://github.com/BuildGreatProducts/builder-os/tree/main/skills/design-system into .opencode/skills/design-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-system", 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-systemTranslates an image (or a set of image references — screenshots, mockups, Figma URLs, live websites) into two mirrored design-system artifacts: docs/design.md (YAML tokens + prose, following…
Design System is an agent skill from BuildGreatProducts/builder-os. Translates an image (or a set of image references — screenshots, mockups, Figma URLs, live websites) into two mirrored design-system artifacts: docs/design.md (YAML tokens + prose, following Google's open [design.md](https://github.com/google-labs-code/design.md) format, for the coding agent) and docs/design.html (a self-contained, token-driven style guide rendering every token and component live, for the human to read). Reads the imagery, asks targeted clarifying questions, derives the design tokens (colors…
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Design tokens and Design systems. It works with Figma and GitHub. The repository describes itself as: BuilderOS is your operating system for building with AI. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fb74cac. 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 (its code samples are yaml and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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 System loads about 4.8k tokens when it runs. Until then it costs about 219 tokens; SKILL.md has 2,493 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 BuildGreatProducts/builder-os at commit fb74cac, republished under its MIT licence (© BuildGreatProducts). 2,493 words, ~4,822 tokens.
.claude/skills/design-system/SKILL.md (or your agent's skills folder).This skill takes an image (or a set of image references) and translates them into a design system captured as two mirrored files:
docs/design.md — a YAML token block in Google's open design.md format that gives a coding agent exact implementation values, plus prose rationale explaining the why. This is the source of truth.docs/design.html — a self-contained, human-readable style guide that renders every token and component live in a browser, styled directly from the same token values. This is the mirror the human reads.Same design system, two audiences: the agent reads the .md, the human opens the .html. They must always be written and updated together so they never drift.
No image provided yet: Ask for one (or more) before doing anything else. Don't draft a design.md from imagination.
docs/design.md already exists: Read it (and docs/design.html if present) and ask what they want to do — refine specific tokens or sections, replace it with a fresh analysis from new imagery, or merge the new analysis into the existing tokens. Confirm before destructive overwrites. Whatever changes, regenerate docs/design.html so it stays in sync with the .md.
Partial conversation: If the session is interrupted mid-flow, note where you left off and resume from that step. Don't restart.
You are a senior design director with strong taste. You're observant — you describe what you actually see in the imagery, not what you assume. You're decisive — when the founder is uncertain, recommend a direction with a one-line rationale. You're systematic — you treat design as a coordinated system of tokens and rules, not just a vibe.
Don't flatter weak references. If the imagery is conflicting, contradictory, or thin, say so and ask which direction to anchor on.
Open with:
"Share the image (or images) you want me to translate. I can work with screenshots, mockups, Figma URLs, live websites, or a mix. If you have multiple, tell me which is the primary anchor and which are inspiration references."
Accept any of these inputs:
Read tool. The Read tool renders image content visually for analysis.figma.com/design/..., figma.com/board/..., figma.com/make/...) — use the Figma MCP tools (get_design_context, get_screenshot, get_metadata). Extract fileKey and nodeId from the URL per the Figma server's URL parsing rules.WebFetch to read content/styles only as a supplementary signal (not the primary visual source).If only one image is provided, treat it as the primary anchor. If multiple, confirm which is the anchor and which are references for mood/inspiration.
If the founder provides no image after one prompt, offer a fallback: "I can draft a starter design.md from a text description of the brand and we'll refine from there — but the result will be weaker than working from imagery. Want to proceed that way, or grab a reference first?"
Read every image carefully before asking any questions. Don't generalize — describe what you actually see.
For each image, extract and note:
Then summarize what you saw to the founder in 5–8 tight bullets. Be specific. Mirror back the imagery's actual character. If two references conflict, name the conflict.
Ask questions one at a time. Offer 3 tailored suggestions for each (drawn from your Step 1 analysis). Carry every answer forward as context for later suggestions. If docs/VISION.md or docs/product-vision.md exists (created by the Product Planner skill), read it and skip questions already covered there — acknowledge what's known instead of re-asking.
docs/VISION.md already answers this.)primary (most-used brand surface), which is accent (interactive emphasis), which carries semantic meaning? Light mode, dark mode, or both? Suggest a mapping.If an answer is vague, push back gently with a recommendation rather than another open-ended question.
Synthesize the YAML token block. Follow the schema below precisely — it's what the design.md spec validates against.
version: alpha
name: <product-or-design-system-name>
description: <one-sentence description>
colors:
<semantic-token>: "#RRGGBB"
typography:
<scale-token>:
fontFamily: <family>
fontSize: <px | rem | em>
fontWeight: <number, e.g. 400, 600, 700>
lineHeight: <unitless multiplier or dimension>
letterSpacing: <dimension, optional>
fontFeature: <string, optional>
fontVariation: <string, optional>
rounded:
<scale>: <dimension>
spacing:
<scale>: <dimension or unitless number>
components:
<component-name>:
backgroundColor: "{colors.<token>}"
textColor: "{colors.<token>}"
typography: "{typography.<token>}"
rounded: "{rounded.<token>}"
padding: <dimension or token reference>
size: <dimension, optional>
height: <dimension, optional>
width: <dimension, optional># (sRGB). Example: "#1A1C1E".px, em, or rem. Letter-spacing may use a negative em (e.g., -0.02em).{path.to.token} syntax wherever a token exists. Inline literal dimensions only when no matching token applies.button-primary and button-primary-hover, not nested children.primary, on-primary, surface, on-surface, accent, error, success, warning, info — not blue, red, lightGray.backgroundColor, textColor, typography, rounded, padding, size, height, width. Unknown properties are accepted by parsers but trigger warnings — avoid them unless deliberate.## headings in the prose (the spec rejects files with duplicates).Draft prose for the eight canonical sections, in this exact order. Each section should be tight (3–8 sentences). Don't pad. Don't restate the YAML — explain the why behind it so a coding agent can make sound choices in cases the tokens don't cover.
primary, accent, surface, and semantic colors do, and why those specific values. Note contrast considerations (WCAG AA at minimum for text).Before writing, show the founder a brief outline:
Ask for any last edits. Then write to docs/design.md. Create the docs/ directory if it doesn't exist. This is the source of truth — once it's written and verified, Step 6 generates the design.html mirror from it.
---
version: alpha
name: <Name>
description: <One-sentence description>
colors:
...
typography:
...
rounded:
...
spacing:
...
components:
...
---
# <Name> Design System
## Overview
...
## Colors
...
## Typography
...
## Layout
...
## Elevation & Depth
...
## Shapes
...
## Components
...
## Do's and Don'ts
...After writing, verify the write succeeded before confirming. If the write fails, surface a clear, user-friendly message based on the cause:
docs/design.md because the directory isn't writable. Check folder permissions and try again."docs/design.md already exists and I can't overwrite it. Want me to save under a different name or overwrite?"Only confirm "saved" after the write is verified successful, then proceed to Step 6 to build the matching design.html.
docs/design.html is the human-readable twin of docs/design.md. Same system, two audiences: the .md gives the coding agent exact tokens and rationale; the .html lets a person see the system in a browser — every token and component rendered live in its real styling. They are mirrors and must never drift: design.md is the source of truth; design.html is generated from it. Build the HTML from the token values you just wrote, not from a fresh interpretation of the imagery.
Build a single self-contained .html file to these requirements:
<style> block, no build step, no frameworks, no external JS. Web fonts may load via a <link> to Google Fonts (or a CDN) when the typeface needs it; otherwise use the system font stack.:root (e.g. --color-primary, --type-h1-size, --rounded-md, --space-4). Every swatch, specimen, and component styles itself from those variables — so the page renders the exact same values that live in the .md, and changing a variable updates everything. Don't hardcode values that exist as tokens.data-theme attribute on <html>) and define both token sets. Otherwise render the single mode.Sections, in this order:
docs/design.md.on- color to show the combination. Group semantic states (success / warning / error / info) together.rounded value, labeled.components: block, built out and rendered live, including each variant and state (default / hover / active / disabled / focus). Group related entries together (e.g. all button variants). Where a state like hover can't be triggered statically, render a labeled copy already in that state so it's visible without interaction.Keep the page's own chrome (layout, labels, section headers) clean and neutral — this is a reference style guide, not a marketing page or the product UI. The tokens and components should be what stands out.
Write to docs/design.html. Verify the write succeeded using the same error handling as the .md write (permission denied, no space, existing-file conflict, other — report and ask how to proceed). The .md and .html are always written together — never leave one updated and the other stale.
After writing both files, say:
"Your design system is captured in two mirrored files:
docs/design.md— YAML tokens + prose for any coding agent to implement from (the source of truth).docs/design.html— a human-readable style guide; open it in a browser to see every token and component rendered live.They're the same system — one for the agent, one for you. When tokens change, both update together."
Then suggest the natural next step based on project state:
docs/prd.md exists → "Want me to update the PRD's Design System section so it references these tokens?"docs/product-vision.md exists but docs/prd.md does not → "Run the Product Planner skill to generate the PRD — it'll consume these tokens directly."If the Product Planner skill isn't installed, mention that it's part of BuilderOS: https://github.com/BuildGreatProducts/builder-os.
docs/design.md is canonical; docs/design.html is its rendered mirror. Any change to one must be reflected in the other in the same edit — never let them drift. Make the change in the .md first, then update the matching part of the .html (or regenerate it). If the founder hand-edits the .html, fold the change back into the .md tokens too.
If the founder wants to refine after the files exist:
design.html. Keep YAML, prose, and HTML in sync.design.html from the resulting tokens..md. Leave the YAML and HTML intact unless the founder also wants tokens changed.components:, add a paragraph in the Components prose section, and render the new component (with its variants/states) in the Components section of design.html.In the .md, always preserve canonical section order and never create duplicate ## headings — the design.md spec rejects files with duplicates.
© BuildGreatProducts, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/design-system of BuildGreatProducts/builder-os.
Open the folder on GitHubat commit fb74cac
Design System 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 System this skillBuildGreatProducts/builder-os | 228 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Figma Design System Builderwarpdotdev/warp | 65k | 2 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Figma Screen Generatorwarpdotdev/warp | 65k | 2 repos | ~5k | Automated safety check: Pass | AGPL-3.0 | |
| Extract DesignManavarya09/design-extract | 4.2k | — | ~786 | Automated safety check: Notes | MIT | |
| Qt Figma Component GenerationTheQtCompanyRnD/agent-skills | 470 | — | ~4.1k | Automated safety check: Pass | BSD-3-Clause |
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
warpdotdev/warp
Builds or updates full Figma screens from code or a description by reusing the file's published design system components, variables and styles.
Manavarya09/design-extract
Extract the full design language from any website URL. An agent skill from Manavarya09/design-extract.
TheQtCompanyRnD/agent-skills
Extract component metadata from a Figma design system and generate production-ready QML controls.
uxKero/anydesign
Extracts the design of a screenshot, website URL or Figma file into a design.md of tokens, components, layout and brand rules, or copies one element into element.md.
BuildGreatProducts/builder-os
Guided discovery of a product idea by mining what the founder already knows or already does — covers source selection (business vs.
BuildGreatProducts/builder-os
Pressure-tests a product idea before the founder invests in planning, building, or launching.
BuildGreatProducts/builder-os
Vision intake conversation followed by generation of three product documents — docs/product-vision.md (strategy and brand), docs/prd.md (technical spec for coding agents), and…
BuildGreatProducts/builder-os
A skill your agent uses when building features with Codex (OpenAI Codex CLI) in any codebase and the work should go through a disciplined build → review → test → fix loop.
BuildGreatProducts/builder-os
A skill your agent uses when building features with Cursor in any codebase and the work should go through a disciplined build → review → test → fix loop.
BuildGreatProducts/builder-os
Use inside a product repository when the user wants the full MVP built from their BuilderOS spec documents.
Categories
Translates an image (or a set of image references — screenshots, mockups, Figma URLs, live websites) into two mirrored design-system artifacts: docs/design.md (YAML tokens + prose, following…. Design System is an agent skill from BuildGreatProducts/builder-os.html (a self-contained, token-driven style guide rendering every token and component live, for the human to read).
Design System fits situations like: the founder says create a design system; design from image; translate image to design; create design.md.
Run `npx skills add BuildGreatProducts/builder-os --skill design-system -a claude-code`. Or copy the skill folder (skills/design-system in BuildGreatProducts/builder-os) into .claude/skills/design-system in your project. Claude Code loads it when a task matches its description.
Run `npx skills add BuildGreatProducts/builder-os --skill design-system -a codex`. Or copy the skill folder (skills/design-system in BuildGreatProducts/builder-os) into .agents/skills/design-system 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 BuildGreatProducts/builder-os --skill design-system -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-system, .gemini/skills/design-system, .github/skills/design-system and .opencode/skills/design-system in your project.
SKILL.md names no scripts, command-line tools or credentials: Design System is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. 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 System is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Design System: Figma Design System Builder (warpdotdev/warp, 65k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars), Figma Screen Generator (warpdotdev/warp, 65k stars) and Extract Design (Manavarya09/design-extract, 4.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
BuildGreatProducts (a GitHub user) maintains it in BuildGreatProducts/builder-os, which has 228 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on July 7, 2026.
Source: BuildGreatProducts/builder-os on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.