Optional alpha0..1, default 1.
Optional bottomDistance from parent's bottom edge to this node's bottom edge.
Optional centerXHorizontal offset from the centre of the parent. 0 = perfectly centred.
Optional centerYVertical offset from the centre of the parent. 0 = perfectly centred.
Optional heightOptional idRequired if the node needs to be targeted by animations or runtime
setters. "frame" is reserved - used by positional tweens as
relativeTo: "frame" to reference the video frame.
Optional leftDistance from parent's left edge to this node's left edge.
Optional marginReserves space on each side of the node by inflating its bounding box. Lives on the child rather than as container-level padding, so the parent needs no declaration to give one of its children breathing room.
child + margin, so
margin effectively enlarges the parent. This drives the
"background plate" pattern: in an auto-sized group, put an
omitted-size Rect next to a Text with margin: "10px" -- the
group hugs text plus margin, the rect autofills the group, and
the text sits visually inset 10 px inside the plate.StackNode margin is added to the child's flow slot on
both sides and compounds with gap: two adjacent children with
margin: "10px" separated by gap: "5px" produce a 25 px visual
gap (10 + 5 + 10).Optional maskId of a RectNode with isMask: true whose bounds clip this node.
The mask rect may live anywhere in the tree; it is resolved by id at
parse time. Only rects may be used as masks.
Optional maxOptional maxOptional minLower bound for the node's computed height. See minWidth.
Optional minLower bound for the node's computed width. Clamps the laid-out size
from below - applies to both auto-sized nodes (hugged size lifted to
minWidth) and explicit-sized nodes (if width < minWidth, wins
minWidth, same as CSS).
Optional rightDistance from parent's right edge to this node's right edge.
Optional topDistance from parent's top edge to this node's top edge.
Optional visibleDefault true.
Optional width
Structural container.
Sizing:
width/heightis set, the group has that size; children do not affect it.width/heightis omitted, the group hugs the bounding box of its children including each child'smargin. A child sized as a fraction/percent of that same axis (a plainnumberor"N%") does not contribute to the hug - that would be circular - so the group sizes from its"Npx"and intrinsic children (Text, or an omitted-size Rect). The fraction then resolves against the group's final size at layout, so e.g. awidth: 1rect fills the text-hugged group (a background plate) without inflating it.GroupNodehas no container-level padding: usemarginon the child that needs breathing room. This keeps the "background plate" pattern unambiguous - an omitted-sizeRectalways fills the group's full border-box, and margin on its sibling controls how far the content sits inside that plate.