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:pointson 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
.classrule 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.)
| Property | flow | grid | tree | sequence | chart | pie | drawing | schematic |
|---|---|---|---|---|---|---|---|---|
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):
| Property | Value | Default |
|---|---|---|
fill | colour · none · gradient · auto | --fill (box) · none (block/line) · --icon-fill (icon) · currentColor (text) · none (root — the scene background, SPEC 18) |
color | colour | inherits (--text-color) — text colour for the subtree |
opacity | 0..1 | 1 |
stroke | colour · none · gradient | --stroke (--group-stroke on group) |
stroke-width | number | 2 (|group| and a sequence frame: 1) |
stroke-style | solid·dashed·dotted·wavy·center·phantom | solid — wavy link-only by design; center / phantom on shapes and |line|s (SPEC 15.7) |
radius | number | 0 (block/rect) · 8 (box/group) — rect + polyline join; on a hex / diamond / slant / poly an error ⌛ |
shadow | N · dx dy · dx dy blur · dx dy blur color | off — tint --shadow-color |
Text — all inherit (SPEC 6); text-valid on a bare string:
| Property | Value | Default | Kind |
|---|---|---|---|
font-family | ident · string · --var | --font-family | live |
font-size | number | 15 — chrome derives from it: a link label 11∕15, a caption 12∕15 (SPEC 6) | baked |
font-weight | normal·medium·semibold·bold·400·500·600·700 | medium (500, --font-weight) | live — measured at the resolved weight (SPEC 6); another number is an error, arbitrary 100–900 ⌛ |
font-style | normal · italic · oblique | normal | live |
text-transform | uppercase · lowercase · capitalize · none | none | baked — into the text, measured as drawn (SPEC 6) |
text-decoration | underline · overline · line-through · none | none | live |
text-shadow | dx dy blur colour | — | live (numbers gain px) |
letter-spacing | number | 0 | baked |
line-spacing | number | 0 | baked |
Box model & placement (SPEC 5):
| Property | Value | Default | Notes |
|---|---|---|---|
width · height | number · auto | auto | border-box; a floor. |image| needs both. |
max-width | number | — | caps an auto width; a width above it is invalid; text inside wraps to it (SPEC 5). |
text-wrap | wrap · nowrap | wrap | whether text breaks to honour max-width; inert without one (SPEC 5). |
padding | N · v h · t r b l | 0 (block) · 20 (box) | inner padding; places content. |
pin | none · center · edge · corner | none | out-of-flow anchor; a box property (not text). |
translate | x y | — | post-placement nudge; any node incl. text. |
rotate | degrees | 0 | turn about bbox centre; any node incl. text. |
layer | integer | 0 (flow) · 1 (pinned) | paint order; ties → source order. |
scale | number > 0 | 1 | the drafting ratio (2 = 2 : 1) — nearest-wins; position scales by the parent, shape by self (SPEC 15.1). |
pattern | grid(…) · radial(…) | — | replicate about the node’s position (SPEC 15.4). |
mirror | axis list · none · auto | auto | reflect 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):
| Property | Value | Notes |
|---|---|---|
href | quoted URL | wraps the node / link in <a href> — clickable. |
hint | quoted string | emits a <title> child (tooltip + screen-reader name). |
Type-owned properties
Read on the listed primitive; required where noted (SPEC 7).
| Property | On | Value | Notes |
|---|---|---|---|
points | |line| |poly| | x y, … · parametric u expr | vertex list; required. |
samples | |line| |poly|, chart fn: | integer | sample count (geometry default 2 — a straight segment; chart default 24). |
path | |path| | quoted SVG path | required; native top-left coords. |
src | |image| | quoted URL / data URI / local path | required; a local file embeds (SPEC 7). |
symbol | |icon| · |surface-finish| · |label| · the discretes · |door| and the floorplan fixtures (not |stairs|) | ident | Phosphor 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 · stretch | maps content into the box (size unchanged); auto default, |sign| contain. |
skew | |slant| | degrees (-89,89) | 15. |
multiple | closed primitives | N · dx dy | one offset duplicate behind. |
marker · marker-start · marker-end | |line|, links | see SPEC 7 | endpoint / vertex glyphs; from the operator on a link. |
draw | |sketch| | pen calls + :segments | required (SPEC 15.3). |
revolve | |sketch| | x-axis / y-axis | solid of revolution — fused fold + |shoulder| lines (SPEC 15.3). |
thread | |sketch| |hole| round geometry | seg pitch, … · pitch | ISO 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] groups | cut 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.
| Property | Owner | Value | Default | Ref |
|---|---|---|---|---|
layout | any container | flow·grid·stack·tree·sequence·chart·pie·drawing·floorplan·schematic | flow | SPEC 11 |
direction | flow, chart, tree | row·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 · padding | flow, grid | — | see matrix (gap 36 in a flow, 12 in card content) | SPEC 11, SPEC 12 |
columns · rows | grid · 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 · span | grid 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 1 | SPEC 12 |
data · fn | chart series | list / pairs / (…) expr | — | SPEC 14.3 |
labels | chart series | quoted-string list | — | SPEC 14.3 |
curve | |line| |area| | linear·smooth·step | linear | SPEC 14.2 |
baseline | |area| | number | axis zero | SPEC 14.2 |
axis | series, |mark|, |band| | an |axis| id | — | SPEC 14.4 |
bars · categories · samples | |chart| | see SPEC 14.1 | grouped · indices · 24 | SPEC 14 |
hole | |pie| | 0 ≤ n < 1 | 0 | SPEC 14.7 |
legend ⌛ · tooltip | |chart| |pie|, series (tooltip) | see SPEC 14 | auto · auto | SPEC 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 |
format | chart / drawing scope · |axis| · series · a dimension — inherits | auto (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) | auto | presentation 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|, bilateral | left · right | the split rule | SPEC 12 |
place | sequence |note| | over · left · right, then id(s) | — | SPEC 13 |
activation | |sequence| | auto · none | auto | SPEC 13 |
scale (homonym: an |axis|’s is linear·log·time) | any node | number > 0 | 1 | SPEC 15.1 |
unit (homonym: an |axis|’s is its quoted tick suffix) | datum scopes · |axis| | px·mm·cm·m·in — an authored one inherits | mm (a drawing) · px (a stack) | SPEC 15.1, SPEC 14.4 |
density | the root | number > 0 | 4 | px per mm, screen/raster only (SPEC 15.1) |
tol | a dimension · a control row | t / +u -l / fit ident · number > 0 (a frame’s zone width) | — | SPEC 15.6, SPEC 15.9 |
characteristic | a control row (|control|, or a one-row |feature-control|) | the ISO 1101 ident set | — (the smart label) | SPEC 15.9 |
zone | a control row | diameter · spherical | — | SPEC 15.9 |
material | a control row | maximum · least | — | SPEC 15.9 |
datums | a control row | letters, each + optional maximum / least — ≤ 3 | — | SPEC 15.9 |
modifiers | a control row | projected N · free-state · tangent-plane list | — | SPEC 15.9 |
side | a dimension / callout (also |axis|, above) | side · corner · left / right along an aligned span | by axis | SPEC 15.6 |
project | a (-) dimension | horizontal · vertical · aligned | inferred | SPEC 15.6 |
gap | a mate | signed number — separation along the normal (a dimension stands off by clearance — SPEC 21) | — | SPEC 15.5 |
facing | |plane| | left·right·up·down | by plane | SPEC 15.8 |
of | |drawing| | a |plane| / |magnifier| id | — | SPEC 15.8 |
| ISO 7200 fields | |title-block| | quoted string | — | SPEC 15.8 |
thickness | a floorplan scope · |wall| — inherits, nearest wins | number > 0 | 200 mm | SPEC 15.11 |
on | |door| |window| | a straight wall :segment, bare | — required | SPEC 15.11 |
hinge | |door| | start · end | start | SPEC 15.11 |
swing | |door| | left · right | left | SPEC 15.11 |
steps | |stairs| | integer ≥ 2 | — required | SPEC 15.11 |
number | |pin| | integer | — | SPEC 16.2 |
prefix | |component| lineage, the discretes | quoted string | the type name (|component|: "U") | SPEC 16.2 |
shape | |label| | plain·left·right·both·round | plain — a label wire’s marker sets it | SPEC 16.4, SPEC 16.5 |
pins | |J| | integer ≥ 1 | — | SPEC 16.2 |
side (homonym) | |pin| | left·right·top·bottom | the bilateral split (left on a |J|’s generated pins) | SPEC 16.2 |
side (homonym) | a |label| · a schematic wire | left·right·top·bottom | above a horizontal run, the freer side of a vertical one | which side of its trace a net name sits (SPEC 16.4) |
Link properties
A link is styled like a node (SPEC 9) — its wire takes stroke*, its labels the
text props. Its own properties:
| Property | Value | Default | Notes |
|---|---|---|---|
clearance | number | 16 — 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. |
routing | orthogonal · natural · straight | orthogonal | wiring strategy; scene config, cascades (ROUTING.md). |
along | fraction list | auto | label positions along the route. |
marker · marker-start · marker-end | marker | from the operator | endpoint glyphs (SPEC 7). |
corner-radius | number · auto | auto — the clearance-derived cap | a wire’s corner rounding radius (ROUTING.md, Model step 6); a schematic scope’s link default is 0 (SPEC 16.5). |