How to Map Figma Variables and Modes from a Brand Kit

Variable maps fail when they invert Light into Dark and wander into Figma Make. If the kit has no dark hex, Light is the only mode. Not a banner spec.
The matching generator is the Figma Variables and Mode Map from a Brand Kit prompt. Browse related cards in the PromptDig library (Browse more prompts). When a filled run survives, share the version you actually use (Share a prompt).
Collections from the file names you own
Map a brand kit into Figma Variables collections and modes. Not Figma Make, not a generic token brief. Start by filling Inputs, not by asking the model to remember last week's run. If a field is blank, write NONE or NOT IN INPUTS and leave it blank through Generate. The card is built so the model cannot honestly invent a number, owner, URL, or command that you did not paste.
Paste these fields before you hit run:
Figma file and collection names I own: [File]
Brand kit values (hex, type, space, radii) I may use: [Kit]
Modes I want (name each): [Modes]
Scopes I allow (fill, text, stroke, gap): [Scopes]
Alias rules I can prove (or NONE): [Aliases]
Code syntax I want (CSS, JSON) or NONE: [Code]
What must never be a variable: [Never]
Words I must not use: [Banned]
How many collections: [Count or 2]
What I must not emit: [NotFiles]
That inventory is the honesty ledger. Anything that does not appear there is forbidden in the draft. If you catch yourself adding a nice-to-have after the run, you are no longer using the card. You are ghostwriting. Put the extra fact in Inputs and run again.
Modes only the names in Modes
Generate is numbered on purpose. Do not skip a step because the first paragraph looked done. The early steps exist to stop later prose from smuggling claims.
Walk the Generate list in order:
- Honesty ledger: file, every hex and size in Kit, mode names, scopes. Forbidden: colors and modes not in Kit or Modes.
- Collections: Count collections named from File or Kit. Do not add a Motion collection unless Kit has motion.
- Mode table: each Modes column. Resolve each variable per mode using Kit only. Missing mode value writes NOT IN INPUTS.
- Scopes: attach Scopes to each variable. Do not scope a color to gap unless Scopes said so.
- Aliases: only Aliases. If NONE, no aliases.
- Code: only if Code is not NONE. CSS custom properties or JSON from the same names. Not Make prompts.
- Refuse: NotFiles (Figma Make TOKEN brief, LinkedIn banner spec).
- Compliance pass: quote Banned words, invented hex, Make-only fields. Cut them.
If a step asks for a version lock, quote the version from Inputs in the output. If a step asks for a refuse list, keep the refuse list in the published artifact, not in a sidebar you delete. Reviewers should see what the model was not allowed to do.
Do not invent a dark palette
Most failures are the same shape: a missing field gets a confident fill. A conversion rate appears. A Gradle task appears. A flash point appears. A caption appears on a job that asked for slide text only. Your review is to search the draft for numbers, names, and commands, then grep Inputs. No match means cut.
Honor the constraints as hard stops, not vibes:
- Figma Variables collections and modes. Not Figma Make, not a generic token essay, not a LinkedIn banner.
- Never invent a hex, type size, or mode.
- Do not invert a light palette into dark unless Kit gave dark values.
- If Code is NONE, skip export syntax.
- No emojis.
When the card says not legal advice, not certification, not an exam dump, or not a caption engine, that sentence belongs at the top of the output. Deleting it to look more finished is how you inherit risk.
Not Figma Make and not a LinkedIn banner
Finish with the compliance pass the prompt already asks for. Quote the banned-word hits. Cut them. Print character counts when the job has a cap. Print word counts when the job has a budget. List gaps as gaps. Five missing facts are more useful than one smooth paragraph.
Tags on the card (figma variables modes, figma collection mode map, brand kit to variables) are a reminder of the job shape, not an invitation to wander into a neighboring cluster. If you need a different surface, open a different PromptDig card rather than stretching this one.
Fill the card, then run
Replace every bracket. Run on ChatGPT, Claude, or Gemini. Read the ledger first, then the artifact. If the model invents a commit, KPI, DOI, PEL, bid, or logo, discard the run. Tighten Inputs. Run again. Share the filled card that survived, not the first draft that sounded done.