Blog

Design system drift in AI-generated UI

Your AI-Generated UI Is Already Out of Date

Code generation captures your design system at one moment. Keeping the resulting interface aligned requires a relationship with the system as it changes.

By Bezel founder6 min read

Design system drift happens when an interface diverges from the design decisions it is supposed to follow. In AI-generated UI, that can begin during generation if an agent guesses at missing context, or later when approved tokens, components, and guidelines change without the implementation changing with them.

AI can generate a useful interface quickly. The harder question is what happens to that interface next month. A generated screen is a snapshot of the information available when the agent built it. Your product and design system continue to evolve after that moment.

This is why I think the next problem in AI development is larger than code generation. We need a persistent relationship between the design system, the agent, and the implementation. Bezel is the project I am building around that idea.

How does design system drift happen?

Imagine an agent generates a billing page using your current primary color and a set of form components. The team reviews it, approves the code, and ships it. Later, the brand changes its primary palette and the component library updates how validation messages appear.

The page may still compile and submit payments correctly. Yet a hardcoded button color can preserve the old brand, while a copied form pattern can preserve the old validation behavior. Technical correctness has not kept the page connected to the latest design decisions.

Different kinds of drift need different fixes. A stale CSS output needs to be regenerated and delivered. An obsolete component API needs a code change. An outdated usage pattern needs someone to understand the revised guidance. Treating all three as “refresh the tokens” leaves part of the problem unresolved.

AI does not create this maintenance problem from nothing. Human-written interfaces drift too. Faster generation simply makes it easier to create more implementations that need a clear maintenance path.

Why isn’t a better prompt enough?

A prompt can describe what an agent should build now. It cannot, by itself, establish how the resulting code will receive future design changes. Even a detailed prompt becomes a historical record when the system it describes evolves.

Copying token values into a prompt has the same limitation. The values can be correct when copied and stale later. A screenshot adds useful visual context, but it does not identify the release a component belongs to or explain how a semantic token should be used.

The stronger starting point is retrievable design context backed by an explicit implementation workflow. Agents should be able to consult the relevant system, and developers should know where the resulting code consumes that system. Our guide to design systems for AI coding agents explains the context layer; maintenance begins where that guide leaves off.

A workflow for keeping generated interfaces aligned

The workflow I want Bezel to support is Define → Build → Connect → Change → Propagate → Validate. Each stage answers a different question about the relationship between design and code.

Define and build from an approved foundation

Establish the tokens, component guidance, and constraints that apply to the product. Give the implementing developer or agent access to those decisions before generating the screen. Record the version or release used so a later reviewer can identify the starting point.

An agent should use the target codebase’s intended token outputs and components. If it inserts a literal color where a semantic variable belongs, the interface may match today while making tomorrow’s update harder.

Connect the implementation to its source

Identify how design decisions reach the application. That may involve exported token files, generated CSS variables, a component package, and project-specific guidance. Document which parts are generated and which require application code changes.

For example, an application that references shared CSS variables can receive a color update through refreshed CSS output. A copied hex value has no equivalent connection. Both approaches can produce the same screenshot initially, but they create different maintenance obligations.

Change and propagate deliberately

When the system changes, review the difference against the version the application uses. Separate value changes from renamed tokens, removed tokens, and component behavior changes. These categories help define the work an agent can attempt and what a reviewer must inspect.

An implementation update should explain what changed, regenerate the relevant outputs, and keep the proposed code changes reviewable. A broad migration becomes easier to assess when the reviewer can connect each edit to a specific design-system decision.

Validate the affected experience

Compilation is only one check. Review the screens and states affected by the change, including interactions that a static screenshot cannot show. A new color pairing needs a contrast check; a revised form pattern needs review of labels, errors, and keyboard behavior.

Validation should be proportional to the change. A spacing adjustment and a replacement navigation component have different consequences. The useful question is which user experiences could have changed, then whether the available checks cover those experiences.

What Bezel provides, and what we are building toward

Bezel gives teams tools for editing design tokens, previewing changes on connected interfaces, and publishing versioned releases. Developers can export tokens and use Bezel Kit to generate CSS output. Compatible coding agents can retrieve design context through Bezel MCP.

Those capabilities provide a shared source for implementation. They do not mean every connected repository automatically receives a finished migration whenever a designer changes a token.

The direction I am building toward is for agents to pull the latest system, identify relevant differences, update implementations, run the appropriate tooling, and prepare changes for developer review. The developer’s work becomes evaluating a proposed update with clear context. That is a product direction, not a claim that autonomous propagation is already available.

Our developer page connects the current tools to that longer-term workflow.

How can a team find drift today?

Start with one representative interface and trace its recurring decisions back to the design system. Check whether colors and spacing use intended tokens, whether component imports point to the expected library, and whether the application can identify the release it consumes.

Then choose a small system change and follow it through the actual update process. Record where someone has to copy a value, interpret an undocumented convention, or find affected files by hand. Those points reveal where the connection is missing. They also give you a concrete basis for deciding which tooling would help.

Give the next generated screen a maintenance path

The goal is to preserve the speed of AI-assisted development while making its output easier to maintain. A shared source, a known release, an explicit update path, and meaningful review are a practical place to start.

If you are working through this problem, request Bezel Pro early access. Bring an interface and an example of a design change your team finds difficult to propagate. The program includes a demo, onboarding for accepted participants, and ongoing feedback so we can shape the workflow around real implementation needs.

You can also read the founder story for the design-system migrations that motivated this work.

Early access · Space is limited!

Help shape the future of Bezel

Join Pro at $7 per month for one year, billed annually, with personalized onboarding and support throughout your first year. As a product partner, your direct feedback will help guide new features and the future of Bezel.

Spots are extremely limited. Acceptance requires a demo and a commitment to sharing ongoing feedback.