A2UI Primitives
A mapping reference for agent-rendered interfaces. A2UI is an open protocol, created by Google and licensed under Apache 2.0, that lets an AI agent describe an interface which the client then renders with native widgets — no generated code is executed. The protocol defines a fixed set of primitives, and every one of them is below, mapped to the catalog component it corresponds to.
| A2UI primitive | What it renders | Component page |
|---|---|---|
| Layout | ||
| Row | Horizontal layout container. Children are arranged left to right. | Layout primitive — no catalog component |
| Column | Vertical layout container. Children are arranged top to bottom. | Layout primitive — no catalog component |
| List | Scrollable list of items. Supports static children and dynamic templates. | List |
| Display | ||
| Text | Text content with styling hints — h1 to h5, caption, body. | Typography primitive — no catalog component |
| Image | Displays images from URLs. | Image |
| Icon | Displays icons from the basic set defined in the catalog. | Icon Universal Icons |
| Divider | Visual separator line. | Separator |
| Interactive | ||
| Button | Clickable button that triggers an action. | Button |
| TextField | Text input with optional validation — shortText, longText, number, obscured, date. | Input Textarea |
| CheckBox | Boolean toggle. | Checkbox |
| Slider | Numeric range input. | Slider |
| DateTimeInput | Date picker, time picker, or both. | Date Picker Time Picker |
| ChoicePickerMultipleChoice in v0.8 | Select one or more options from a list. | Select Radio Group |
| Container | ||
| Card | Container with elevation or a border, plus padding. | Card |
| Modal | Overlay dialog opened by an entry-point component. | Dialog |
| Tabs | Tabbed interface that organizes content into switchable panels. | Tabs |
Shared properties
Every primitive carries an id, an optional accessibility object for the name and role exposed to assistive technology, and a weight used for flexible layout. Because the client renders its own widgets, accessibility and styling stay with the platform rather than travelling with the agent's response.
Designing for agent-rendered interfaces
A2UI is deliberately small: sixteen primitives cover what an agent can ask for. Anything richer — a data table, a carousel, a combobox — has to be composed from these or handled outside the protocol. When you design a surface an agent will drive, start from this list, then check the W3C ARIA patterns for the keyboard and screen-reader behaviour each one is expected to have.
Resources
Everything below is maintained by the A2UI project itself. Start with the quickstart if you are wiring up an agent, or the component reference if you are deciding what an interface can ask for.
Source: the A2UI component reference. Primitive names and descriptions follow the specification.