ReviewOS

home-lang/home-os

Icons: build-time SVG rasterisation of the stx Iconify collections into per-size alpha atlases, plus a minimal on-device SVG path renderer for dynamic tints

#77
Open chris opened this 9 days ago ·
9 days ago

Epic: #113 · Milestone: MC4 — Display & 2D

Why

~/Code/Tools/stx/packages/collections/ mirrors 200K+ Iconify icons as TS modules (material-symbols, mdi, …) including airplay, cast, dlna. The device should not parse SVG at runtime. ~/Code/Libraries/ts-svg already rasterises SVG to PNG in pure TS (resvg-compatible), so the build pipeline can run on the Mac.

Tasks

  • tools/icons/ (TS, runs at build time): from the icon list used by apps/tv/**/*.stx (collected by the emitter in #89), rasterise with ts-svg at 24/32/48/64/96 px into a packed alpha atlas + a generated apps/tv/generated/icons.home table (name → rect).
  • On-device tinting = alpha atlas × theme colour (no colour bitmaps); focus/selected states via tokens.
  • Optional: tiny path renderer in Home (M/L/C/Z + fill) reusing the rasteriser from #76 for the few dynamic shapes (progress arcs, scrubber).

Acceptance

Atlas builds reproducibly in CI (hash pinned); the home screen shows icons at all five sizes with correct tinting in the QEMU golden test.

Size: S · Depends on: #76 (shares the scanline fill) · Blocks: #92

Sign in to comment on this issue.