Skip to content

feat(web): React UI v2.0 — Phase 1 Tasks 13-15 (fonts + TS tokens + Vitest)#18

Merged
aksOps merged 3 commits into
mainfrom
feat/web-phase-1-batch-a
May 16, 2026
Merged

feat(web): React UI v2.0 — Phase 1 Tasks 13-15 (fonts + TS tokens + Vitest)#18
aksOps merged 3 commits into
mainfrom
feat/web-phase-1-batch-a

Conversation

@aksOps

@aksOps aksOps commented May 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Phase 1 Batch A of React UI v2.0 implementation — three independent foundation pieces, dispatched in parallel via subagent-driven-development.

  • Task 13 — Vendor Geist + Geist Mono fonts (5 .woff2 files, OFL-1.1 NOTICE) so the @font-face declarations from Task 12 actually resolve at build time. Eliminates the 5 font-404 warnings noted as expected interim state in PR feat: React UI v2.0 — Phase 0 backend foundation + Phase 1 scaffold start #17.
  • Task 14 — TS-side design token re-exports (web/src/tokens/{colors,typography,spacing,elevation,index}.ts) mirroring tokens.css. Lets future component code reference tokens type-safely from JS (inline animations, computed values).
  • Task 15 — Vitest + Testing Library scaffold (vitest.config.ts, tests/setup.ts, tests/_helpers/render.tsx, tests/unit/smoke.test.ts). render helper wraps in fresh QueryClientProvider per call (retry:false, gcTime:0).

Validation

  • cd web && npm install → 0 vulnerabilities
  • npm run typecheck → exit 0
  • npm run test:unit → 1 passed
  • npm run build → clean, no font-404 warnings, fonts ship in dist/fonts/

Nothing touches src/runtime/ — no dist/app.py regen needed.

Drift notes

  • tokens.css --ff-sans includes -apple-system, system-ui (extra fallback for pre-2017 Safari); the TS typography.ts matches the spec verbatim (system-ui only). Both are correct for their medium — no reconciliation needed. Spec reviewer signed off.

Test plan

  • Pytest backend suite stays green (no backend changes)
  • npm run typecheck passes
  • npm run test:unit smoke test passes
  • npm run build produces clean output with vendored fonts
  • CI: lint + type + test + sonar + bundle + skill-lint
  • CI: SonarCloud quality gate

Out of scope

Phase 1 Tasks 16-20 (<Icon>, <Button>, <Pill>+<Tag>, <Input>+<Textarea>+<Select>, <Modal>+ESLint) — the 5 component primitives — are the next batch and will ship in a follow-up PR.

🤖 Generated with Claude Code

@sonarqubecloud

Copy link
Copy Markdown

@aksOps aksOps merged commit e7b3e57 into main May 16, 2026
9 checks passed
@aksOps aksOps deleted the feat/web-phase-1-batch-a branch May 16, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant