17. Property Ledger & Support

Every property is name: value; — dash-case, positional, space-separated values (SPEC 3). This section is the one place that answers which property works where.

A property applies everywhere by default; the exceptions are marked. An exception is always one of two kinds: type-owned — a property a primitive requires or reads (points on |line|, symbol on |icon|, skew on |slant|) — or layout-owned — a property an engine interprets (cell on a grid, place on a sequence note, data on a chart).

Validation is strict where the wearer is known, lenient where a class is polymorphic (messages in SPEC 21):

  • An unknown property name is an error, everywhere — even in a class rule; no owner accepts it. The message suggests the nearest name.
  • A known property misused where its wearer is statically known — an instance’s own block, an element rule (|box| { }, |-| { }), an id rule, a descendant rule’s tail, the root block — is an error with a contextual correction: points on a |box|, cell: off a grid, a box property on bare text, a layout’s own surface used outside it (SPEC 21). A layout-owned property errors where its owning layout is statically known to be absent, and is inert otherwise.
  • In a .class rule the CSS semantics hold: a property is inert on wearers that can’t use it; it warns only when it is dead for every wearer, and a defined class no node wears warns too.
  • A malformed value (wrong arity, out of range) is an error, wearer-independent.

State marks used below: built and honoured · meaningful but not built, a candidate (SPEC 24) · not applicable.

The container × layout matrix

The high-signal grid: which container / layout property each engine honours. (Paint, text, and box-model properties are universal to every node — the tables that follow.)

Propertyflowgridtreesequencechartpiedrawingschematic
directionrow/column+bilateral+radial
gap✓ spacing✓ spacing✓ generation × sibling✓ pitch / spacing✓ plot gutter✓ plot gutter— (a mate reads its own — SPEC 15.5)✓ the coarse lattice — column and row pitch (SPEC 16.1)
gap-fill✓ᵇ
padding✓ᵇ✓ frames the sheet
align / justify✓ per-column✓ᵇ
width / height✓ (slack)✓ (slack)✓ a floor✓ (surplus distributed)✓ box size✓ box size✓ a floor✓ a floor
columns / rows / cell / spancolumns + ordinal cell (SPEC 16.1)
clearance (scene config — cascades, SPEC 9)✓ its links✓ its links✓ its links— (messages route straight)✓ text off what it labels✓ a dimension’s stand-off✓ its wires
container paint (fill stroke radius shadow opacity href)

✓ᵇ — honoured on the participant / frame boxes’ own content (they are ordinary boxes), but not by the sequence engine’s placement of them on the time axis (SPEC 11). A chart / pie consumes its children into marks, so that case does not arise — hence .

A floorplan reads the drawing column — the same engine (SPEC 15.11). A stack reads it too, minus the drafting rows: the placement is the one a drawing is built on (SPEC 12), so the arranger knobs are and padding, the sizing pair and the container’s own paint are honoured.

Universal properties

Honoured on every drawn node, in every layout (a box; text takes the marked subset).

Paint & stroke (SPEC 6, colour SPEC 10):

PropertyValueDefault
fillcolour · none · gradient · auto--fill (box) · none (block/line) · --icon-fill (icon) · currentColor (text) · none (root — the scene background, SPEC 18)
colorcolourinherits (--text-color) — text colour for the subtree
opacity0..11
strokecolour · none · gradient--stroke (--group-stroke on group)
stroke-widthnumber2 (|group| and a sequence frame: 1)
stroke-stylesolid·dashed·dotted·wavy·center·phantomsolidwavy link-only by design; center / phantom on shapes and |line|s (SPEC 15.7)
radiusnumber0 (block/rect) · 8 (box/group) — rect + polyline join; on a hex / diamond / slant / poly an error
shadowN · dx dy · dx dy blur · dx dy blur coloroff — tint --shadow-color

Text — all inherit (SPEC 6); text-valid on a bare string:

PropertyValueDefaultKind
font-familyident · string · --var--font-familylive
font-sizenumber15 — chrome derives from it: a link label 11∕15, a caption 12∕15 (SPEC 6)baked
font-weightnormal·medium·semibold·bold·400·500·600·700medium (500, --font-weight)live — measured at the resolved weight (SPEC 6); another number is an error, arbitrary 100–900 ⌛
font-stylenormal · italic · obliquenormallive
text-transformuppercase · lowercase · capitalize · nonenonebaked — into the text, measured as drawn (SPEC 6)
text-decorationunderline · overline · line-through · nonenonelive
text-shadowdx dy blur colourlive (numbers gain px)
letter-spacingnumber0baked
line-spacingnumber0baked

