Back to all posts

AI Makes Design System Ambiguity Expensive

AI exposes the hidden judgment in a design system, making fewer overlapping choices and clearer rules essential for consistent product work

A design team opens its component library and finds three alert colors: caution, warning, and critical. Each looks reasonable. None explains which product condition it represents.

A designer who has worked with the system for years can usually choose one. They remember an old review, know which pattern engineering already built, or ask the person who named the tokens.

Then an AI coding tool enters the workflow. It cannot recover the conversation behind those choices, so it selects the option that looks plausible. The result may pass a visual review and still communicate the wrong level of risk.

AI did not create the ambiguity. It made the cost visible.

A design system becomes easier for AI to use when it becomes easier for any unfamiliar person to use. Start with fewer overlapping choices, clearer meanings, and rules that survive their creators.

More Options Can Hide Missing Decisions

Teams often add a new token or component variant to move one project forward. A softer shadow suits a marketing card. A compact table row fits an internal tool. Another alert color helps a team distinguish a condition that feels different from the existing set.

Each addition solves a local problem. Over time, the library collects several answers to questions the system never resolved.

The team may call that flexibility. In practice, every overlapping option pushes a decision onto the next designer, engineer, or AI agent.

Should a temporary connection problem use warning or critical? Can a branded theme change the color tied to an error? Does “small” describe the button height, its visual priority, or both? If the documentation cannot answer quickly, the system depends on interpretation.

People can bridge that gap through habit and conversation. AI works from the context you give it: names, code, examples, instructions, and relationships between them. When those sources disagree, the model produces a confident guess from an unclear system.

This connects to Generative UI Still Needs a Design System. An adaptive product needs bounded component choices. The same requirement applies when AI helps a team build a fixed interface: the system must explain what each choice means, not only how it looks.

Name the Product Decision

A useful token name tells the consumer which decision has already been made.

A name such as “yellow-500” describes an ingredient. A name such as “warning” starts to describe meaning, but it may still leave the team to decide what qualifies as a warning. The documentation and component API need to finish the thought.

For example, a team might define warning as a preventable risk that appears before a person confirms an action. It might reserve critical for an active failure that blocks progress or requires immediate attention. The exact definitions will vary by product, but the boundary between them must remain observable.

That boundary gives a designer a reason, an engineer a testable condition, and an AI agent a rule it can apply.

  • Components: What job does each option perform that another option does not?
  • Variants: Which product condition activates each variant?
  • Tokens: Which meaning should remain stable when the visual theme changes?
  • Content: What information must the component contain to work?
  • States: What can a person do while the system loads, fails, or lacks permission?

If two options carry the same answer, the system probably does not need both. If two options look similar but carry different risk, their names and guidance need to make the difference explicit.

Reduce Before You Document

Teams often respond to confusion by writing more documentation. Documentation helps when the system contains meaningful choices. It cannot rescue a library full of duplicates and exceptions.

Group components, variants, and tokens that appear to serve the same purpose. Look for distinctions that users cannot perceive, names that only the original team understands, and options kept alive by one old screen. Then decide whether to remove, merge, rename, or constrain each one.

This does not mean forcing every product surface into one visual expression. A customer experience and an operations tool may need different density, tone, or interaction patterns. Shared foundations can support those differences without duplicating every primitive underneath them.

The goal is not the smallest possible library. The goal is the smallest set of choices that still expresses the product honestly.

That distinction also matters when someone asks to make a product feel current. As I wrote in Modern Is Not a Product Design Requirement, visual change should follow a named product need. Pruning a system creates value when it improves consistency, speed, accessibility, or understanding—not when it only makes the library look tidy.

Make the Rule Available Where Work Happens

A clear decision buried in a presentation will not guide a coded interface.

The rule needs to appear close to the component: in its name, properties, usage guidance, examples, and tests. Design libraries and code libraries should describe the same set of supported choices. If one side offers six variants and the other offers four, AI will not know which source deserves trust.

Treat the system as a shared product rather than a collection of matching assets. Assign ownership. Review proposed additions. Deprecate old options in both design and code. Record the reason behind a constraint where the next person or tool can find it.

Getting closer to implementation helps designers see whether the intended rule survived. From Figma to Function makes the broader case: design intent becomes more durable when designers can inspect how it behaves in the real product.

Test the System With an Unfamiliar Consumer

The people who maintain a design system often know too much to see its ambiguity.

Give a small task to someone outside the core team. Ask them to select a component and explain why. Watch where they compare nearly identical options, leave the library to search for an example, or ask for a rule that the system does not contain.

Then give the same bounded task to an AI tool with only the approved system context. Inspect the choice, the reasoning, and the implementation. A correct-looking result does not count if the tool chose it for the wrong reason.

Useful test prompts describe the product condition without naming the desired component. For example: a person changed information but has not saved it, or a service failed and blocked the next action. The system should provide enough meaning for the consumer to select the right pattern from the condition alone.

Compare the failures. If both the person and the tool hesitate, fix the system before refining the prompt. If only the tool fails, improve the structured context, examples, or access to the supported code.

AI readiness should not become a separate layer of documentation that people cannot use. It should expose weak naming, conflicting sources, hidden conventions, and unnecessary variation that already slow the team down.

Keep Meaningful Differences

Simplification can go too far.

Two components may look similar while supporting different keyboard behavior, content limits, data requirements, or levels of consequence. Merging them because their visual styles overlap can hide a real product distinction.

Prune cosmetic variation first. Protect differences that help people understand an action, recover from failure, work accessibly, or recognize risk. Make those differences explicit enough to test.

That remaining judgment is part of the work that turns an AI draft into a product. A cleaner system improves the starting point, but the team still has to verify behavior under real conditions.

Start With One Confusing Choice

You do not need to rebuild the whole design system for AI.

Choose one area where the team regularly pauses: alerts, buttons, elevation, spacing, form states, or navigation. List the available options, the condition each one represents, and the evidence that the distinction helps the product.

Remove one duplicate. Rename one vague choice. Write one rule beside the component. Align that rule in design and code, then test it with someone who did not help create it.

AI will make whatever system you give it faster to apply. If the system relies on memory and overlapping choices, it will scale inconsistency. If the system carries clear decisions, it will help the team scale intent.

The path to an AI-ready design system is not more options or a better prompt. Make fewer decisions implicit, and make every supported choice earn its place.