# Barua UI > An interface design system with Apple's design language, rebuilt natively > for the web: plain HTML and CSS, one stylesheet, no build step. Build > interfaces by composing documented components — never by inventing CSS. Ask the system directly (MCP, streamable HTTP): - https://mcp.barua.tz/mcp — search_components, get_component, get_react, get_rules, lint_markup Machine-readable index of every component, with canonical markup: - [barua-ui.json](https://ui.barua.tz/barua-ui.json): complete component index - [llms-full.txt](https://ui.barua.tz/llms-full.txt): the whole system as markdown - Every documentation page has a markdown twin at the same address: https://ui.barua.tz/docs/forms.html is also https://ui.barua.tz/docs/forms.md — same content, no HTML to parse, and one page instead of the whole index. ## Rules 1. Compose from documented components. If a pattern is not in the docs, use a documented alternative or promote a new component into the docs first — never invent markup or CSS in product code. 2. Copy the anatomy from the docs demo: same wrapper elements, same slots, same class combinations. A component's parts (__header, __body, __footer) only exist inside their block. 3. Never hardcode colour, spacing, radius or shadow. Use --b-* tokens. A raw hex in product code is a bug. 4. Inline styles are only for documented knobs (--v, --b-progress, --b-thumb-size, --b-heatmap-cols, --b-circular-size) and artwork backgrounds. 5. Icons come from the icon library (docs/icons.html): inline 20x20 SVG, 1.5px stroke, currentColor, sized with .b-icon/--sm/--lg. Never emoji, never letters as icons. A directional mark inside a sentence is text, not an icon: the arrow in a .b-stat__delta stays. The rule governs icon slots, where a glyph stands on its own. 6. Never use a native