Box model & placement (SPEC 5):

PropertyValueDefaultNotes
width · heightnumber · autoautoborder-box; a floor. |image| needs both.
max-widthnumbercaps an auto width; a width above it is invalid; text inside wraps to it (SPEC 5).
text-wrapwrap · nowrapwrapwhether text breaks to honour max-width; inert without one (SPEC 5).
paddingN · v h · t r b l0 (block) · 20 (box)inner padding; places content.
pinnone · center · edge · cornernoneout-of-flow anchor; a box property (not text).
translatex ypost-placement nudge; any node incl. text.
rotatedegrees0turn about bbox centre; any node incl. text.
layerinteger0 (flow) · 1 (pinned)paint order; ties → source order.
scalenumber > 01the drafting ratio (2 = 2 : 1) — nearest-wins; position scales by the parent, shape by self (SPEC 15.1).
patterngrid(…) · radial(…)replicate about the node’s position (SPEC 15.4).
mirroraxis list · none · autoautoreflect the node’s path and features about the axis through its origin; auto reflects iff an ancestor does (SPEC 15.3).

Media & accessibility — any node (href also a link):

PropertyValueNotes
hrefquoted URLwraps the node / link in <a href> — clickable.
hintquoted stringemits a <title> child (tooltip + screen-reader name).

Type-owned properties

Read on the listed primitive; required where noted (SPEC 7).

PropertyOnValueNotes
points|line| |poly|x y, … · parametric u exprvertex list; required.
samples|line| |poly|, chart fn:integersample count (geometry default 2 — a straight segment; chart default 24).
path|path|quoted SVG pathrequired; native top-left coords.
src|image|quoted URL / data URI / local pathrequired; a local file embeds (SPEC 7).
symbol|icon| · |surface-finish| · |label| · the discretes · |door| and the floorplan fixtures (not |stairs|)identPhosphor name, required (or via the label) · the finish vee variant — basic·machined·prohibited, default basic (SPEC 15.9) · a schematic symbol / variant (SPEC 16.3, SPEC 16.4) · a floorplan variant (SPEC 15.11).
fit|icon| |image|auto · contain · cover · stretchmaps content into the box (size unchanged); auto default, |sign| contain.
skew|slant|degrees (-89,89)15.
multipleclosed primitivesN · dx dyone offset duplicate behind.
marker · marker-start · marker-end|line|, linkssee SPEC 7endpoint / vertex glyphs; from the operator on a link.
draw|sketch|pen calls + :segmentsrequired (SPEC 15.3).
revolve|sketch|x-axis / y-axissolid of revolution — fused fold + |shoulder| lines (SPEC 15.3).
thread|sketch| |hole| round geometryseg pitch, … · pitchISO 6410 thread dressing (SPEC 15.3, SPEC 15.4).
sheet|page|a5…a0 / ANSI a…e [portrait | landscape]trimmed-size sugar → width / height in mm (SPEC 15.8).
break|sketch|a b [axis] groupscut the view between stations (SPEC 15.3).

Grid, tree, chart, pie, sequence, drawing, floorplan & schematic properties

Layout-owned — an error only where a hard gate exists (SPEC 21); otherwise inert out of scope.

