Attributes and styling

Attributes sit in square brackets after a declaration, comma-separated. Most are positional: the value's vocabulary decides what it sets, so you rarely write a key.

A value that looks like…setsvocabulary
a palette colourcolorblue green red orange violet teal pink yellow gray
a node shapeshaperectangle ellipse diamond cylinder … (see reference)
a fill stylefillpastel (default), bold, outline
a frame kindframebrowser phone tablet window
set/name or a known iconiconaws/lambda, tech/react, server, database

Colours#

Nine palette colours cover the diagram. A node with no colour draws in the neutral default.

Blue [rectangle, blue]
Green [rectangle, green]
Red [rectangle, red]
Orange [rectangle, orange]
Violet [rectangle, violet]
Teal [rectangle, teal]
Pink [rectangle, pink]
Yellow [rectangle, yellow]
Gray [rectangle, gray]
DiagramBlueGreenRedOrangeVioletTealPinkYellowGray
The full palette. grey and purple are accepted and normalize to gray and violet.

A hex colour ("#ff8800") or a CSS name (lightblue, crimson) maps to the nearest palette hue, so pasted code keeps its intent.

Fill styles#

Three fill styles set how a colour fills the shape. They are mutually exclusive; pastel is the default.

Pastel [rectangle, blue]
Bold [rectangle, blue, bold]
Outline [rectangle, blue, outline]
DiagramPastelBoldOutline
The three fill styles on one colour.

A shadow flag adds a drop shadow. Unlike the fill styles it is orthogonal; it composes with any of them.

Plain [rectangle, blue]
Shadowed [rectangle, blue, shadow]
Bold shadow [rectangle, blue, bold, shadow]
DiagramPlainShadowedBold shadow
shadow drops a soft shadow behind the node; it stacks on any fill.

Shapes and icons#

A shape word draws that outline; a set/name token (or a bare known icon name) draws that pictogram. An icon on its own is a glyph with its label beneath. An icon combined with a shape or colour draws the shape, with the icon riding the corner as a badge.

Users [user]
Server [server, blue]
Files [aws/simple-storage-service]
Cache [cylinder, red]

Users -> Server -> Cache
Server -> Files
DiagramUsersServerFilesCache
Icon-only nodes (Users, Files) draw as glyphs; icon plus colour draws a badged shape.

The icon catalog spans thousands of glyphs: cloud providers (aws/…, gcp/…, azure/…), technologies (tech/react, tech/postgres), and a large general set (server, database, user, lock). An unknown icon falls back to the node's shape; it is never invented.

Explicit keys#

An explicit key: value is always available and wins over guessing. This is how you put a queue icon on a queue-shaped node, or override a label.

Supported keys: icon, color, shape, fill (alias colorMode), frame, label, labelColor (alias textColor), group, and link (aliases href, url). Wireframe controls also take width: and value: (alias active:).

  • label: overrides the displayed label without changing the name used in references, handy for long or duplicated labels.
  • labelColor: inks the label in a palette colour, independent of the fill.
  • link: attaches an external URL. The properties panel opens it, and SVG export wraps the node in an anchor.
db = Store [icon: cylinder, shape: queue, label: Message store]
Home [label: Landing page, link: https://koboyo.com]
Alert [diamond, labelColor: red]
DiagramMessage storeLanding pageAlert
Explicit keys override the positional guess and add a label, a colour, and a link.

Aliases#

Friendly words are accepted and normalized so pasted code and natural spellings both work:

  • Shapes: box becomes rectangle, oval the stadium terminator ellipse, decision a diamond, database/db/storage a cylinder, doc a document, subroutine a predefined-process, offpage/off-page a pentagon, stop an octagon, box3d a cube, ring/doublecircle a double-circle, notched-rectangle a card, fork/join a fork-join bar, documents/stacked-document a multi-document, processes/stacked-rectangle a multi-process, lightning a bolt, cross a plus, crossedbox a crossbox. (circle stays its own shape, a true circle with the label inside; actor/person render the user pictogram rather than a drawn outline.)
  • Flowchart roles: process becomes a rectangle, terminator/start/end an ellipse, data/io a parallelogram, prep/preparation a hexagon.
  • BPMN roles: activity becomes a rectangle, event an ellipse, gateway a diamond.
  • Colours: grey becomes gray, purple becomes violet.
  • Icons: eraser-style dashes (aws-lambda) normalize to the catalog form (aws:lambda).
  • Wireframe values: on/checked/true are on, off/unchecked/false off; widths accept 1/2, 1/3, 2/3 alongside half, third, two-thirds.

Unknown attribute words are diagnostics, not errors: the rest of the list still applies.

Decision [decision, orange]
Terminator [terminator, green]
Store [db, blue]
Decision -> Store
DiagramDecisionTerminatorStore
decision, terminator, and db are aliases: they draw a diamond, an ellipse, and a cylinder.
Every diagram on these pages is compiled live from the code above it, through the same pipeline the app uses. Open the canvas to try it.