How AI Ruined My Favourite Colour
| 11 min read
Contents
- Preface
- What purple used to mean
- The Adam Wathan moment
- The flattening
- Other casualties
- Reclamation
- Coda
Preface
Purple isn't my favourite colour because I think it's pretty. It's because of what it pointed at. Every fictional sorcerer wore robes of it. Every threshold between worlds glowed with it. Every cosmic horror, every gateway to the abyss, every villain whose deal was unknowable power had a colour, and that colour was always somewhere on the spectrum between violet and indigo. Purple was the colour of mysticism, of the void between stars, of the in-between place neither day nor night nor good nor evil nor this world nor the next. It was the colour of being other.
And then, sometime around 2024, every product I touched started looking the same. Open Claude, ask it for a landing page: purple gradient. Spin up a v0 project: purple gradient. Generate a hero section in Lovable, scaffold a marketing site in Cursor: purple gradient. The colour of the abyss became the colour of a "Try it free for 14 days" button.
You can't see something every day for two years and have it keep meaning what it used to mean. That's not how meaning works. So here's the thing nobody warned me about with AI: it can't ruin one website. It can only ruin all of them at once.
What purple used to mean
Before we get to what AI did, it's worth tracing what AI took.
Purple is a colour with one of the longest semiotic ranges in the Western imagination. Tyrian purple, the original, was extracted from the murex sea snail in coastal Phoenicia, and it took something like 250,000 snails to dye a single robe. It was literally the most expensive pigment in the ancient world. By the time of Justinian, only emperors were legally permitted to wear it. The phrase "born in the purple" (porphyrogenitus) meant born into legitimate imperial succession. Purple was the colour of being chosen.
It became the colour of magic via the same route everything mystical does: rare and expensive things accrete supernatural meaning. The Catholic Church uses purple for Advent and Lent, the penitential seasons, the periods of waiting and reckoning before the bright colours of Christmas and Easter. Wizards wear it because of medieval illustrations of the magi. Witches wear it because the witchcraft revival of the 20th century pulled freely from clerical and royal iconography both.
Then comes the popular-culture stratum, where it really got teeth for anyone my age. Prince's Purple Rain (1984): purple as transcendent funk-rock spirituality, the colour of being too much on purpose. Hendrix's Purple Haze (1967): purple as altered perception. Goth, from the late 1970s onward: purple as the colour of rejecting the daylight. Dark academia, decades later: purple as the colour of unhealthy obsession with reading. Synthwave and outrun: purple as an 80s that never happened. Witchtok. Cosmic horror, the colour of the void between stars, of Lovecraftian gods who shouldn't be looked at directly. The whole His Dark Materials trilogy uses dust, that golden-purple shimmer, as the literal substance of consciousness and otherness.
And then Raven Roth, in the 2003 cartoon. A half-demon teenager raised in a parallel dimension, perpetually deadpan, who wore a deep purple cloak and used dark magic and refused to speak louder than necessary. For a generation of kids she was the correct aesthetic answer to the question "what would a teenager actually be like if she had powers". Not bright like Robin, not loud like Beast Boy, not earnest like Starfire. Quiet. Cloaked. Purple. I drew her in the margins of every notebook I had in school. She was the recurring character in the concept art I'd sketch when I was supposed to be paying attention to something else. The cloak was always the thing I'd get right first.
That's the colour. Royal, mystical, transgressive, mournful, cosmic, witchy, gothic. The colour you picked when you wanted to mark something as not normal. One of the widest semiotic ranges available, the marker for otherness, full stop.
The Adam Wathan moment
In August 2025, the creator of Tailwind CSS, Adam Wathan, posted this on Twitter:
"I'd like to formally apologize for making every button in Tailwind UI
bg-indigo-500five years ago, leading to every AI generated UI on earth also being indigo."
The tweet got over a million views. It was treated as a joke. It is not really a joke.
Here's the actual chain of events. In 2020, when Tailwind UI shipped its first batch of paid component examples (buttons, cards, navbars, landing pages), Adam picked indigo-500 as the default accent colour for the demos. It was a deliberately unopinionated choice: a placeholder. Something neutral and inoffensive that showcased the component's structure without implying a brand. Same reason designers use Lorem Ipsum.
The thing he didn't anticipate, because no one anticipated this, is that Tailwind UI's examples became the most copied snippets of CSS on the internet between 2020 and 2024. Every tutorial cribbed the indigo button. Every Tailwind blog post used the indigo accent. Every developer learning React-and-Tailwind for the first time inherited the colour. By 2024 a substantial fraction of all the new SaaS marketing pages on the visible web were tinted indigo, not because anyone thought it was the right brand choice but because nobody had bothered to override the default.
Then the LLMs got trained. GPT-4 in early 2023, Claude 3 in March 2024, Gemini, Llama 3. All trained on internet-scale corpora that include vast amounts of front-end code scraped from GitHub between 2019 and 2024. The statistical truth those models learned: a "button" in a "modern landing page" is bg-indigo-500. So when you tell any current AI "build me a landing page", you get a button that's bg-indigo-500. It's not aesthetic preference. It's not even default behaviour. It's the median of the training data, faithfully reproduced.
A single design decision, by one person, in one component library, in 2020, became the colour of a generation of AI-generated software five years later, after laundering through a training corpus.
The flattening
So the colour got popular. Big deal. People get tired of colours all the time. Beige was huge in the 90s, mid-century green was unavoidable in 2018, every brand was Klein-blue in 2023. Why is this different?
It's different because of what gets lost when AI does the popularising. When a colour spreads through culture organically, with minimalism inheriting it from Bauhaus and hip-hop inheriting it from Prince, the colour keeps its meanings. It picks up new ones along the way. The semiotic range expands.
When AI spreads a colour, it does the opposite. The same purple that used to mean Raven's cloak, Prince, the void, dark magic, the threshold now means "a generic startup that launched today". The colour didn't gain a meaning; it had its meanings taken. Because if every product you see is purple, then purple no longer marks the unusual. The unusual is the median. The signal of otherness becomes the signal of generic.
This is exactly the mechanism I wrote about in the Karpathy primer post: LLMs predict the median of their training data, not a creative choice. They were never going to give you something specific unless you forced them to. And what they pick to be the median becomes, by sheer volume of output, the new median for everything downstream. The colour with a hundred specific meanings becomes the colour with one boring meaning, because the AI's output is now the corpus that the next AI gets trained on.
The result is not that purple is overused. The result is that purple is evacuated. The capacity of the colour to do the cultural work it used to do, marking the witchy, the transgressive, the cosmic, the in-between, has been quietly drained while the colour itself spreads everywhere. It's the inversion of the usual story. Normally things lose their power by being forgotten. Purple is losing its power by being remembered too much, in the wrong way.
That is a different kind of loss. And it's harder to argue against, because nothing visible is wrong. There's just more of it, everywhere, looking the same.
Other casualties
Purple isn't the only one. Once you see the pattern, the aesthetic signature of AI-generated software is recognisable on sight:
- Inter font. Rasmus Andersson's clean, geometric Swedish humanist sans-serif, released in 2017 as a love letter to GitHub's UI. Inter used to read as "tech-forward modernism". It now reads as "I asked Claude to make me a landing page". Same fate as purple, exact same mechanism: massively over-represented in scraped Tailwind/shadcn corpora, therefore the LLM-default for "modern UI font", therefore drained of distinct meaning.
rounded-2xl shadow-lgcards. Three of them in a grid, each with an icon, a heading, two lines of body copy. The "features section" of every AI-generated landing page. The component itself isn't bad; the signature of seeing exactly that arrangement is now the signature of un-thought.- The em-dash, used like — this — historically a literary punctuation choice, associated with writers who like the texture of interruption. GPT-4 and Claude love them. So now using an em-dash in long-form prose makes people assume the text is AI-written, which means writers who used em-dashes naturally are quietly retreating from them. The actual loss: one of English's most expressive marks of punctuation, abandoned because it became a tell. (Yes, I'm aware of the irony. I left one in this sentence on purpose. I cut every other one in the post.)
- Gradient blob backgrounds, the kind that say purple to pink, abstract, soft. Stripe pioneered them around 2019, every SaaS marketing site adopted them by 2022, every AI now defaults to them. They used to read as "modern web". Now they read as "this page was generated".
- The "✨" sparkle emoji, ubiquitously prefixing AI-related copy. "✨ Powered by AI ✨ Get started in 60 seconds ✨ Trusted by 500+ teams ✨". The emoji itself didn't do anything wrong. It just became the visible bar code of "this was written by an LLM".
Every one of these is a small example of the same large thing: AI doesn't create an aesthetic. It collapses existing aesthetics into a median, then exports the median back into the world at scale, until the median has eaten the meaning of everything that fed into it.
Reclamation
The blog you're reading right now is lavender. The accent colour is #c7b8ff in light mode: a specific tone, light, warm, slightly bluish, slightly pink. My main site, zaakir.io, has been purple since 2022, in the much bolder #9d86ff cosmic shade. Both of these are deliberate. Neither is bg-indigo-500.
I'm aware of the irony. The colour I love is the colour AI ruined, and my response is to keep using it anyway. But that's actually the point. The answer to "AI is making everything look the same" isn't to abandon the things AI is replicating; it's to stop letting AI choose for you. To pick your colours the way people picked colours before: with intention, with reference to what they meant to you, with willingness to defend the choice.
If I let AI ruin purple for me, I lose Raven. I lose Prince. I lose the cloak and the void and the threshold. I lose the colour of the things that made me want to be a particular kind of person when I was twelve. That's an unacceptable trade. The colour isn't broken; the default is broken. And defaults are a choice you can override.
So I picked lavender for the blog, knowing every AI-generated UI in 2026 will be some flavour of the same colour family. I'm not trying to escape the comparison. I'm staking a flag in the same territory and saying no, this one means what it used to mean. Mysticism. Edge. Threshold. Half-demon. The void. Raven. Prince. Everything before bg-indigo-500.
Coda
The fix to the AI-purple problem isn't picking a different colour. It's picking deliberately, and committing.
Every AI default, colour, font, layout, punctuation, represents a small surrender of authorship. The system picked, you accepted, and what you ship is the median of a corpus you didn't curate. Multiply that by a million people doing the same thing and you get the visible result we have now: a software landscape where everything looks like everything else, in the same shade, with the same gradients, the same shadow depths, the same em-dashes.
The way out is not technical. There's no tool, no Cursor rule, no Claude Skill that fixes this for you, because the problem isn't AI giving you bad colours; it's you not having opinions about what colours mean. The fix is older than computers: care about the small choices. Read about why purple meant what it meant before someone decided it should mean nothing. Pick the shade you like, the one that points at something specific, and stop letting the median pick for you.
The void doesn't have a Stripe button. You do, if you choose. That's the difference between using a colour and being used by one.