Skip to content

A2UI component catalog

All string properties accept a literal or { "path": "/pointer" }. Every component has id and component; containers reference children by id. Optional weight (number) sets flex-grow inside a Row or Column.

ComponentPropertiesNotes
Columnchildren: id[] | {componentId, path}, justify, alignVertical stack
Rowchildren, justify, alignHorizontal, wraps on small screens
Listchildren, direction: "vertical" | "horizontal"Use a template to repeat over data
Cardchild: idBordered panel
Divideraxis: "horizontal" | "vertical"
Tabstabs: [{title, child}]

justify: start, center, end, spaceBetween, spaceAround, spaceEvenly, stretch · align: start, center, end, stretch

ComponentPropertiesNotes
Texttext, variant: h1…h5 | body | caption
Imageurl, altText, variant: icon | avatar | smallFeature | mediumFeature | largeFeature | header, fit
Iconnamecheck, close, add, star, calendar, mail, phone, info, warning, error, search, settings, person, home, shoppingCart, favorite, locationOn, send, share, edit, delete, download, lock, notifications, payment, time, coffee, …
ComponentPropertiesNotes
TextFieldlabel, value, placeholder, variant: shortText | longText | number | obscured | date
CheckBoxlabel, value (boolean)
Sliderlabel, value (number), min, max, step
ChoicePickerlabel, options: [{label, value}], value, variant: mutuallyExclusive | multipleSelectionMulti-select stores an array
DateTimeInputlabel, value, enableDate, enableTimeISO-like string
ComponentPropertiesNotes
Buttonchild: id (usually a Text), variant: primary | borderless, action: {event: {name, context}}context values can be paths; they’re resolved when clicked

Unknown components render as a labelled placeholder rather than failing, so a surface degrades gracefully.