QORMQORM v0.8.4 api Get started

Node & Widget Props

Auto-generated from the source (TestAPIRef) — do not edit by hand. The props table below is extracted from the code, so it can never drift.

The declarative contract every QORM app is written against. A UI is a tree of nodes; each node is one JSON object.

Node schema

Every node object may carry these top-level keys:

KeyTypeMeaning
typestringwidget name — see the widget catalog; may be a {{ binding }} (e.g. {{ item.kind }}), resolved against the current scope at render time so one template can render a different widget per item
idstringstable node id (for state binding, patching, data-state)
textstringtext content (text/heading/paragraph nodes)
labelstringbutton / control label
placeholderstringinput placeholder
valuestringinput or bound value; may contain {{ binding }}
styleobjectvisual style — see common style props
layoutobjectlayout hints: width height align justify
onPressaction / stringpress handler — an action id, or inline steps
onChangeaction / stringchange handler (inputs, toggles, sliders, selects)
onKeyDownaction / stringkey-down handler — dispatched to the focused node first, then bubbling to the scene root; the pressed key is seeded as the key arg, read as {{ key }} (native canvas backend)
onKeyUpaction / stringkey-up handler (same dispatch as onKeyDown)
renderItemnodeitem template for a bound list
datastringlist data-binding expression (e.g. state.todos)
childrennode[]child nodes
conditionstringwhen nodes only: {{ … }} expression over viewport.width / viewport.height / viewport.orientation selecting then (truthy) or else; an unknown viewport (server first frame) is falsy
thennodewhen nodes only: subtree rendered when condition is truthy
elsenodewhen nodes only: subtree rendered otherwise (unlike the if prop, which hides one node, when swaps two alternative subtrees)
anyany other key is a widget-specific prop (table below)

Common style props

Read by the shared renderer, so they work on any node that draws a box:

Per-widget props

The widget-specific keys each renderer reads, on top of the common style props above. Auto-extracted from the node() switch in internal/render — a means the widget takes only common props.

WidgetProps
accordionactive · single · title
actionsheetdismissable · open · title
activityindicatorsize
alerttitle · variant
alertdialogdismissable · message · open · title
animatedcontainercurve · duration
animatedopacityduration · opacity
appbarbackground · leading
aspectratioratio
autocompletedebounce · options
avatarinitials · name · size · src
backbutton
badgecolor · showZero · smallSize
barometerlabel
batterylabel
biometriclabel
bluetoothlabel
board
bottomappbar
bottomnavitems
breadcrumbitems · separator
brightness
buttonnovalidate · submit · submitOnEnter · variant
calendarlabel
cameralabel
carouselautoplay · indicators
chartchartType · color · data
checkboxchecked · debounce
chipavatar · selected · showCheck
circularprogresscolor · size · stroke · value
clipboardlabel
closebutton
compasslabel
contactslabel
contextmenuitems · menuStyle
datatableas · column · columns · data · detail · maxHeight · minWidth · rowKey · scrollX · selectable · selected · sortData · sortDir · sortField · stickyHeader · stickyTop
datepickermaxYear · minYear
descriptionsitems
deviceinfolabel
dismissibleicon · onDismissed
dividerorientation
dockbadge
draggabledata
dragtargetonDrop
draweropen · side
dropdownbuttonhint · options
emptyicon · title
expansiontileinitiallyExpanded · leading
fabextended
fielderror · help · label · required
filepickerlabel
formnovalidate
gesturedetectoronDoubleTap · onLongPress
gridviewas · crossAxisCount · minItemWidth · page · pageSize · spacing
hapticslabel
iconglyph · icon · size
ignorepointer
imagealt · fallback · fit · lazy · placeholder · src
indexedstackindex
inputautocomplete · autofocus · debounce · inputMode · inputType · maxLength · pattern · readonly · required · requiredMessage
insetslabel
keepawakelabel
largetitlebackground · collapsible · subtitle
limitedboxmaxHeight · maxWidth
linkhref
listas · groupBy · itemHeight · onRefresh · onReorder · overscan · page · pageSize · reorderable · sectionHeader · separator · sticky · stickyTop · virtualize
listsectionfooter · header
listtilechevron · leading · subtitle · trailing
locationlabel
loginitem
materialstepperactive · steps
menuitems
modaldismissable · open · title
monthviewevents · heading · max · min · month · onMonthChange · selected · showAdjacent · today · weekStart · weekdays
navigationdraweritems
navigationrailitems
networklabel
nfclabel
notify
offstageoffstage
openurllabel
orientationlabel
pageview
paginationpage · total
pedometerlabel
photopickerlabel
pickeroptions
progresscolor
proximitylabel
qrscanlabel
radiodebounce · options
rangesliderdebounce · high · low · max · min · step
ratingmax · size · value
recorderlabel
refreshindicatoronRefresh
richtextspans
scaffold
screenrecordlabel
screens
screenshotlabel
searchbardebounce · hint · items · onSelect
securestoragelabel
segmenteddebounce · multiple · options
selectdebounce · options
selectabletext
sensorslabel
sharelabel
sheetbackdrop · dismissable · handle · initialSnap · onClose · onSnap · open · snapPoints · title
skeleton
sliderdebounce · max · min · step
slotname · slot
snackbaraction · open
spacer
spinnercolor · size
statdelta · deltaType · label · value
stepsactive · steps
storagelabel
sttlabel
swipeactionsactions
switchlisttilesubtitle · value
systemmodeslabel
tableas · column · columns · data · detail · maxHeight · minWidth · scrollX · sortData · sortDir · sortField · stickyHeader · stickyTop
tabsactive · indicator · indicatorColor · lazy · scrollable · swipe · tabs
tag
text
textareaautocomplete · autofocus · debounce · inputMode · maxLength · pattern · readonly · required · requiredMessage · rows
textformfieldautocomplete · autofocus · debounce · error · helper · inputMode · inputType · label · maxLength · pattern · prefix · readonly · required · requiredMessage · suffix
timelineitems
timepickerminuteStep
timer
tooltipfocusable · maxWidth · placement · position · tooltip
torchlabel
transformrotate · scale · scaleX · scaleY · skew · translateX · translateY
treecollapsed · data
ttslabel
verticaldividerorientation
vibratelabel
videosrc
videocapturelabel
volume
webviewhtml · src · url
when
wifilabel
wraprunSpacing · spacing