Control Catalog
Every control type, what it's for, and whether it receives (sync),
sends (action), or both. Field-level detail is in Layout Schema and the
app's in-app control docs. Wire semantics are in Data Flow — sync & actions.
Pro marks the 11 premium controls. On a device without the Pro
entitlement, a premium control renders as a locked placeholder (tap → paywall)
rather than the live control — so a layout aimed at general users should lead with
free controls. This affects display, not the protocol: your server's frames are
the same either way.
| Type |
Value |
Notes |
button |
— |
Fires its action on tap (often with a fixed payload) |
toggle |
bool |
On/off |
slider |
number |
Continuous; min/max/step |
stepper |
number |
Discrete increments |
segmented |
string |
One of options |
picker |
string |
Menu/wheel/inline; one of options |
datePicker |
string/number |
Date/time/dateAndTime |
textInput |
string |
Free text; placeholder |
colorPicker |
string (hex) |
Color selection |
joystick (Pro) |
direction/magnitude |
Two-axis control |
Display controls (server → device via sync)
| Type |
Expects |
Notes |
label |
string |
Static or synced text |
image |
— / systemName |
SF Symbol or image |
gauge |
number |
min/max, segments, gaugeStyle |
progressRing |
number |
progressStyle: ring\|bar |
statusLight |
string |
e.g. green/red/unknown |
sparkline (Pro) |
number (stream) |
Appends to a rolling buffer of sparklinePoints |
map (Pro) |
location |
mapStyle, mapInteractive |
graph (Pro) |
nodes/edges JSON |
Force-directed; node taps can action or fetch content — see Recipe: Graph + Request/Reply Content |
list |
array of objects |
valuePath → array; rows replace contents |
cardList |
array of objects |
Card-style list |
logConsole (Pro) |
string / {text,level} / array |
Appends lines, capped at maxLines |
qrCode (Pro) |
string |
Renders a QR for the synced/Default value (display-only) |
Containers (group children into shapes)
| Type |
Notes |
group |
A sub-grid of children; can be dynamic (server-populated) |
carousel (Pro) |
Swipeable pages of groups |
flipCard (Pro) |
Front/back faces |
accordion (Pro) |
Collapsible sections |
Layout helpers
| Type |
Notes |
divider |
Visual separator |
spacer |
Empty grid cell(s) |
Interactive / rich
| Type |
Notes |
chat (Pro) |
Mesh-backed chat; messages flow over the channel and persist locally. config: { target, showTypingIndicators, historyCount } |
webView (Pro) |
Embedded web content |
The premium set (single source of truth)
These 11 are gated: chat, map, graph, joystick, webView, logConsole,
carousel, flipCard, accordion, sparkline, qrCode. Custom theming and
the pulse enhancement are premium too. Everything else is free.
See Layout Schema for fields, Data Flow — sync & actions for how each receives/sends.