Fix #465: shared SVG icons #475

Merged
crueber merged 1 commit from fix/issue-465 into main 2026-09-13 18:50:57 +00:00
Owner

Shared embedded SVG icon mechanism + the 10 provided icons across Watch/Star/Fork/Clone/bell/theme.

  • New web/src/lib/icons.jsx: one Icon component, inline-JSX map of the 10 files transcribed verbatim (viewBoxes as-is, currentColor kept, aria-hidden on the shared svg); caller classes compose onto one .icon utility (web/src/ui.css, no margins — #463 untouched). No new deps (law 1), no runtime fetches.
  • All six controls wired per the issue table (watch/star/bell on-off pairs doubling primary+aria-pressed, theme Show kept, fork/clone static icon-left); all old glyphs gone from web/src (grep clean); #447 metrics intact; 390px re-based ≈386px.
  • Headless: new icons-465.test.js (10 tests) + #465-scoped updates to five stale pins. node --test 998 total / 996 pass / 2 fail (2 pre-existing live-server smoke, identical on main at 988/986/2; +10 net new, zero PR-caused). vite + esbuild green, icons verified in bundle. Browser proof open (shared-daemon loopback guard).
  • Law-12 decision appended to docs/go/12_web_ui.md.
Shared embedded SVG icon mechanism + the 10 provided icons across Watch/Star/Fork/Clone/bell/theme. - New web/src/lib/icons.jsx: one Icon component, inline-JSX map of the 10 files transcribed verbatim (viewBoxes as-is, currentColor kept, aria-hidden on the shared svg); caller classes compose onto one .icon utility (web/src/ui.css, no margins — #463 untouched). No new deps (law 1), no runtime fetches. - All six controls wired per the issue table (watch/star/bell on-off pairs doubling primary+aria-pressed, theme Show kept, fork/clone static icon-left); all old glyphs gone from web/src (grep clean); #447 metrics intact; 390px re-based ≈386px. - Headless: new icons-465.test.js (10 tests) + #465-scoped updates to five stale pins. node --test 998 total / 996 pass / 2 fail (2 pre-existing live-server smoke, identical on main at 988/986/2; +10 net new, zero PR-caused). vite + esbuild green, icons verified in bundle. Browser proof open (shared-daemon loopback guard). - Law-12 decision appended to docs/go/12_web_ui.md.
New web/src/lib/icons.jsx exports one Icon component (inline JSX map of the
10 provided files, viewBoxes as-is, currentColor kept, aria-hidden on the
shared svg, caller classes compose onto one .icon utility in web/src/ui.css).
All six controls wired with the issue's state mapping (watch/star/bell pairs,
theme Show kept, fork/clone static, icon left of count/label); all old glyphs
gone from web/src; #447 metrics and #463 spacing untouched. Headless cover:
new icons-465.test.js (10 tests) + #465-scoped updates to five stale pins.
node --test 998/996/2 (2 pre-existing live-server smoke); vite+esbuild green.
Decision appended to docs/go/12_web_ui.md.
Sign in to join this conversation.
No description provided.