Open navigation
Back to Articles

October 2026 · 8 min read

AI-Generated Design: How to Tell (and How to Fix It)

Spotting an AI-built interface takes seconds: the same gradients, fonts, cards, and copy everywhere. Where the tells come from, and the techniques that break the pattern.

AI-Generated Design: How to Tell (and How to Fix It) article cover

The short answer

You can spot an AI-built interface in seconds, and the reason is convergence. Given the same prompt, every major model reaches for the same gradient, the same font, the same three-card layout, and the same copy. The result is a genre of websites that look produced by one very busy committee.

I score AI-built web apps every month on OpenVibeEval, where several models get an identical prompt and their outputs sit side by side. After a few hundred screenshots you stop needing the code: the palette alone usually tells you which model family built a page.

The useful part is that the tells are consistent enough to list, and the causes are known. A model defaults to the statistically safest choice at every step, and the safest choice is the average of its training data. Fix the input, or inject some randomness, and the output stops looking templated. This article lists the tells, explains where they come from, and then covers the techniques that break the pattern.

The purple gradient is a fingerprint

The single most reliable tell is a purple-to-blue gradient across headlines, buttons, and backgrounds. Design researchers at the Fountain Institute describe purple-to-blue as statistically the most common gradient in tech product marketing, and the reasoning is straightforward: Notion, Linear, and Vercel made it the default hero treatment for "innovative software," their imitators multiplied it across the training data, and the models learned the association wholesale.[2]

Dark mode comes with its own version. A soft radial glow sits behind the hero text, the "aurora borealis" look that makes you check whether the screen or the website is broken. Gaming, crypto, and AI product sites lean on it heavily, so models learned "glow equals premium" without asking whether it serves the page.

Neon palettes round it out. The sloppiest runs distribute five or more neon colors across the interface with no single focal color, because neon-on-dark photographs well on Dribbble and similar galleries are overrepresented in design training data. Ask for "modern" and you get the training set's idea of modern, not a decision.

Cards on cards, dots on everything

Structure gives away the rest. Every element lands in a rounded container, and containers nest inside containers, until the page reads as organization without hierarchy. The models know content needs a home, but they apply the rule recursively, with no sense that visual weight has a cost.

Two smaller habits compound it. First, the multicolored side tab: a small rainbow-colored strip stuck to the edge of each card or text block, adding color but no meaning. The Fountain Institute calls it "the em-dash of AI-generated UI," which is exactly right. Second, the status dot: a colored indicator pinned to every element, long after anything about it is live or connected. Developer tools and admin dashboards are full of colored dots in the training data, so "information" pattern-matches to "dot" even when a label would communicate better.[2]

And the emojis. Used as icons, as bullets, as background decoration, they stand in for real icon assets and real hierarchy decisions, exactly as they do in the marketing copy the models learned from.

The layout and the copy finish the job

Even with the palette and the cards removed, the skeleton is recognizable. Badge pill above a centered hero, three feature cards in a row, a logo strip, a testimonial, pricing, a closing call to action. Inter everywhere, or the nearest generic system stack. Every heading centered, every section the same width, nothing asymmetric anywhere.

The copy is its own tell. "Empower your workflow." "Get started in minutes." Testimonials with first names, stock roles, and no product specifics. The text is fluent, polite, and completely interchangeable with the text on the next site.

Regular benchmark viewers go one step further. The model families have different default tastes, enough that on a good day you can guess whether an OpenAI-family or an Anthropic-family model built a page before you check. When the average output is this distinctive, "fine" is not the compliment it sounds like.

Why every model lands on the same page

None of this is a mystery. A language model generates the next most likely token, and the most likely choice is the most average choice. Training then rewards crowd-pleasing: answers that please the most raters. The result is design by committee, and committees do not produce distinctive interfaces.

The failure compounds because the models cannot actually sample randomness. Ask for a "unique, creative landing page" four times with the same prompt and you get four pages that differ in wording and little else. Requests for uniqueness route through the same averaging machinery as everything else, the same way asking people to name a random number produces a flood of sevens and thirty-sevens. Anshu Chimala's piece on Lenny's Newsletter documents exactly this with side-by-side landing pages built from identical prompts.[1]

