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
Every fence needs bounds="WIDTHxHEIGHT". Both dimensions must be integers from 64 to 4096.
A node has one predictable shape:
kind:ID "label" at (x, y) color [options]
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
A connection is just as small:
ID.port -> ID.port color [options]
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
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.