Files
scrabble-game/assets/icons/brand
Ilia Denisov 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
feat(icons): shrink the Android adaptive mark 25%, give old square launchers the full-bleed master
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.
2026-07-14 21:57:32 +02:00
..

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.