Component libraries vs a design sheet for AI-built UI
Installing a component library or giving your agent a design sheet over MCP: how the two compare on consistency, motion, control and upkeep.
The Wuizard team5 min read
On this page
If an AI agent writes most of your UI, you need some way to keep it consistent. Two approaches come up most: install a component library into your repo and tell the agent to use it, or give the agent a design sheet it reads over MCP. This page compares the approaches, not particular products, and says plainly where each one is the better choice.
The short version#
- Where the code lives
- Component library in your repoIn your repo, from day one.
- Design sheet over MCPIn the sheet; the agent pulls each component into your repo when it needs it.
- How the agent knows what to use
- Component library in your repoYou tell it, in prompts or a rules file.
- Design sheet over MCPIt reads the sheet, and each slot names one exact component.
- How it looks out of the box
- Component library in your repoThe library's own style until you theme it.
- Design sheet over MCPYour colours, type, radii, shadows and spring in every component.
- Motion
- Component library in your repoWhatever the library ships; you add the rest.
- Design sheet over MCPChosen per slot (page and modal transitions, toasts, buttons) and tuned to one spring.
- Changing the design
- Component library in your repoEdit the theme and components in code.
- Design sheet over MCPEdit the sheet; the agent gets the new values on its next read.
- Working offline
- Component library in your repoYes.
- Design sheet over MCPNeeds the connection, or use the exported files.
- Cost
- Component library in your repoOften free and open source.
- Design sheet over MCPFree for the library and sheets; a paid plan for the AI features.
How a component library works with an agent#
You install a set of components (buttons, inputs, dialogs, menus and so on), theme them, and ask your agent to build with them. The agent reads the components in your repo like any other code.
This works well when the library is already part of your project and the agent knows it. The weak spot is the gap between "these components exist" and "use this one, here". Unless you say so in every conversation or in a rules file, the agent may still write its own card or a new dialog animation, and the theme only covers what the library exposes.
How a design sheet works with an agent#
A sheet holds three things: foundations (colour, type, radius, spacing, shadows and a motion spring), slots with one chosen component each (button.primary, transition.modal, feedback.toast), and short rules. You fill slots from a live library where every component reads your foundations.
The agent connects over MCP. Before it builds UI it calls get_sheet; for a component it calls get_slot and gets that exact code with your values filled in. check_ui reviews what it wrote and lists anything outside the sheet. The decision about which button to use was made once, by you, and the agent looks it up rather than guessing.
Where a component library is the better choice#
- You want everything in your repo from the start, with no service between your agent and your components.
- You work offline or in an environment that can't reach outside services.
- Your app is heavy on complex controls such as data tables, date pickers and comboboxes, where a mature library's depth and edge-case handling are hard to match.
- Your team already knows a library well and has themed it to your brand. Switching away from that has a real cost.
- Budget is the deciding factor. Many good libraries are free.
Where a design sheet is the better choice#
- Your agent keeps drifting. Slots remove the choice: there's one primary button and one modal transition, and the agent is told to fetch them.
- Motion matters to you. Page transitions, list staggers, button presses and toasts are chosen like any other component and share one spring, instead of a different fade in every file.
- You don't have a visual identity yet. You can start a sheet from a starter vibe, a website you like or a description of your app, rather than theming a neutral library from scratch.
- You build for several clients or products. Each gets its own sheet, and the agent works from whichever one you name.
- You're not only on React.
translate_assetreturns a slot in Vue, Svelte, SwiftUI or vanilla JS with your values.
Using both#
These approaches combine well. Keep a library for the deep, unglamorous controls, and use a sheet for the parts that give the product its character: buttons, cards, navigation, transitions, feedback and whole page sections. Add a rule to the sheet, such as "use the project's existing table and date picker", so the agent knows where the line is.
How to decide#
Ask yourself a few questions:
- Does my agent already use the components I have, without being reminded? If yes, you may not need more.
- Do my screens look like one product, or like several built on different days?
- Is motion part of how I want the app to feel, or an afterthought?
- Do I need to work offline, or keep every dependency in the repo?
If drift and motion are the problem, a sheet is worth a try: the MCP setup guide gets an agent connected in a few minutes. If offline work and ownership come first, a component library in your repo is the safer choice.
Questions
Does a design sheet replace my component library?
It doesn't have to. Many projects keep a library for complex controls like tables and date pickers and use a sheet for the look, the motion and the components they want to be distinctive. A rule in the sheet can tell the agent which existing components to keep using.
What happens to code my agent built if I stop using Wuizard?
Code you've already shipped keeps working and stays yours to use after you cancel, as the terms say. Open-source assets keep their original licences, and their attribution lines stay with them.
Do I have to rewrite my app to try a sheet?
No. A sheet changes what your agent builds next. Existing screens stay as they are until you ask the agent to bring them in line, one at a time if you like.
Facts on this page were last checked on . Spotted something out of date? Tell us at the address on the docs page.
In the library