4a3e12c85a
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Failing after 2m10s
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Failing after 0s
CI / deploy (pull_request) Has been skipped
The adaptive foreground's asterisk grazed the round mask's safe zone. Scale the foreground mark 0.75 about the icon centre (25% smaller, the letter-to-star arrangement unchanged) so it sits well inside the 61% safe zone. Independently, the legacy square ic_launcher.png now renders the full-bleed master instead of the safe-zone composite, so old Android (< API 26) shows a large mark rather than a shrunk one; the legacy round icon keeps the safe-zone composite (a round mask would clip the master's corner star). Regenerate the layer set, Android res and the brandbook foreground previews; update ICON_BRANDBOOK.md / ICONS.md.
Erudit icon — brand master
The reference construction of the Erudit app icon. The authoritative, human-readable
spec lives in 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
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.