aboutsummaryrefslogtreecommitdiffstats
path: root/assets/brand/README.md
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.