PropertyOwnerValueDefaultRef
layoutany containerflow·grid·stack·tree·sequence·chart·pie·drawing·floorplan·schematicflowSPEC 11
directionflow, chart, treerow·column · radial (chart) · bilateral (tree)row (flow) · column (a closed shape’s or a |topic|’s card content, chart, tree)SPEC 11
gap · gap-fill · align · justify · paddingflow, gridsee matrix (gap 36 in a flow, 12 in card content)SPEC 11, SPEC 12
columns · rowsgrid · schematic (columns — its own ordinal tracks, SPEC 16.1)track list · a schematic’s is the wrap count, an integer ≥ 1— (columns required on a grid)SPEC 12
cell · spangrid box child; cell also a schematic’s — ordinal (SPEC 16.1); span also a |space|’s slots (SPEC 16.2)col row / cols rows— / 1 1SPEC 12
data · fnchart serieslist / pairs / (…) exprSPEC 14.3
labelschart seriesquoted-string listSPEC 14.3
curve|line| |area|linear·smooth·steplinearSPEC 14.2
baseline|area|numberaxis zeroSPEC 14.2
axisseries, |mark|, |band|an |axis| idSPEC 14.4
bars · categories · samples|chart|see SPEC 14.1grouped · indices · 24SPEC 14
hole|pie|0 ≤ n < 10SPEC 14.7
legend ⌛ · tooltip|chart| |pie|, series (tooltip)see SPEC 14auto · autoSPEC 14
value|slice| |bubble|number ≥ 0SPEC 14
at|mark| |bubble| · |plane| · an opening (|door| / |window| — its station on on:’s segment)V / X Y · N [x-axis | y-axis] · NSPEC 14.5, SPEC 15.8, SPEC 15.11
side · range · scale · step · ticks · unit · gridlines|axis| (range also a |band|’s extent — SPEC 14.5)see SPEC 14.4SPEC 14.4
formatchart / drawing scope · |axis| · series · a dimension — inheritsauto (a chart tick to 4 decimals, a dimension to 2, zeros trimmed) · decimal N · significant N · scientific N · engineering N · percent N · fraction D · date preset (year·month·day·hour·minute)autopresentation only, never measurement; composes before unit:, tol:, the /R/° glyphs, and counts (SPEC 14.4, SPEC 15.6)
side (homonym: also an |axis|’s, above, and a dimension’s, below)first-level |topic|, bilateralleft · rightthe split ruleSPEC 12
placesequence |note|over · left · right, then id(s)SPEC 13
activation|sequence|auto · noneautoSPEC 13
scale (homonym: an |axis|’s is linear·log·time)any nodenumber > 01SPEC 15.1
unit (homonym: an |axis|’s is its quoted tick suffix)datum scopes · |axis|px·mm·cm·m·in — an authored one inheritsmm (a drawing) · px (a stack)SPEC 15.1, SPEC 14.4
densitythe rootnumber > 04px per mm, screen/raster only (SPEC 15.1)
tola dimension · a control rowt / +u -l / fit ident · number > 0 (a frame’s zone width)SPEC 15.6, SPEC 15.9
characteristica control row (|control|, or a one-row |feature-control|)the ISO 1101 ident set— (the smart label)SPEC 15.9
zonea control rowdiameter · sphericalSPEC 15.9
materiala control rowmaximum · leastSPEC 15.9
datumsa control rowletters, each + optional maximum / least — ≤ 3SPEC 15.9
modifiersa control rowprojected N · free-state · tangent-plane listSPEC 15.9
sidea dimension / callout (also |axis|, above)side · corner · left / right along an aligned spanby axisSPEC 15.6
projecta (-) dimensionhorizontal · vertical · alignedinferredSPEC 15.6
gapa matesigned number — separation along the normal (a dimension stands off by clearanceSPEC 21)SPEC 15.5
facing|plane|left·right·up·downby planeSPEC 15.8
of|drawing|a |plane| / |magnifier| idSPEC 15.8
ISO 7200 fields|title-block|quoted stringSPEC 15.8
thicknessa floorplan scope · |wall|inherits, nearest winsnumber > 0200 mmSPEC 15.11
on|door| |window|a straight wall :segment, barerequiredSPEC 15.11
hinge|door|start · endstartSPEC 15.11
swing|door|left · rightleftSPEC 15.11
steps|stairs|integer ≥ 2requiredSPEC 15.11
number|pin|integerSPEC 16.2
prefix|component| lineage, the discretesquoted stringthe type name (|component|: "U")SPEC 16.2
shape|label|plain·left·right·both·roundplain — a label wire’s marker sets itSPEC 16.4, SPEC 16.5
pins|J|integer ≥ 1SPEC 16.2
side (homonym)|pin|left·right·top·bottomthe bilateral split (left on a |J|’s generated pins)SPEC 16.2
side (homonym)a |label| · a schematic wireleft·right·top·bottomabove a horizontal run, the freer side of a vertical onewhich side of its trace a net name sits (SPEC 16.4)

A link is styled like a node (SPEC 9) — its wire takes stroke*, its labels the text props. Its own properties:

PropertyValueDefaultNotes
clearancenumber16 — a drawing, schematic, or chart scope seats its own (SPEC 10.5)min gap from nodes and links; a dimension’s packing stand-off (SPEC 15.6); a chart’s chrome text off what it labels (SPEC 14.6). One meaning: the minimum daylight a thing keeps off what it must not touch. Scene config — cascades.
routingorthogonal · natural · straightorthogonalwiring strategy; scene config, cascades (ROUTING.md).
alongfraction listautolabel positions along the route.
marker · marker-start · marker-endmarkerfrom the operatorendpoint glyphs (SPEC 7).
corner-radiusnumber · autoauto — the clearance-derived capa wire’s corner rounding radius (ROUTING.md, Model step 6); a schematic scope’s link default is 0 (SPEC 16.5).