Design-First UI Prompting Skill
This skill is for design-first prompting: turn fuzzy ideas into a tight spec that produces consistent UI.
When to use this skill
- Turning a fuzzy UI idea into a tight, skimmable spec using the GOAL / FORMAT / LAYOUT / TYPE SYSTEM / COLOR+MATERIAL / IMAGERY / COPY / CONSTRAINTS / NEGATIVE PROMPT skeleton.
- Locking a single "system" (layout, hierarchy, copy) first, then iterating by changing one variable at a time (angle/crop, accent color, card arrangement, background tone).
- Working around unreliable AI-generated typography with the 2-pass workflow: generate without text, then typeset the copy separately (e.g., in Figma).
- Building a "constraints card" (FONT / STYLE / MODE) to anchor a model's output like a mini style guide, or maintaining a local, gitignored reference pack instead of expecting the model to "remember" taste.
- Running the fast-iteration checklist (spacing, contrast, one-hero-line hierarchy, single accent color, texture) or the vague-user question list to clarify what a UI generation request actually needs.
- Not for defining or governing a shared design-token/visual-language system across pages and products (route to
design-system), not for responsive/breakpoint layout strategy or verification (route to responsive-design), and not for reusable component API architecture (no dedicated owner skill currently exists in this repo — treat as a design-system boundary question).
Core principle
Prompt like a design system, not a wish.
Prompt Structure (copy/paste)
Use this skeleton, then fill the blanks.
GOAL
- What are we making? (e.g., landing page hero / onboarding / dashboard / carousel slide)
- Who is it for? (persona)
- What’s the success criteria? (clarity, conversion, vibe)
FORMAT
- Size/aspect: (e.g., 1080x1350)
- Safe margins: (e.g., 90px)
LAYOUT (wireframe in words)
- Grid: (e.g., Swiss 6-col)
- Placement: (e.g., type-left / image-right)
- Hierarchy: H1 → subhead → body → CTA
TYPE SYSTEM
- Font vibe: (e.g., Söhne / Neue Haas / SF Pro)
- Weights: (H1 700, body 400)
- Leading: (tight for H1, readable for body)
- Tracking: (micro labels wider)
COLOR + MATERIAL
- Background: (hex or description)
- Text: (white/ivory/charcoal)
- One accent only: (cyan/lime/purple)
- Texture: (subtle grain, no plastic HDR)
IMAGERY / UI STYLE
- UI style: (minimal / glass / editorial / playful 3D)
- If photo: lighting + crop + texture rules
- If 3D: materials + lighting + softness
COPY (render EXACTLY)
- Line 1:
- Line 2:
- ...
CONSTRAINTS (change 1–2 things only)
- FONT: ___
- STYLE: ___
- MODE: ___
NEGATIVE PROMPT
- No logos, no watermarks
- No extra text beyond provided lines
- No gibberish typography
Rules that improve consistency
1) Lock one “system”, then iterate with variants
- First output: nail layout + hierarchy + copy.
- Variants: change ONE variable at a time:
- angle / crop
- accent color
- card arrangement
- background tone
2) Treat typography as fragile
If the model keeps misspelling:
- Use 2-pass workflow:
- Generate without text (reserve a clean text-safe area)
- Typeset in Figma
3) Use “constraints cards”
When you want the model to obey a style:
- Add a small “Constraints” panel with explicit values.
- It anchors the output like a mini style guide.
Example:
Constraints
FONT CANELA
STYLE MINIMAL
MODE DARK
4) Keep a local reference pack
Don’t ask the model to “remember” taste.
- Save references into a gitignored local reference folder, such as
refs/...
- Point prompts to the reference style
Fast iteration checklist (what to tweak)
- Spacing: margins, leading, baseline rhythm
- Contrast: background vs text
- Hierarchy: one hero line, one support line
- One accent only (don’t rainbow)
- Texture: add grain, remove smoothing
Questions to ask (when user is vague)
- What’s the single message of this screen?
- What’s the hierarchy (H1 / sub / CTA)?
- Which style lane: minimal editorial vs playful 3D vs glass UI?
- Any must-keep constraints (font vibe, color, spacing, grid)?
References
1---2name: design-first-ui-prompting3description: Use when you need design-first, spec-driven, skimmable prompts for UI generation. Covers prompt structure, constraints, variations, typography/spacing rules, and iteration workflow for consistent UI outputs.4license: MIT5---67# Design-First UI Prompting Skill89This skill is for **design-first prompting**: turn fuzzy ideas into a tight spec that produces consistent UI.1011## When to use this skill1213- Turning a fuzzy UI idea into a tight, skimmable spec using the GOAL / FORMAT / LAYOUT / TYPE SYSTEM / COLOR+MATERIAL / IMAGERY / COPY / CONSTRAINTS / NEGATIVE PROMPT skeleton.14- Locking a single "system" (layout, hierarchy, copy) first, then iterating by changing **one variable at a time** (angle/crop, accent color, card arrangement, background tone).15- Working around unreliable AI-generated typography with the 2-pass workflow: generate without text, then typeset the copy separately (e.g., in Figma).16- Building a "constraints card" (FONT / STYLE / MODE) to anchor a model's output like a mini style guide, or maintaining a local, gitignored reference pack instead of expecting the model to "remember" taste.17- Running the fast-iteration checklist (spacing, contrast, one-hero-line hierarchy, single accent color, texture) or the vague-user question list to clarify what a UI generation request actually needs.18- Not for defining or governing a shared design-token/visual-language system across pages and products (route to `design-system`), not for responsive/breakpoint layout strategy or verification (route to `responsive-design`), and not for reusable component API architecture (no dedicated owner skill currently exists in this repo — treat as a `design-system` boundary question).1920## Core principle21**Prompt like a design system, not a wish.**2223## Prompt Structure (copy/paste)24Use this skeleton, then fill the blanks.2526```text27GOAL28- What are we making? (e.g., landing page hero / onboarding / dashboard / carousel slide)29- Who is it for? (persona)30- What’s the success criteria? (clarity, conversion, vibe)3132FORMAT33- Size/aspect: (e.g., 1080x1350)34- Safe margins: (e.g., 90px)3536LAYOUT (wireframe in words)37- Grid: (e.g., Swiss 6-col)38- Placement: (e.g., type-left / image-right)39- Hierarchy: H1 → subhead → body → CTA4041TYPE SYSTEM42- Font vibe: (e.g., Söhne / Neue Haas / SF Pro)43- Weights: (H1 700, body 400)44- Leading: (tight for H1, readable for body)45- Tracking: (micro labels wider)4647COLOR + MATERIAL48- Background: (hex or description)49- Text: (white/ivory/charcoal)50- One accent only: (cyan/lime/purple)51- Texture: (subtle grain, no plastic HDR)5253IMAGERY / UI STYLE54- UI style: (minimal / glass / editorial / playful 3D)55- If photo: lighting + crop + texture rules56- If 3D: materials + lighting + softness5758COPY (render EXACTLY)59- Line 1:60- Line 2:61- ...6263CONSTRAINTS (change 1–2 things only)64- FONT: ___65- STYLE: ___66- MODE: ___6768NEGATIVE PROMPT69- No logos, no watermarks70- No extra text beyond provided lines71- No gibberish typography72```7374## Rules that improve consistency7576### 1) Lock one “system”, then iterate with variants77- First output: nail **layout + hierarchy + copy**.78- Variants: change **ONE variable** at a time:79 - angle / crop80 - accent color81 - card arrangement82 - background tone8384### 2) Treat typography as fragile85If the model keeps misspelling:86- Use **2-pass workflow**:87 1) Generate without text (reserve a clean text-safe area)88 2) Typeset in Figma8990### 3) Use “constraints cards”91When you want the model to obey a style:92- Add a small “Constraints” panel with explicit values.93- It anchors the output like a mini style guide.9495Example:96```text97Constraints98FONT CANELA99STYLE MINIMAL100MODE DARK101```102103### 4) Keep a local reference pack104Don’t ask the model to “remember” taste.105- Save references into a gitignored local reference folder, such as `refs/...`106- Point prompts to the reference style107108## Fast iteration checklist (what to tweak)109- Spacing: margins, leading, baseline rhythm110- Contrast: background vs text111- Hierarchy: one hero line, one support line112- One accent only (don’t rainbow)113- Texture: add grain, remove smoothing114115## Questions to ask (when user is vague)116- What’s the single message of this screen?117- What’s the hierarchy (H1 / sub / CTA)?118- Which style lane: minimal editorial vs playful 3D vs glass UI?119- Any must-keep constraints (font vibe, color, spacing, grid)?120## References121122- Upstream source: [MengTo/Skills — design-first-ui-prompting](https://github.com/MengTo/Skills/tree/main/agent-skills/ui/design-first-ui-prompting)123- [ARTICLE.md](./ARTICLE.md) — longer-form article version of this workflow124- [REFERENCES.md](./REFERENCES.md) — external inspiration/reference sources (Mobbin, Bento Grids, Figma Community, Iconify, Simple Icons)