Visual reference
A live catalogue of Beck's visual vocabulary. Every card below is generated by reflecting over the
Beck.Authoring token enums, so this page can never drift from the engine: each token's name and
description come straight from the source, and the preview is a real diagram using that value.
For the keys these tokens slot into, see the YAML schema; for motion, see Flow & animation.
Node kinds
kind is a shorthand that picks a fitting icon, accent, and variant at once — every part stays
independently overridable.
A running service or application — the default. Primary accent, service icon.
meta: { animate: false }
nodes:
- { id: n, title: Service, kind: service }A database or datastore. Info accent, database icon.
meta: { animate: false }
nodes:
- { id: n, title: Db, kind: db }A message queue. Warn accent, queue icon.
meta: { animate: false }
nodes:
- { id: n, title: Queue, kind: queue }A cache such as Redis or memcached. Warn accent, cache icon.
meta: { animate: false }
nodes:
- { id: n, title: Cache, kind: cache }An API gateway, load balancer, or edge. Primary accent, gateway icon.
meta: { animate: false }
nodes:
- { id: n, title: Gateway, kind: gateway }A third-party or external system. Neutral accent, external icon.
meta: { animate: false }
nodes:
- { id: n, title: External, kind: external }A person or client. Success accent, user icon.
meta: { animate: false }
nodes:
- { id: n, title: User, kind: user }A faint placeholder — dashed and transparent. Neutral accent, ghost variant.
meta: { animate: false }
nodes:
- { id: n, title: Ghost, kind: ghost }Node variants
variant sets a card's visual weight, independent of its kind.
A full-weight card — the default.
meta: { animate: false }
nodes:
- { id: n, title: Solid, variant: solid }A dimmed, lower-emphasis card.
meta: { animate: false }
nodes:
- { id: n, title: Subtle, variant: subtle }Dashed and transparent — a placeholder.
meta: { animate: false }
nodes:
- { id: n, title: Ghost, variant: ghost }Accents
A token follows the theme and recolours in light and dark mode. Anywhere a colour is accepted you can also pass a raw CSS colour, which stays frozen.
Your brand colour — the primary token.
meta: { animate: false }
nodes:
- { id: n, title: Primary, accent: primary }A positive or healthy state (emerald by default).
meta: { animate: false }
nodes:
- { id: n, title: Success, accent: success }A warning state (amber by default).
meta: { animate: false }
nodes:
- { id: n, title: Warn, accent: warn }An error or critical state (red by default).
meta: { animate: false }
nodes:
- { id: n, title: Danger, accent: danger }An informational accent (violet by default).
meta: { animate: false }
nodes:
- { id: n, title: Info, accent: info }A muted, neutral grey.
meta: { animate: false }
nodes:
- { id: n, title: Neutral, accent: neutral }Edge kinds
kind sets an edge's default style, colour, and packet motion. Each card animates so the per-kind
motion — size, speed, glow, and easing — reads at a glance.
A data flow — the default. Solid line; a medium, steady packet.
meta: { direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, kind: data } ]A control signal. Solid line; a small, fast, accelerating packet.
meta: { direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, kind: control } ]An asynchronous message. Dashed line; a large, slow, eased packet.
meta: { direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, kind: async } ]A dependency relationship. Dashed neutral line; a small packet with no glow.
meta: { direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, kind: dependency } ]Edge curves
curve shapes the routed line between two endpoints.
Orthogonal with rounded corners (default).
meta: { animate: false }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b, curve: step-round }, { from: a, to: c } ]A straight line between endpoints.
meta: { animate: false }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b, curve: straight }, { from: a, to: c } ]Smooth S-curve.
meta: { animate: false }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b, curve: s }, { from: a, to: c } ]Edge styles
style overrides the line stroke. Edge kinds set this for you; set it explicitly to override.
A solid line.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, style: solid } ]A dashed line.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, style: dashed } ]Arrowheads
arrow chooses which ends of an edge carry an arrowhead.
No arrowheads — an undirected link.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, arrow: none } ]An arrowhead at the target end — the default.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, arrow: end } ]An arrowhead at the source end.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, arrow: start } ]Arrowheads at both ends — a two-way link.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B } ]
edges: [ { from: a, to: b, arrow: both } ]Layout directions
meta.direction sets the primary axis the layout flows along.
Top to bottom (default).
meta: { animate: false, direction: TB }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b }, { from: b, to: c } ]Bottom to top.
meta: { animate: false, direction: BT }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b }, { from: b, to: c } ]Left to right.
meta: { animate: false, direction: LR }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b }, { from: b, to: c } ]Right to left.
meta: { animate: false, direction: RL }
nodes: [ { id: a, title: A }, { id: b, title: B }, { id: c, title: C } ]
edges: [ { from: a, to: b }, { from: b, to: c } ]Packet shapes and easing
The shape and easing of a travelling packet live on the Flow & animation reference, where they animate alongside the rest of the motion vocabulary.