Branding
One config file rebrands every diagram — logo, name, footer note, and links, all inlined so output stays offline.
Everything that is identical across every diagram lives in one file at the
repo root: marrow.config.yaml.
One edit rebrands everything you build. npm run setup fills it in for you on
a fresh clone.
Where it appears
Branding is not per-diagram — on purpose
There are no branding keys in the topology schema, and there is no way to set a company name or a logo from a topology file. A topology describes a network; this file describes who it belongs to. Those are different kinds of fact with different rates of change.
Don't try to add a company name from a topology, and don't re-add a
backdrop: key — it was removed deliberately. The reasoning is recorded in
ADR-0003.
If you genuinely need two different brands, point at a different config:
--config works on build, serve, and snapshot.
Logos
Give a file path, not a URL. The bytes are inlined at build time so the diagram stays self-contained:
| Format | How it's embedded |
|---|---|
.svg | Inlined as markup — use fill="currentColor" so it follows the light/dark theme |
.png .jpg .webp .gif | Embedded as a data: URI |
Height is clamped in the chrome (14–20 px depending on position), so any source size works.
Sanitizing
Logo markup is inlined verbatim into every page Marrow builds, so it is sanitized conservatively first. Stripped on sight:
<script>,<iframe>,<object>,<embed>,<link>,<meta>- inline event handlers (
onclick=,onload=, …) - any URL that would reach outside the document
That last rule is what keeps the offline guarantee real. If your logo references an external image, that reference does not survive the build. Problems are reported rather than silently swallowed.
Links
link and github are hyperlinks, never resource loads. The page renders
fully offline; nothing is fetched unless a reader clicks. Both are http(s)-only.
link— the logo and name become a link to it, typically your company site.github— a small source mark beside the brand.
Falling back
Delete a key, or leave it blank, and Marrow uses its own mark. An empty
note: "" means no footer line at all.
Unknown keys in the config produce warnings rather than errors, and x-
prefixed keys are preserved and ignored, same as in topology files.