Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Arrow Attribute Reference

AttributeValuesDefault
kindconnection, route, traffic, or omittednormal connection
colorsix-digit #RRGGBBdepends on kind
stroke-width, widthpositive number1
stroke-stylesolid, dashed, dottedsolid
start-arrowhead, end-arrowheadnone, arrow, triangle, stealth, diamond, oval; routes permit only nonedepends on kind
arrowheadsame as end-arrowhead; routes permit only nonealias
arrowhead-sizes (V1 only)s
src-side, dst-sidetop, right, bottom, leftautomatic
src-anchor, dst-anchorside-1 through side-5automatic
src-frame-side, dst-frame-sidecross-frame outer page side: top, right, bottom, left; terminal is drawn on its inward inset lineendpoint/automatic side
src-frame-anchor, dst-frame-anchorcross-frame outer page-side tangent slot side-1 through side-5; inward inset preserves that coordinateendpoint/automatic position
bends, points, viainline coordinate listnone
gridpositive numberrouter default
scale, coordinate-scalepositive number1

Anchor position aliases are start=1, near=2, center=3, far=4, and end=5. Frame-side and frame-anchor attributes are valid only when the resolved endpoints belong to different frames; they select the logical page terminal independently from the item endpoint. The drawable terminal is inset normally by the resolved metadata row-gap, or by 4 layout pixels when the frame has no metadata. A zero row-gap retains the outer edge. The page-link label’s 4-pixel inward and tangent gaps are measured from that final terminal.

A <connections> group inherits only non-empty arrowhead-size, kind, color, stroke-width, width, stroke-style, start-arrowhead, end-arrowhead, arrowhead, scale, coordinate-scale, and grid values. Child values override them. Endpoints, sides, anchors, and bend/point/via data are never inherited.

Unknown non-empty kind, stroke-style, and arrowhead values are validation errors. V1 also rejects arrowhead-size="m" and "l" instead of silently rendering them as small. After group defaults and child semantic aliases are merged, an effective kind="route" rejects every non-none start or end arrowhead; explicit none is valid.