That is the whole problem in one sentence: the model reliably supplies structure, and structure is exactly what every other request for structure produces. What it cannot supply on its own is entropy and taste. Both have to come from outside.

Seed a real random number

Entropy has a known fix. Sakana AI published a prompting method called String Seed of Thought: have the model first generate a long random alphanumeric string, then derive the creative direction from subpatterns inside it. The string never appears in the design. It is raw material.

The derivation can be mechanical:

js
// The model invents the seed; the design is read out of it.
const seed = "9f3a7qzk2m84lvd";

const hue     = parseInt(seed.slice(0, 2), 16) * 360 / 255;  // any color family
const columns = (parseInt(seed.slice(4, 5), 16) % 4) + 1;    // 1-4 column rhythm
const mood    = ["brutalist", "print", "terminal", "editorial"][parseInt(seed.slice(8, 9), 16) % 4];

Hue, density, and mood move together, and because the string changes every run, no two outputs converge on the same landing page. You can also generate the seed outside the model entirely with a shell one-liner, which removes even the chance of the model regressing to its favorite strings. The underlying finding holds beyond design: if you want a real distribution of outputs, the randomness has to be imported from somewhere the averaging cannot flatten.[3]

Supply the taste the model does not have

Randomness gives you variety. Taste gives you a direction. Both come from the same place: you.

The cheapest version is a better prompt. Pull the reference out of web design entirely: a pixel-art landing page, an isometric 3D city where each feature is a neighborhood, a radically asymmetric layout with dissonant colors and uncomfortable negative space. Vague requests for "clean and modern" collapse to the average. Concrete requests from outside the genre cannot.

A workable loop for finding the direction:

  1. Ask for many broad, deliberately vague ideas, purely to react to.
  2. Visualize the favorites and note your reactions: what you like, what you hate, what to avoid ("no tacky skeuomorphism").
  3. Iterate on those reactions, then ask the model to write the build prompt for you.

Pasting the model's ideas straight back into it returns you to the average. Steering personally, with your reactions, is what produces designs only you could have made.

The heavier version adds a critic. Run a second model in a fresh context that sees only screenshots, never the code, the prompt, or the iteration history. Have it score the design one to ten against how a top studio would execute it, and stop when it independently says nine or better. Keep the bar out of the critic's prompt so it stays objective, and use a cheap model for implementation and a strong model for judgment; the critic's token share stays under ten percent of the run.[1]

One more substitution: real assets instead of gradients. Coding agents reach for CSS gradients and primitive shapes partly because generating an image sits outside their default toolkit, which makes gradients and shapes the tell itself. Image and video generation, wired into the same agent, adds personality that shape primitives cannot.

Then delete things

AI adds. It almost never removes. Overexplaining is a hallmark of generated design: gradients behind the text, highlights on random words, a redundant label under a labeled control, custom components where the platform's native ones were better. All of it reads as noise, and restraint is what reads as premium.

The models avoid deleting because deletion feels like risk. So you have to ask the question they will not: what actually needs to be on this screen? In one documented example, a "clean, minimalist" calorie tracker came back loaded with pink glows and redundant containers, then improved in one direction: an image-centric grid, the gradients gone, native iOS controls restored.[1]

Stripping the tells is the same move. One pass down the list above, removing rather than redesigning, takes a page from "AI-made" to "made."

A five-minute audit

Screenshot your page and check it against the list:

  1. One color counts as the accent, or do five neons compete?
  2. Is there a purple-to-blue gradient, or a glow, anywhere?
  3. Does anything on the page sit outside a card?
  4. Count the colored dots and side tabs. Does each one carry meaning?
  5. Read the headline and the two calls to action out loud. Could another product use them unchanged?
  6. Is the section order badge, hero, three features, testimonial, pricing?

Then show the screenshot to someone who builds things and ask one question: human or AI? If they hesitate, you have your answer. Using AI was never the tell. Stopping at the first draft is.

AI designUI designVibe codingGenerative AIFrontend

Sources

  1. lennysnewsletter.com
  2. pages.thefountaininstitute.com
  3. arxiv.org

Related articles

Press ? for keyboard shortcuts