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
direction✓ row/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 / span—✓—————✓ columns + 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·phantomsolid — wavy 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 colour—live (numbers gain px)
letter-spacingnumber0baked
line-spacingnumber0baked

Box model & placement (SPEC 5):

PropertyValueDefaultNotes
width · heightnumber · autoautoborder-box; a floor. |image| needs both.
max-widthnumber—caps 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 y—post-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. A javascript:, vbscript: or data: URL errors: a link goes somewhere, it never runs code.
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, grid—see 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 / (…) expr—SPEC 14.3
labelschart seriesquoted-string list—SPEC 14.3
curve|line| |area|linear·smooth·steplinearSPEC 14.2
baseline|area|numberaxis zeroSPEC 14.2
axisseries, |mark|, |band|an |axis| id—SPEC 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 ≥ 0—SPEC 14
at|mark| |bubble| · |plane| · an opening (|door| / |window| — its station on on:’s segment)V / X Y · N [x-axis | y-axis] · N—SPEC 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.4—SPEC 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 N× 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 · spherical—SPEC 15.9
materiala control rowmaximum · least—SPEC 15.9
datumsa control rowletters, each + optional maximum / least — ≤ 3—SPEC 15.9
modifiersa control rowprojected N · free-state · tangent-plane list—SPEC 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 clearance — SPEC 21)—SPEC 15.5
facing|plane|left·right·up·downby planeSPEC 15.8
of|drawing|a |plane| / |magnifier| id—SPEC 15.8
ISO 7200 fields|title-block|quoted string—SPEC 15.8
thicknessa floorplan scope · |wall| — inherits, nearest winsnumber > 0200 mmSPEC 15.11
on|door| |window|a straight wall :segment, bare— requiredSPEC 15.11
hinge|door|start · endstartSPEC 15.11
swing|door|left · rightleftSPEC 15.11
steps|stairs|integer ≥ 2— requiredSPEC 15.11
number|pin|integer—SPEC 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 ≥ 1—SPEC 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).