AI in web design
AI today drafts a page in minutes and stops there: what it hands you looks like a thousand other pages, because it learned from them. Our position is simple, draft with a model and ship with human judgment, and the hard part of the work is exactly that judgment.
- Lesson 12 of 12
- Intermediate
- Free, no signup
What the model does well, and what is still yours
What the model does well
- A first draft of a layout from a description
- Turning design tokens into CSS variables
- Repetitive code: forms, tables, grids, states
- Explaining CSS somebody else wrote
- Translating interface strings against a glossary you supplied
What is still yours
- Deciding who the page speaks to and what it says
- Right to left and Persian, which is not the model default
- Accessibility and the keyboard test
- The speed budget and every library that gets added
- Clearing the machine tells before you publish
Neither column carries a cross, because neither of them is wrong. The line between the two is not fixed either and moves a little with each generation of models.
Last checked: Facts and tool names in this lesson are re-checked against their sources on this date.
What does AI actually do in web design today?
Five jobs, and none of them is "it builds the site". From a description it gives you a first draft of a layout. It writes the repetitive code: forms, tables, grids, hover states. It suggests first copy. It generates images and icons. And it explains code somebody else wrote, which sounds like the least of them and in practice gives back the most time.
What it does not do, and what gets lost between the lines of every tool advert: it does not decide. Who this page is speaking to and what it should say, which point comes first, what gets cut, and whether a claim is even true, none of that comes out of a prompt. Those decisions are what separates design from colouring in.
So the real division is this: the model gives you typing speed and you give it direction. The figure at the top of this page puts that in two columns and deliberately marks neither of them with a cross; both columns are necessary work, and the question is only whose work each is.
The three minute demo, and the work left under it
The page you see in the demo
Layout, colour, sample copy. This part really is fast.
-
Right to left and language
The output default is left to right and has to be reviewed for Persian.
-
Accessibility
A button with no name and a deleted focus ring are common in the output.
-
The speed budget
The code works, and whoever does not read it does not see its weight.
-
Maintenance
In six months somebody has to change this code and has to be able to read it.
-
Security and dependencies
Every library that got added is a future update.
This figure does not say how many hours each part takes, because that depends on the project. It only says the order in which they become visible is inverted.
Four families of tool, and where each one earns its place
The first family builds a user interface from a sentence. The best known is v0, whose own documentation says it produces React components as well as HTML and CSS for prototypes and landing pages; Lovable sits in the same group. Their right place is the prototype: when you want to see an idea so you can talk about it. Where they turn into trouble is when that same output goes straight onto the live site, because you have taken delivery of a project whose structure and dependencies you did not choose.
The second family is the AI features inside design tools such as Figma. These serve somebody already working in that tool and change nothing except the speed of the repetitive steps.
The third family is the AI panels inside site builders. Every builder has one now and the logic is clear: a user who does not want to learn design. That subject deserves its own discussion and we gave it one in the piece on AI website builders; here we only note that their output is not separable from the builder own template and inherits its limits.
The fourth family, and the one we use most, is the code assistants that work in your own editor and terminal and can see the real files of the project. That is their whole difference from a chat window. When the model can read your CSS file, its answer is about that code rather than about a hypothetical one.
On access from Iran, let us be straight: neither of the first two tools has a page in our AI reference, because we hold no measured facts about them. The Vercel terms that v0 sits under require the user not to be the target of United States sanctions or those of several other bodies, and Lovable pages will not open from this server at all for us to read. So we make no claim about whether they open or can be paid for.
Why you can spot a model output from across the room
Because it learned from what is everywhere, so it builds what is everywhere. The tells are specific, and once you have seen them you cannot unsee them:
- A thin coloured bar along one edge of a card, usually three or four pixels, in a colour that comes from that card position in the list.
- A fully rounded capsule for every chip, label and button, the ninety nine pixel radius that lives in every generated template.
- Three feature columns with round icons and three sentences of exactly equal length, even when the subject does not really have three parts.
- A purple to blue gradient behind the header and a soft glowing blob in the corner.
- In the copy: a long dash mid sentence, the "not only this but also that" construction, and a closing paragraph that is nothing but a summary of what is above it.
None of these is ugly, and the problem is not aesthetics. The problem is that they are recognisable. A reader who has seen thirty pages carrying these marks in the past month does not have to think about it; they file your page in the same drawer and then trust what it says exactly that much.
On our own site we turned this into a written rule. Section ten of the rgb.ir content rules file bans a coloured bar on the edge of a block, under that very heading, that it is a machine watermark, and section two of the same file bans the long dash and several other characters in the copy. The design rule also has a mechanical test: one text search across the whole theme and plugins that looks for a border of two pixels or more on a single edge and excludes the site own neutral border. On the day this lesson was written that search returns exactly fourteen lines and all fourteen are allowed: twelve for two arrowheads that are each built from two rotated borders, one disclosure triangle, and one line sitting inside a comment that documents this very rule. A fifteenth line means somebody added a stripe.
And a warning about the list itself: the tells change. What gives a page away today may be ordinary next year and something else will take its place. What does not change is the question rather than the list: did I make this decision, or did it just arrive?
The de-tell sheet, before the page goes up
Change before publishing
- Remove the coloured bar on the card edge; the one thin border is enough
- Bring the capsule radius down to a real radius from your own design
- If the subject does not have three parts, do not use three columns
- Turn left and right into logical properties
- Rewrite the copy in your own voice, not the model voice
Leave it alone and this is what stays
- A three pixel coloured bar on the edge of every card
- Every button and label as a fully rounded capsule
- Three sentences of equal length under three round icons
- A purple to blue gradient and a glowing blob in the corner
- A long dash mid sentence and a closing paragraph that adds nothing
This list is a snapshot of today. The tells change, and the rule that survives is this: find every choice you did not make yourself.
How far can you trust the code a model writes?
As far as you can read it yourself. That is the only practical test and everything else follows from it, because code that runs on your server and sits in your visitor browser belongs to you from the moment you publish, and so do its bugs.
Four specific places where model output usually falls short, and all four show up more on a Persian site:
- Right to left. The model default is English and left to right, so it writes
margin-leftandtext-align: left, and the output is correct in English and mirrored in Persian. The CSS lesson shows the logical properties that solve this. - Accessibility. A div with onclick, a button with no name, and a deleted focus ring are all common in generated output. The accessibility lesson has the five minute test for it.
- Dependencies. A model adds a library easily, because it does not pay the cost. Every library is a future update and a possible future vulnerability; in the WordPress world that accumulation of plugins causes most of the site security trouble we see.
- The speed budget. The code works and it is heavy. Somebody who does not read the code does not see its weight either.
And one item that has nothing to do with code quality and is more serious: whatever you paste into a chat window has left your machine. API keys, database passwords, configuration files and customer data have no place there. This is not a claim about whether that service is good or bad; it is that a copy of that text now exists somewhere else as well.
So where is the time actually saved?
In mechanical work that has volume and no decisions in it. Our real list, taken from the jobs we hand over ourselves:
- Turning a list of design tokens into CSS variables with consistent naming.
- Writing forty alt texts once you have said what each image does on its page.
- The first draft of a component you already know you will rewrite.
- Reading and explaining CSS somebody else wrote three years ago.
- Translating interface strings into several languages when you supplied the glossary of terms.
- Merging repeated styles inside one large file.
Added up on a real project that is a few hours of typing, not a few days of deciding, and the difference is worth stating plainly. Anybody promising a complete company site in ten minutes is either passing a prototype off as a site, or talking about a site nobody will maintain afterwards.
And one saving that gets mentioned less and may be the largest of all: learning. When you take the output and ask the model to explain line by line what it did and why, the cost is those few minutes and what you gain is not needing to ask next time.
Draft with a model, ship with judgment: what does that mean in practice?
It means that between taking the output and putting the page up, you go over it four times yourself, looking for one thing each time.
First pass, right to left: turn every left and right you find into a logical property and look at the page in both directions. Second pass, keyboard: Tab from top to bottom and see where you are and where you get stuck. Third pass, weight: what has been added to the page that you did not ask for, from a font to a library. Fourth pass, the tells: run the list from section three over the output and change anything from that family.
The four passes together are perhaps twenty minutes, and the difference between doing them and not is that in the first case you have a page and in the second you have a page that is yours.
And one plain thing to close on: if your goal is not learning design and you only want your business to have a site, a model is not the shortest route. The shortest route is either a site builder, which we weighed up in a separate piece, or handing the work to somebody who knows those four passes.
The fast path, with AI
The fast path here is not "a better prompt for a prettier page". It is two moves few people make: put the constraints into the request itself, and then, once you have the output, ask the model to list every choice it made that you did not specify. The second move is where this gets serious, because every machine watermark comes from exactly one unstated choice. For drafting a component a fast model is enough; for reviewing the architecture of a whole page, a stronger one. Our current pick is in <a class="text-link" href="/en/ai/">the AI section</a>.
- Before opening the chat window, write in one sentence what this section is supposed to do and for whom. Without that sentence, no output can be judged.
- Run the recipe below with your own real variables. Do not drop the lines about page direction, native elements and no libraries; those are what pull the output away from its defaults.
- Send the second message and take the list of unstated choices. That list usually runs to between ten and twenty items and is where you find out what you did not say.
- Now make the four passes over the output yourself: direction, keyboard, weight, tells. Until those four are done what you have is a draft, not a page.
Copy-ready recipe
First message:
Role: front end designer who writes maintainable code.
What this section has to do and for whom:
{write it in one sentence}
Page language and direction: {English, left to right}
The variables I already have:
{paste your colour and spacing variable names here}
Rules:
- HTML and CSS only. Add no libraries. If JavaScript is needed somewhere, say why first.
- Use the native HTML element: button for a button, label for a label, ul for a list.
- Write logical properties instead of left and right.
- Use the variables above and do not invent new ones.
- Put no coloured border on a single edge of a block.
- Do not make the corner radius a capsule.
- Write sample copy and do not present it as final copy.
Second message, once you have the code:
List every choice you made that was not in my request.
For each one write why you chose it and offer an alternative.
Also list separately anything you cannot check at all without seeing the rendered page.
Before you trust the output: The list of unstated choices is the real output of this exercise and your work starts from it; if you take the code without reading that list, you have walked the default path with one extra step. And two things never get handed to the model: copy that makes a factual claim, because somebody has to be able to verify that claim, and the decision to remove something. A model almost never suggests cutting a section, and cutting is often exactly what the page needs.
AI in this kind of work
Our position in one sentence: draft with a model, ship with judgment. The tools also fall into two groups that should not be confused; the ones that build an interface from a sentence are excellent for a prototype and not for the live site, and the ones that work in your own editor and see the real files suit a project that has to be maintained. We have deliberately not written version names either: in this field they move every few months and our current pick is always kept up to date in the AI section.
Tools that actually help
- v0 Builds an interface from a description. Its own documentation says it produces React components as well as HTML and CSS for prototypes and landing pages. Good for seeing an idea; for a site that has to be maintained, you did not choose its structure or its dependencies. It has no page in our AI reference because we hold no measured facts about it; the Vercel terms require the user not to be the target of United States sanctions or those of several other bodies.
- Lovable In the same group as v0, building an app or a page from a description. We hold no measured facts about it, and honestly: their site pages do not open for us from this server, so we make no claim either about its capabilities or about access and payment from Iran.
- Claude Code It works in your own editor and terminal and sees the real project files, so its answer is about your CSS rather than a hypothetical sample. For a project that will be maintained it suits better than a chat window. It installs free but needs an Anthropic subscription, and Iran is not on the supported-countries list.
- Claude Good for drafting a component in a chat window and especially for the second message of the recipe above, listing the unstated choices. Iran is not on Anthropic supported-countries list; we read that on Anthropic own page.
Where it backfires
Three risks, ordered by how late each one shows itself. First the one this lesson is about: recognisable output. That is a market risk rather than a technical one, and its cure is not technical either; we turned it into a written rule with a mechanical test over it, explained in the proof block on this page. Second the code: what you cannot read you cannot repair, and every library a model adds at no cost to itself is a future update and a future security risk for you. Here too: whatever you paste into a chat window has left your machine, so keys, passwords and configuration files have no place there. Third the copy: many people believe Google penalises "AI content". Google own guidance says something else and targets mass unhelpful content rather than the use of a tool; the link is at the end of this block. The real risk is not that a model wrote it, it is publishing a page nobody needed. For how each tool can be paid for from Iran, see the buying guide.
Sources: v0 documentation Vercel: terms of service Google Search Central: AI-generated content guidance Anthropic: supported countries
Where this advice stops
This lesson is a snapshot, and its tools change faster than any other subject in this section; the names may move within a year, the four passes over the output will not. Two more boundaries, plainly. First, we have no number for how much time this saves and we deliberately did not print one; such a number depends on the project and the person, and any figure you see comes either from a vendor or from a single example. Second, a model does not reduce the need to know CSS, it raises the floor: what you used to have to write you now have to be able to read and judge, and that is not the lesser skill. And if the goal is brand and visual identity, that subject is not here at all and has a discipline of its own.
From our own work
The tells we counted in section three have been turned into a written rule and a mechanical test on this very site. Section ten of the rgb.ir content rules file bans a coloured bar on the edge of a block, and the file records the date, 28 August 2026, with the sentence the site owner wrote, quoted verbatim in it: this is ai watermark design ... at end even one of them should not exist. The test is a text search across the whole theme and every plugin looking for a border of two pixels or more on a single edge, excluding the site own neutral border; today, 5 September 2026, that search returns fourteen lines and all fourteen are allowed cases: two arrowheads each built from two rotated borders, counted three times over because the figure stylesheet also has a minified copy and a chunked one, one disclosure triangle, and one line inside a comment that documents this very rule. The fully rounded capsule joined the same list on the same day and the shapes changed: today in the main stylesheet a button has a 15 pixel radius, a large button 17, a chip 12 and a status label 9, and the only things left round are the header navigation bar and elements that are genuinely circles. These are not claims; they sit in the CSS file of the page you are reading.
Real follow-up questions
Does Google penalise a site built with AI?
Google own guidance on AI content says the issue is not the tool but mass unhelpful content. Code a model wrote and a page a model drafted are not a problem in themselves. What creates a problem is a page built to fill a slot that answers nobody question.
Can you build a site with these tools without knowing code?
You can build something that comes up, yes. The problem is not day one, it is the day something breaks or has to change and you cannot read the code you have. If learning is not your goal, a site builder is the more honest route; there at least whoever wrote the code also carries the maintenance.
Can you put model generated images on the site?
For a decorative image usually yes, and for anything meant to show reality no: product photos, team photos, portfolio work. Watermarking and the detection of generated imagery is its own discussion, and the graphic design path is where we take it up.