# Brand assets ## `meshbay-M-transparent.png` The stylised M, 214 × 190, RGBA with a transparent background. **This is the source.** It lived in `QE/` until 2026-08-19, which is gitignored — the artwork would not have survived a clone. ## Deriving the nav wordmark `packages/meshbay-hub/src/meshbay_hub/static/meshbay-m.png` is generated from it, not drawn separately: ```bash convert assets/brand/meshbay-M-transparent.png \ -trim +repage -resize x72 -strip \ packages/meshbay-hub/src/meshbay_hub/static/meshbay-m.png ``` - `-trim +repage` removes the transparent margin, so the CSS controls the spacing rather than the file's padding doing it invisibly. - `-resize x72` is 72 px tall for a picture displayed at 30 px — enough for a 2× screen, and 56 KB becomes 10 KB. The derived file is listed in `_ASSETS` in `meshbay_hub/api/webapp.py`. It has to be: that list is what the `/a//` fingerprint is computed from, so a file missing from it is a file whose change never moves the URL, and a browser holding the old one never asks again. Regenerate the picture, and the wordmark changes for everyone; forget the list, and it changes for nobody. The M is a picture standing in for the letter M; `eshBay` beside it is text. Their sizes are set independently in `style.css` — `.nav-brand { font-size }` and `.nav-brand-m { height }`, the second in **pixels on purpose**. Written in `em` it was a fraction of the lettering, so resizing the words resized the picture by the same stroke and the balance between them could never be changed.