# Erudit icon — brand master

The reference construction of the Erudit app icon. The authoritative, human-readable
spec lives in [`docs/ICON_BRANDBOOK.md`](../../../docs/ICON_BRANDBOOK.md); this folder
holds the machine reproduction of exactly what that document describes.

| File | What |
|------|------|
| `build-icon.mjs` | reference generator — every dimension is a fraction of the side, matching the brand book |
| `render-png.mjs` | rasterises an icon SVG to PNG via the `ui` package's Playwright chromium |
| `Spectral-Bold.ttf` | the «Э» typeface (SIL OFL, `Spectral-OFL.txt`) — pinned so the letter never drifts |
| `icon-light.svg` / `.png` | the light master (1024) |
| `icon-dark.svg` / `.png` | the dark master (1024) |
| `icon-construction.svg` / `.png` | the percent-annotated construction scheme (figure in the brand book) |

## Regenerate

```sh
cd assets/icons/brand
npm i opentype.js                       # the only extra dep; render uses ui's chromium

node build-icon.mjs --variant light  > icon-light.svg
node build-icon.mjs --variant dark   > icon-dark.svg
node build-icon.mjs --variant light --scheme > icon-construction.svg

node render-png.mjs icon-light.svg  icon-light.png  1024
node render-png.mjs icon-dark.svg   icon-dark.png   1024
node render-png.mjs icon-construction.svg icon-construction.png 2048
```

The SVGs are resolution-free; render at any size. Downstream slicing (favicon / PWA /
iOS / Android) is a separate step — see [`docs/ICONS.md`](../../../docs/ICONS.md).
