This page is generated from the engine's own component registry, so it always matches what the engine implements. Every demo runs live in the sandbox; switch the theme to see all of them change.
31 themes · demos use the read-only demo data
Layout
<ROW>
container
Lays its children out side by side; wraps on narrow screens.
The original general container: FLOW row or column, with gap, padding and background.
<ACONTAINERFLOW="row"GAP="16px"PAD="16px"COLOR="var(--bg-2)">
<TEXTTEXT="An ACONTAINER, the 2001 original." />
</ACONTAINER>
Attribute
Default
What it does
FLOW
column
Direction of children.column · row
GAP
12px
Space between children.
WRAP
false
Wrap children (row flow).true · false
JUSTIFY
—
Main-axis distribution.start · center · end · between
ALIGN
—
Cross-axis alignment.start · center · end · stretch
COLOR
—
Background colour (any CSS colour or var(--bg-2)).
<CARD>
container
A surface that groups related content. With ACTION it becomes clickable.
<CARDTITLE="Weekly digest"SUBTITLE="Every Monday at 9:00"ICON="mail">
<TEXTTEXT="A short summary of what changed across your boards." />
<ROW><BUTTONLABEL="Subscribe"SIZE="sm" /></ROW>
</CARD>
Attribute
Default
What it does
TITLE
—
Optional heading.
SUBTITLE
—
Optional line under the heading.
ICON
—
Icon or emoji beside the heading.
ACTION
—
Action fired on click.
GAP
12px
Space between children.
STYLE
—
flat (no border), raised, outline or accent.flat · raised · outline · accent
<HERO>
container
A page-opening block: eyebrow, headline, lead text and actions.
<HEROEYEBROW="New"TITLE="Ship the entire app as one spec"SUBTITLE="Declare the screens, wire them by label and let the engine do the rest.">
<BUTTONLABEL="Get started" />
<BUTTONLABEL="Read the guide"STYLE="ghost" />
</HERO>
Children: widgets (usually buttons)
Attribute
Default
What it does
EYEBROW
—
Small label above the title.
TITLE
—
Headline.
SUBTITLE
—
Lead paragraph.
IMAGE
—
Optional image shown beside (or behind, with STYLE="cover").
ALIGN
left
Text alignment.left · center
STYLE
—
cover puts the image behind the text.cover · plain
<TABS>
container
Tabbed panels. Each <TAB LABEL> holds its own widgets.
Presentation.table · cards · kpi · bar · line · area · donut · feed · alerts · ticker · bars · post_list
Content
<TEXT>
A run of text. STYLE picks its role in the type scale.
<TEXTSTYLE="eyebrow"TEXT="Release notes" />
<TEXTSTYLE="h2"TEXT="Everything is a label" />
<TEXTSTYLE="lead"TEXT="Wire any button to any state by giving both the same name." />
<TEXTSTYLE="muted"TEXT="Signed in as {user}" />
Attribute
Default
What it does
TEXT
—
The text. {placeholders} read the pipe or the record in scope. Inner text works too.
STYLE
body
Role in the type scale.display · h1 · h2 · h3 · lead · body · muted · small · micro · eyebrow · mono · quote
SIZE
—
Explicit font size.
WEIGHT
—
Font weight, e.g. 600.
COLOR
—
Text colour.
ALIGN
—
Text alignment.left · center · right
LINES
—
Clamp to this many lines.
BIND
—
Read the text from a path instead, e.g. record.title.
<ARTICLE>
Long-form text written in a small, safe subset of Markdown.
<ARTICLE>
## Why a graph
States are **nodes**. Labels are *edges*.
- Declare the screens
- Wire them by label
- Bind components to data
</ARTICLE>
Attribute
Default
What it does
BIND
—
Path to the Markdown, e.g. record.body.
TEXT
—
Markdown given inline (inner text works too).
SIZE
—
Base font size, e.g. 17px.
<IMG>
also IMAGE
An image. SRC may be a {placeholder} bound to a record field.
A drawing surface with brush, eraser, shapes, fill, undo and PNG export. Other components drive it with actions: paint.tool(eraser), paint.clear(), paint.keep(sketches).