Runic
LAYOUT

One text, laid out your way

Flip between top-down and left-to-right, pack branches tight, caption arrows, and let .back arrows route themselves around the boxes.

Try it free →Read the docs

What it is

Runic draws the diagram; you never place a box. The engine is deterministic, so the same document always produces the same picture, and the toolbar offers a few global choices instead of a thousand local ones. Slides want left-to-right; a wiki page wants top-down. Same text.

The toolbar

Flow direction switches between top-to-bottom and left-to-right; branches fan out horizontally in one and vertically in the other. Compact cards shrinks every card to 60% width and hides the icon chips, so big flows read denser. Branch alignment centers branches under a decision, or keeps the first branch on the parent’s axis so a long main path reads straight. Tight packing, on by default, moves a sibling branch aside only where its boxes would collide with the arm before it, instead of reserving each arm’s full bounding box. Compact, alignment and packing are remembered in your browser once you have allowed Preferences in the cookie dialog; direction resets to top-down on reload.

Zoom runs from 25% to 250%, Ctrl/⌘ + scroll zooms toward the cursor, and fullscreen returns with Esc.

Captions and return arrows

End a step line with a colon and a caption, Customer pays: payment confirmed, and the caption rides the outgoing arrow as a pill. The colon needs a space on at least one side, so https:// and 14:30 never split. It works on plain steps, .input, .wait, .fail and .do; an .if cannot carry one, since branch arrows are labeled by their .then chips. A caption on a path that ends has no arrow and is dropped.

.back <a few words of a step> draws a dashed arrow from the box above it to any step or .input in the document, earlier or later; no card is drawn and the flow continues below. .back Created: cancel order captions it. Routes are orthogonal with rounded corners, through a gutter to the right (below, in left-to-right) proven clear of every node by a 14-pixel margin; parallel routes keep 14 pixels apart, several arrows into one box get staggered entries, a far-side target gets a direct arrow between the columns, and a self-loop draws a small out-and-around. Until the target text matches a step, a dashed hint pill shows beside the box.

Limits

No manual placement, no per-node override. Empty branches show an “Add a step…” placeholder. Left-to-right runs its own layout pass but reuses the same return-arrow router, transposed, so return arrows behave the same way in both orientations.

How to use it

  1. Flip direction
    Click the arrow button in the diagram toolbar (“Flow direction”). The flow re-lays out left-to-right; click again for top-down.
  2. Densify a big flow
    Click “Compact cards” for 60%-width cards. Tight packing is already on; toggle it to compare with roomy branches.
  3. Straighten the main path
    Click “Branch alignment”. The first branch of each decision continues straight from its parent; siblings fan out one way.
  4. Caption an arrow
    End a line with : caption, for example Order ships: within 24h. A pill appears on the arrow leaving that card.
  5. Add a return arrow
    Under any step type .back, pick a target from the menu, and add : label if you want a caption. A dashed arrow routes around every box.

Commands & shortcuts

Flow directionToolbar: top-to-bottom ↔ left-to-right (not persisted)
Compact cardsToolbar: 60% card width, icon chips hidden (remembered with Preferences consent)
Branch alignmentToolbar: center vs first-branch-on-axis (remembered with Preferences consent)
Tight packingToolbar: contour packing, on by default (remembered with Preferences consent)
step: captionCaption on the outgoing arrow; space beside the colon required
.back target: labelDashed return arrow to any step, optionally captioned
Ctrl / ⌘ + scrollZoom toward the cursor, 25%–250%
EscExit fullscreen

Tips

  • Left-to-right plus branch alignment reads like a timeline; use it for slide exports.
  • If two arms look crowded, toggle tight packing off to compare, then decide.
  • Keep captions to two or three words; they sit beside the arrow and do not reflow the layout.
  • Direction is not saved, so set it right before an export.

Questions

Can I move one box?

No. Every position is computed from the text. Change the order or nesting of lines, and use the toolbar toggles for the overall shape.

Why does my .if line turn red when I add a caption?

Decisions cannot carry an arrow caption; each branch arrow is already labeled by its .then chip. Move the caption to the step before the decision.

Why did a .back become a small dashed pill?

Its target matches no step text yet. Pick one from the .back menu or type a few words that appear in the step; the pill becomes the arrow when it matches.