strand

node

group node

What every element accepts. Every visual prop springs; x, y, scale, rotate and opacity are paint-only and never relayout.

PropType
idNodeNames the element, so others read its state (results.selected) and keys route to it (nav: results).
widthlength | autoIts width: logical pixels, or 40% of the parent; auto (as unset) sizes it by what it holds, and takes a transition there (width: auto ~ instant).
heightlength | autoIts height: logical pixels, or a percentage of the parent; auto as for width.
min_widthlengthThe smallest width it takes.
min_heightlengthThe smallest height it takes.
max_widthlengthThe largest width it takes.
max_heightlengthThe largest height it takes: max_height: 420.
sizelength | autoIts width and height at once: size: 8; auto as for width.
growfloatIts share of the space left in its row or column: grow: 1.
shrinkfloatHow much it gives up when its row or column is too small: shrink: 0 keeps its size (default 1).
justifyJustifyHow its children share the main axis: justify: space_between.
padinsetsSpace inside its edge: one to four values (pad: 0, $space.3).
margininsetsSpace outside its edge: one to four values.
gaplengthSpace between its children: gap: $space.2.
alignAlignAlignment of its children on the cross axis, or of a text's lines.
placePlaceabsolute takes it out of the flow, placed by x and y.
staggerdurationDelays each child's enter this much after the one before.
xlengthHorizontal offset; paint-only.
ylengthVertical offset; paint-only.
scalefloatScale about its centre; paint-only.
rotateangleRotation about its centre; paint-only: rotate: t * 20deg.
opacityfloatOpacity, 0 to 1; paint-only.
bgpaintBackground paint: a colour or a gradient.
colorcolorInherited. Text and icon colour, inherited by every descendant.
fontfontInherited. Font, inherited by every descendant: "Inter" 13px 500, $font.ui.
weightintInherited. Font weight, inherited by every descendant: weight: 600.
radiuscorners | fullCorner radii: one value, four (14, 14, 0, 0), or full for a pill.
cornersCornerStylesquircle for smooth corners.
borderlength, paintA border of a width and a paint: border: 1, $border. A gradient's angle may animate; only the ring repaints.
shadowshadowDrop shadows: 0 2px 8px $shadow.alpha(0.25), comma-separated.
inner_shadowshadowA shadow inside its edge.
blurlengthBlur behind it, done by the compositor: blur: 24.
blur_fallbackBlurFallbackWhat to draw when the compositor cannot blur.
backdropFilterA filter over your own content behind it: backdrop: blur(16).
clipboolClips its children to its rounded shape.
hitHitArea | noneIts hit area: hit: grow(6) enlarges it for small targets; hit: none takes no input in its own box (the pointer passes through to what is below), while its children take theirs. On a trigger: hover popup that draws nothing, a top-level element with hit: none gives the popup's input region its children's boxes instead of its own.
cursorCursorShapeThe pointer's shape while it is over it: cursor: pointer on a link, grab on a handle (when pressed { cursor: grabbing }), ew_resize on a grip. The innermost node under the pointer with one decides, and while a press is held the one it went down on does; an input shows text unless it says otherwise, anything else the default arrow. Set through wp_cursor_shape_v1, or the cursor theme where the compositor lacks it.
tooltiptextA tooltip shown on hover.
filterFilter | [Filter]Colour filters on its subtree: filter: grayscale(1), or a list.
blendBlendHow it blends with what is below it.
maskMaskMasks its subtree: fade(bottom, 24), radial(…), shape(cookie).
glowlength, colorA glow of a radius and a colour: glow: 12, $accent.alpha(0.6).
rimEdge, colorA lit edge: rim: top, $fg.alpha(0.15).
grainfloatFilm grain: grain: 0.04.
morphtextA shared-element name: nodes with the same morph morph into each other across surfaces (morph: "media").
jellyfloatSquash and stretch while dragged: jelly: 0.4.
parallaxlengthMoves with the pointer, up to this far: parallax: 6px.
tiltangleTilts toward the pointer, up to this angle: tilt: 8deg.
shapeShapeA shape from the shape library; a change morphs by spring.
strokelength, paintAn outline of a width and a paint, with styles: stroke: 3, $accent { trim: 0, progress; cap: round }.
stroke.trimfloat, floatThe part drawn: from a start to an end fraction.
stroke.wavefloat, lengthA wavy stroke: its amplitude and wavelength.
stroke.capCapThe line caps.
stroke.dashlength, lengthDash and gap lengths.
enterPose | PoseNameThe pose it enters from: enter { opacity: 0 }, popin(0.8), slide(top), fade or slidefade. exit mirrors it unless given.
exitPose | PoseNameThe pose it leaves by; the subtree unmounts once it has played.
transitionSwapTransition | SwapKindHow its content swaps on if, pages and image changes: wipe(left), disc, dissolve or pixelate; none for no mask.
draganyMakes it a drag source carrying this value: drag: pin.
Event
on clickA primary click.
on secondaryA secondary (right) click.
on middleA middle click.
on scroll(dy: float, dx: float)A scroll: on scroll(dy) { … }.
on drop(value: any, at: int)Something was dropped on it: a drag: source's value or a Drop from another program, and the index it landed at.
on key(key: Key)A key press while it has focus.
on activateIt was chosen: clicked, Enter while selected in a list, or Enter in an input with no nav: list.

This page as Markdownllms.txt