Ask any LLM to "make this landing page look like a high-end Swiss design studio" and you'll get something that gestures at the idea — a sans-serif font, some whitespace, maybe a red accent because it half-remembers Müller-Brockmann. It looks AI-generated because it is. The model has read a billion words about design but has no grounded, reusable representation of what "Swiss International Style" actually specifies: the exact grid, the type scale, the spacing ramp, the rules for what you must not do.
That gap is the whole problem. Models are great at language and bad at design systems, because a design system isn't language — it's a set of constrained values plus the discipline to apply them consistently. So I built the missing piece: a library of real design styles, turned into something a machine can actually consume.
It's called Curio. This post is about the part I think is interesting to other builders: making design machine-readable, and publishing the catalog for agents instead of for humans.
The insight is boring and that's why it works. Pick any coherent visual language — Bauhaus, Memphis, the Edo woodblock palette, Stripe's product aesthetic — and you can decompose it into:
Once a style is expressed that way, an AI doesn't have to imagine the look. It interpolates within a fixed, internally-consistent set of values. The output stops looking like a guess because it isn't one. Each style in Curio is packaged exactly like this — tokens, component specs, and an explicit "avoid" list — as a DESIGN.md file — markdown with YAML frontmatter — that a model can read in one shot (what is DESIGN.md?).
meta:
name: Swiss International Style
isDark: false
color:
ink: "<hex>"
paper: "<hex>"
accent: "<hex>" # values intentionally omitted here
type:
family: "Helvetica Neue, Inter, sans-serif"
scale: [<px>, <px>, <px>, …] # 7-step modular scale
rules:
always: ["strict baseline grid", "flush-left, ragged-right body"]
never: ["centered paragraphs", "more than two weights", "decorative type"]
Here's the design decision I keep getting questions about. Curio's primary user isn't a person browsing a gallery — it's the agent acting on a person's behalf. When someone tells their assistant "design my deck like a 1980s arcade," the agent should be able to discover that a matching style exists and fetch its tokens, without a human in the loop.
So the catalog is published the way you'd publish for a crawler that thinks:
llms.txt
llms-full.txt
index.json
— the entire catalog as structured data (id, name, tags, color family, era, region, usage), so an agent can filter "give me dark, East-Asian, editorial" without scraping HTML.This costs almost nothing to maintain (it's generated from the same source the site is built from) and it changes who the product is for. A human-first directory makes agents scrape and guess. An agent-first directory just answers. If you're building anything an LLM is supposed to consume, I'd push the llms.txt
- open-JSON pattern hard — it's the cheapest "API" you'll ever ship.
There's a second reason to publish structured, citable pages: AI search. When someone asks Perplexity or ChatGPT "where do I find design tokens for a Bauhaus look," the answer comes from indexed, structured pages — not from a JS app that renders an empty shell. Every Curio style has a server-rendered page with the spec in the HTML, schema markup, and a stable URL. The same discipline that makes a page good for Googlebot makes it good for an AI engine citing sources. Designing for "the crawler is now a model" turns out to be the same checklist, just with the bar raised.
Curio has 1,000+ styles right now and grows weekly. Browsing and using it is free; there's a Pro tier for the full set. But honestly, the reason I wrote this is the pattern, not the pitch: treat design as data, and publish your catalog for the agent, not just the human. If you try the llms.txt
approach on your own project I'd love to compare notes — and if the "why does AI design all look the same" problem is your itch too, I wrote up the longer argument here.
If you want to poke at it: designbycurio.com — and the llms.txt /
index.json