Design systems

Design systems with AI: from brand chaos to one Markdown file

8 min read · beginner friendly

Here's the problem everyone hits the moment they let AI generate UI: the output looks different every time. A landing page with an ocean-blue hero, a dashboard with violet buttons, a deck with red accents — none of it reads as the same brand.

The fix is boring, small and powerful: a design spec file. One Markdown document the AI reads before every generation. It's the difference between "an AI made this" and "our team made this with AI".

DESIGN.md: the one-file design system

The pattern got its name and its momentum from the open-source awesome-design-md collection — 73 real brand specs, 100K+ stars, written in one format. The premise: if your design system lives in one Markdown file, any agent (Claude, Codex, Figma plugins, your own scripts) can consume it. No Figma handoff, no token export script, no "please read the style guide PDF".

What a good DESIGN.md contains

Generating yours: extract, don't invent

For most brands, the fastest route isn't writing from scratch — it's extracting from what already exists. The DESIGN.md Chrome extension reads a live site and emits a spec file in one click. Run it on your current site, your best competitor-free reference, or even an old brand PDF, then refine.

If you're starting cold, generate a draft with your AI tool of choice, then spend 20 minutes making it strict. A spec that says "primary blue" is noise; a spec that says "primary: #1E3A8A, used for CTAs and links only; never for backgrounds" is leverage.

Example skeleton

# Brand: Northwind
Identity: calm, precise, independent. Think Scandinavian furniture, not tech hype.

# Color
--ink: #16161A    /* text & headers */
--paper: #FBF8F2  /* page background */
--accent: #C2442C /* CTAs, links, hover; never backgrounds */

# Typography
Display: Georgia, serif — headlines only
Body: Inter, sans-serif — 16-18px, 1.6 line height
Rules: never use ALL CAPS headings; never center body text

# Component: Button
Default: ink background, paper text, 6px radius
Hover: accent background
Disabled: 40% opacity, no shadow

# Anti-patterns
- No gradients, ever
- No emoji in UI (icons are line SVG only)
- No dark mode (single light theme)
- No stock photo clichés (handshake, skyscraper, puzzle pieces)

Using the spec in your workflow

  1. Attach it to every generation — paste it at the top of every prompt, or put it in the agent's system context. Consistency comes from the AI never *not* seeing it.
  2. Reference token names, not values — "use --accent for the button" beats "use #C2442C" because the spec stays the single source of truth.
  3. Review against the spec, not taste — when an output looks wrong, check the spec first: did the AI violate a rule, or is the rule wrong? Fix the file, not the prompt.
Pro move: treat your DESIGN.md like code. Commit it, version it, and review it when a design review goes badly. Teams that maintain the spec file ship consistent design with a fraction of the effort.

Beyond one file

When your system outgrows a single file, split it the same way codebases split modules — tokens, components, voice, patterns — but keep a master index that references them all. The agents don't care; they read whatever structure you give them. The humans care a lot: a system you can't navigate is a system nobody maintains.

Browse more design-system tools in the resource library.

← Back to all guides