For: the design audit (#2678), the second half of #3877.
Done:
[ ] src/web/studio/kpi_row.ts draws each KPI with stat() inside a .stats section. The sparkline goes in the stat's SVG slot and keeps its role=img and aria-label. Every link, value, title and note is still there.
[ ] The .kpi.kpi-note.kpi-spark.kpi-value.kpis rules are gone from src/web/studio/feed_style.ts, and those names leave the studio/feed_style.ts bullet of docs/DESIGN.md §5d. bun scripts/design-lint.ts passes; --update lowers or keeps the baseline.
[ ] A test asserts none of the five names appear in the home page's HTML, and the KPI links still do. The home page's existing tests pass.
[ ] Before/after screenshots, light and dark, desktop and 390 px, in the pull.
Files: src/web/studio/kpi_row.ts, src/web/studio/feed_style.ts, docs/DESIGN.md, the home test.
Risk: git grep each kpi name first, and keep any another page uses (say so in the pull). If the check fails where it ran and not in the change, or on a test this change does not touch, say so in the pull rather than reworking the change.
For: the design audit (#2678), the second half of #3877.
Done:
src/web/studio/kpi_row.tsdraws each KPI withstat()inside a.statssection. The sparkline goes in the stat's SVG slot and keeps itsrole=imgandaria-label. Every link, value,titleand note is still there..kpi.kpi-note.kpi-spark.kpi-value.kpisrules are gone fromsrc/web/studio/feed_style.ts, and those names leave thestudio/feed_style.tsbullet of docs/DESIGN.md §5d.bun scripts/design-lint.tspasses;--updatelowers or keeps the baseline.Files:
src/web/studio/kpi_row.ts,src/web/studio/feed_style.ts,docs/DESIGN.md, the home test. Risk:git grepeach kpi name first, and keep any another page uses (say so in the pull). If the check fails where it ran and not in the change, or on a test this change does not touch, say so in the pull rather than reworking the change.