🌻 theorymaker

19 Dec 2025

1) The smallest possible map is like this#

A:: Cause
B:: Effect
A -> B

2) Comments (important)#

This also means: don’t use # for hex colours (#ff0000) because it will be treated as a comment.

3) Settings (styles at the top)#

Settings look like Key: Value and usually go near the top.

Common settings:

Colour rules (keep it simple):

Example style block:

Background: aliceblue
Default box colour: wheat
Default box shape: rounded
Default box border: 1px dotted dimgray
Default link colour: dimgray
Default link style: dotted
Default link width: 2
Default box shadow: subtle
Direction: left-right

4) Nodes#

Define a node like this:

ID:: Label

Examples:

A:: A short label
B:: A longer label with spaces

Links look like this:

A -> B

You can create multiple links in one line using |:

A -> B | C
A | Q -> B
A | Q -> B | C

(That last one creates the full cross-product: A→B, A→C, Q→B, Q→C.)

Optional link label + border:

A -> B [increases | 1px dotted gray]

Optional link label style + size (use key=value inside the brackets):

A -> B [label=increases | border=1px dotted gray | label style=italic | label size=10]

6) Grouping boxes (optional)#

Grouping boxes are just lines starting with dashes:

Example:

--Drivers
A:: Training quality
B:: Tool usability
--

--Outcomes
C:: Adoption
D:: Error rate
--

A | B -> C | D

7) Styling nodes inline (optional)#

You can put a small “style list” after a node label:

A:: Hello [colour=red | border=2px dashed dimgray | shape=rounded]

Supported node attributes:

Border text is:

WIDTH STYLE COLOUR

Examples:

1px solid blue
2px dotted gray