Can ChatGPT Build a Design System?
Run the experiment: ask a chat model for “a complete design system for a SaaS product — color scales, a type scale, spacing tokens, accessible contrast.” What comes back is impressive. Well-organized layers, a 50–900 scale per hue, a type scale with a named ratio, spacing on a consistent grid, token names that follow real-world conventions, contrast annotations beside the color pairs. It reads like the work of someone who has studied a thousand design systems — which, in a meaningful sense, it is.
ChatGPT can scaffold a design system, but it cannot reliably own the values. The structure it produces — naming conventions, token layers, sensible ratio suggestions, accessibility reminders — is genuinely strong. The numbers inside that structure often don’t survive checking: contrast ratios that don’t reproduce when computed, scale steps that don’t follow the stated ratio, and a different set of values on every re-prompt. Use the model as scaffolder and advisor; let a deterministic source own every value.
That split — and how to run it in practice — is what this article, part of our guide to AI and design systems, works through.
What does ChatGPT actually get right?
More than skeptics expect. The structural layer of a design system is knowledge that lives in text — articles, documentation, conference talks — and synthesizing text is exactly what a language model is built for. Ask it how to organize tokens and it will describe the primitive → semantic → component layering that mature systems converge on. Ask which type ratio suits a dense dashboard and it will reason sensibly about content density. Ask it to name things and the names will follow conventions your future teammates will recognize.
For a team without a design-systems specialist, that scaffold alone can be worth the conversation. It is honest to say the model plays the role of a well-read advisor here — and plays it well.
Where do the values break down?
The failures fall into classes that stay recognizable regardless of which model or version you use:
- Arithmetic approximation. A type scale is exponential math — base × ratio^n — and a model answering directly from language tends to approximate the result rather than compute it. The steps look plausible and drift from the stated ratio; our article on why AI gets type scale math wrong walks through the exact numbers.
- Asserted rather than computed checks. Contrast figures arrive with confident precision — “4.6:1, passes AA” — but recompute them from the actual color pair and a meaningful share don’t match. The number was generated to look like a verification, not produced by one.
- Sampling variance. Ask again tomorrow and you get a different system, equally confident. Nothing anchors one answer to the next — the same behavior that makes AI-generated interfaces drift off-brand over time.
One honest caveat: assistants that can run code compute correctly when they actually do so. The failure class belongs to values produced directly from language — and the deeper problem is that the output gives you no way to tell which kind you received. A computed number and an approximated one look identical in a neat markdown table.
How do you check a claimed type scale?
Take the type scale from the model’s answer and put it next to a computed one. Open a computed perfect-fourth scale in Scale Composer — base 16, ratio 1.333, every step calculated as base × ratio^n and rounded against the exact value. If the model’s numbers match, they were right. Where they diverge — typically in the upper steps, where exponential error has had room to compound — you’re looking at the approximation directly.

This check takes about a minute, and it changes how you read the rest of the model’s output: structure and advice, trustworthy; unverified numbers, pending.
What should own the values instead?
A source where every value is calculated, stored, and referenced — design tokens produced by a deterministic system rather than sampled by a generative one. Our article on design tokens as the interface between design and AI covers the contract; the short version is that each class of value the chat model guessed at has a right answer a system can compute. One global scale — base, ratio, steps — can drive typography, spacing and color ramps together. Color steps can be placed on perceptual lightness curves in OKLCH instead of eyeballed. Semantic roles can be derived with a WCAG contrast floor enforced and scored with APCA. A dark theme can be derived as its own variant rather than inverted. None of that requires judgment each time; it requires the same calculation every time.
What does the roundtrip look like?
The working arrangement isn’t ChatGPT versus a deterministic system — it’s a loop between them:
- Direction in chat. Ask for ratio recommendations, palette mood, naming conventions, structure. This is where the model earns its place.
- Values computed. Feed the chosen direction into the deterministic source and let it calculate the actual numbers.
- Tokens exported. Take the result out as
CSS custom properties,
a Tailwind v4
@themeblock, DTCG JSON, or Figma Variables — whichever format your project reads. - Tokens back into the conversation. Paste the file into the AI project and instruct the model to reference token names, never to invent values. Referencing a name from a short visible list is a task language models handle reliably; holding fifty exact values stable across sessions is not.
The loop plays each participant on home turf: the model reasons about the system in language, the system holds the system in numbers.
Close the loop
The export step is where the answer to the headline question turns practical: open the same scale at the export step and look at what actually goes back into the chat — named tokens with computed values, in a format the model can only reference, not re-imagine. Can ChatGPT build a design system? It can draft the architecture of one. The file that ships is the part you compute.