Prompt Tools

Consistent Component Prompt Composer

Paste the design system’s Figma variables and styles, then spec the component. Token fields accept only names from that list, raw values such as #1F5BD6 or 16px are blocked, and the prompt adapts to the model and the tool in use.

← Prompt Tools

The composer runs in the browser, so it needs scripting turned on.

Start Here: Get Your Design System From an AI

The composer needs the names of your design system’s variables, styles, modes and components. If they already live in Figma, an AI can write them out in the exact file this tool loads. Any AI chat works, and one that can open your Figma file will be the most accurate.

  1. Copy the prompt below.
  2. Paste it into a new chat with any AI. If it cannot open your Figma file, it will ask you to paste your variables or describe your system.
  3. Paste its answer into the box under the prompt and press Load It.
I will use your answer to fill in a tool, so follow the format exactly and write nothing outside it except a short note at the end.

Look at my design system and write a file called design-system.md.

If you can read my Figma file through a Figma connection, use its real variables, styles and components. If you cannot, ask me to paste them (a variables export or a plain list of names is fine) and use only what I give you. Never invent a name. Keep every name exactly as it appears: the same slashes and capitals.

Write the whole answer in ONE code block, in this format:

---
format: design-system-md/1
name: <the design system's name>
figma_file: <the Figma link, or leave this line out>
updated: <today's date as YYYY-MM-DD>
---

## About
<two sentences on what the system is for>

## Tokens
<one line for every variable or style, as kind: name, with no values. The kinds are color, spacing, size, radius, typography, effect and other. For example: color: color/bg/brand>

## Modes
<one line for every set of modes, for example: Theme: Light, Dark>

## Library components
<one line for every component other components reuse, as Name: how it is used. For example: Icon: used through instance swap>

## Components
- <the name of every component that already exists>

## Naming
- <one bullet for every naming rule you can see, such as how layers and properties are capitalized>

After the code block, add a short note listing anything you were unsure about or left out.

0Where it runs

1Design system inventory

The only allowed names

One name per line, for example color/bg/brand. The prompt can only use names from this list.

Made a design-system.md with the Fundamental Design System Prompt Composer? Load it here and the tokens, modes, library components and house rules fill themselves in.

No list yet? Copy the export snippet, run it in your Figma file, and paste what it prints above.
Accepted formats

A plain list (one name per line, optionally starting with color:, spacing:, size:, radius:, typography: or effect: to say what it is), Figma MCP get_variable_defs output, a Figma variables REST export, or W3C / Tokens Studio JSON. Lines starting with # are ignored.

2Component

Nested parts must be instances of these, not redrawn copies.

3Properties

What can be switched on the component

Add each thing that can change: a set of options (like Size or State), a show/hide switch, editable text, or a swappable icon.

Edit as text

4Anatomy

The layers inside the component

Root is the component frame itself.

5Token bindings

Which token each layer uses, for every visual value

Leave “Which variants” empty to apply a row to every variant. To limit it, type one like Variant=primary, or two like Variant=primary, State=hover.

6Modes and accessibility

7Guardrails

8Acceptance criteria

Write before building