v0

DESIGN.md for v0

How to use DESIGN.md with Vercel v0 to generate UI, prototypes, and full-stack app surfaces that match your real product design system.

Dima BravenDima Braven7 min read

See it in practice

Related DESIGN.md references

Browse all →

Why v0 and DESIGN.md fit together

The v0.app homepage prompt box asking "What do you want to create?" with template starting points below
v0.app — a blank prompt box by default. DESIGN.md is what fills the gap between the prompt and your product.

v0 is built for turning prompts into real code, UI, prototypes, and app surfaces. It is especially useful for product managers, designers, engineers, and marketers who want to move from idea to interactive output quickly. But high-fidelity generation still needs high-fidelity instructions. A screenshot helps, a Figma file helps, and a clear prompt helps, but DESIGN.md gives v0 a reusable written model of the design system. It can describe the rules behind the screenshot: why a card is compact, how buttons behave, which colors are semantic, how typography scales, and what a generated page should never do.

Prompting with a design file

A good v0 workflow starts by pasting the relevant DESIGN.md sections into the prompt or linking to a public file when available. Ask v0 to follow the file as a constraint, not just as inspiration. This is much more useful than asking for a "modern settings page" because it gives v0 a concrete target to implement.

v0 prompt
Generate a settings page using this DESIGN.md.
 
Keep the interface quiet and operational. Use the defined tokens,
type scale, form spacing, button variants, and empty-state rules.
 
Avoid hero copy, decorative background effects, and oversized cards.
 
--- DESIGN.md ---
[paste the relevant sections here]

Use it for design systems, not only pages

v0 can produce single components, full pages, and richer app flows. DESIGN.md helps across all three. For a component, it tells v0 how variants, disabled states, focus states, and density should work. For a page, it tells v0 how sections should stack, where actions belong, and what the hierarchy should be. For a full app surface, it creates continuity between routes. That is important when you generate a dashboard today, a billing screen tomorrow, and an onboarding flow later. Without a shared visual brief, each generation can look like a different product.

Generation scopeWhat DESIGN.md controls
Single componentVariants, disabled/focus states, density.
Full pageSection stacking order, action placement, visual hierarchy.
App surface (multiple routes)Continuity — dashboard, billing, and onboarding share one visual system.

Review loop

After v0 generates output, compare the result against DESIGN.md. If the generated code reveals a missing rule, update DESIGN.md. This turns the design system into a living prompt asset. The point is not to make v0 less creative. The point is to aim that creativity at your product language so the generated UI can move closer to production instead of stopping at a nice-looking demo.

v0 correction prompt
The file says cards should be 8px radius and dense;
reduce radius and vertical padding to match DESIGN.md.

Use DESIGN.md with a real product reference

Browse curated DESIGN.md examples from product teams, design systems, developer tools, SaaS dashboards, and AI-native apps. Use them as references before your agent builds the next screen.

Related guides

Frequently asked questions

Can I just paste a DESIGN.md file into a v0 prompt?

Yes — v0 has no repo file access like Cursor or Claude Code, so pasting the relevant DESIGN.md sections directly into the prompt (or linking a public file) is the standard workflow.

Does v0 remember DESIGN.md across sessions?

No. Each v0 generation is a fresh prompt, so re-paste the relevant DESIGN.md sections (or reference a hosted URL) at the start of every new generation or major revision.

What if v0-generated code conflicts with our production design system?

Treat v0 output as a draft: run it through the same review loop as any other AI-generated UI — check it against DESIGN.md rule by rule, and fold any gap you find back into the file.