Skip to content
Aihio v2.3.0
Search
GitHub
Search Describe what you are building, or name a component, intent, or token. Components and patterns are ranked the way the MCP server's find tool ranks them for an agent.

Native web components · No runtime dependencies · Generated from one schema

A design system that reads the same way to people and to agents.

Aihio emits machine-readable component contracts, semantic tokens, patterns, a linter, and an MCP server from one build. This site is generated from those artifacts and built with the components it documents — so if a page here is wrong, the package is wrong.

Browse components Wire up an agent

Quick start

Three steps, no build step required. The stylesheet carries the tokens; the module registers every element.

  1. Install the package

    npm install @luntta/aihio
  2. Load the styles and the elements

    <link rel="stylesheet" href="node_modules/@luntta/aihio/dist/aihio.css">
    <script type="module" src="node_modules/@luntta/aihio/dist/aihio.js"></script>
  3. Write markup

    <aihio-button variant="outline">Click me</aihio-button>
    Click me

In development, import aihio/dev instead to get schema-backed console warnings. The production bundle never imports that module, so none of it ships.

Where to go next

Four surfaces, one schema behind all of them.

Featured components

Drawn live, and generated from dist/schema.json rather than written by hand.

All 19 components
CancelSave

Button

An action the user takes: submit a form, open a dialog, run a command. Renders a real <button>; variant="default" is the primary style and variant="destructive" marks an irreversible action. To go to another page, put an <a href> inside it instead: the link becomes the control, styled as the button.

<aihio-button>

Field

Form field wrapper that lays out a label, control, description, and error message, and wires the accessibility relationships between them.

<aihio-field>

FinlandSweden

Combobox

A text field for picking one option from a long list: typing filters the options, and the chosen option's value submits with the form. Use it when there are too many options to scan comfortably (roughly more than ten), or when the options come from a search.

<aihio-combobox>

Open dialogA dialogOpened from markup, with no script.Close

Dialog

A modal dialog for a focused task or a confirmation before an irreversible action, such as deleting a project. Opens and closes from markup: commandfor plus command="--open" or command="--close".

<aihio-dialog>

MenuEditDuplicate

Dropdown

A menu of actions or links opened from a trigger button, such as an account menu or a row's More actions. Not for choosing a form value: use aihio-combobox for that.

<aihio-dropdown>

GeneralBillingGeneral settingsBilling settings

Tabs

Switches between sibling panels of content with a row of tabs, such as the sections of a settings page. Arrow keys move between tabs.

<aihio-tabs>