blob: 1b3729277404afc647e365c2fca702b3fc51d7ea (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# 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 lives under `static/`, and every file there feeds the
`/a/<hash>/` fingerprint (`_asset_version()` in `meshbay_hub/api/webapp.py`):
regenerate the picture and the URL moves, so the wordmark changes for everyone
without anything to register.
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.
|