schemd engineering vectors

02 / 11

Learn the small Schemd grammar

Place nodes, connect named ports, and choose a route or UML relationship.

01 / Nodes

Place a component on a bounded canvas

Open in playground

Every fence needs bounds="WIDTHxHEIGHT". Both dimensions must be integers from 64 to 4096.

A node has one predictable shape:

text

IDs are case-sensitive. Coordinates use the SVG viewBox, and options depend on the node kind. The color can be a built-in token such as #blue, a safe CSS color, or a theme alias.

02 / Connections

Connect named ports

Open in playground

A connection is just as small:

text

Choose line, bezier, or ortho. Orthogonal routes leave component bodies through a short escape segment, avoid other node bounds, and fail with a useful error if no clear route exists.

Markers are optional: marker-start=... and marker-end=... accept none, arrow, open-arrow, dot, triangle, diamond, or diamond-filled.

03 / UML

Use relationship names instead of hand-built markers

Open in playground

UML relationships are connection options. Schemd supplies the usual marker and dash pattern, while an explicit marker or solid/dashed option can override the default.

Relation Default style
association Solid line
dependency Dashed, open arrow
generalization Hollow triangle at the target
realization Dashed, hollow triangle at the target
aggregation Hollow diamond at the source
composition Filled diamond at the source
message, transition Open arrow
include, extend Dashed, open arrow, automatic label

Add label="text" when the connector needs a name.