marrow.config.yaml
Global configuration — the settings that are identical across every diagram you build.
One file at the repo root holds everything static across every diagram. Topology files describe a network; this file describes who it belongs to.
brand
| Key | Type | Notes |
|---|---|---|
name | string | Shown beside the logo in the sidebar footer, the inspector drawer, and the top brand strip |
note | string | Footer line — e.g. a classification banner. "" means no line |
logo | path | Relative to this file. A path, never a URL |
link | http(s) URL | The logo and name link here |
github | http(s) URL | Small source mark beside the brand |
Delete a key, or leave it blank, to fall back to Marrow's own mark.
Logo handling
| Extension | Embedding |
|---|---|
.svg | Inlined as markup. Use fill="currentColor" so it follows the theme |
.png .jpg .webp .gif | Embedded as a data: URI |
Height is clamped in the chrome (14–20 px by position), so source size doesn't matter.
Markup is sanitized before inlining: <script>, <iframe>, <object>,
<embed>, <link>, <meta>, inline event handlers, and any URL that would
reach outside the document are all removed. Problems are reported, not
swallowed. This is what keeps the offline guarantee true.
Links are not loads
link and github are http(s)-only hyperlinks. Nothing is fetched when a
diagram opens; following one is an explicit reader action. Diagrams still
render fully offline.
Pointing elsewhere
This is the supported way to produce differently-branded outputs. There is no per-topology branding — see ADR-0003.
Unknown keys
Unknown keys here warn rather than error (the opposite of topology files,
where they're fatal). x- prefixed keys are preserved and ignored.
npm run setup writes this file interactively on a fresh clone — organization
name, footer note, theme, accent color, and a drop-in icon pack for your own
logos. Re-running setup never overwrites what you've edited.