Files
zeekayandHanzo Dev 9d796dca63 client: every class paints — kill the ruleless classes, 44px pills, safe-area, 36KB less silence
Class-coverage audit of the live page found markup carrying classes no
stylesheet defines. Every one is now either backed by a real rule or gone:

- items-between + @container (ChatForm composer row): dead classes deleted —
  the mx-auto spacer already does the distribution; @container is TW4 syntax
  this TW3 build never compiles.
- bg-token-main-surface-primary -> bg-presentation (EditMessage, EditTextPart;
  MobileNav already carried bg-presentation beside it).
- bg-token-sidebar-surface-primary -> bg-surface-primary-alt (SidePanel Nav,
  matching the left nav).
- bg-surface-primary/95, hover:bg-primary/90: Tailwind cannot alpha a var()
  color, so these generated NO rule. Overlay card goes solid bg-surface-primary;
  hovers get one alpha-capable token (primary-hover = the same 90% color-mix
  .btn-primary:hover uses) across all 8 sites incl. the shared Button variants.
- max-w-11/12 -> max-w-[91.667%] (OGDialog finally gets its mobile margin).
- The rest of the token-* family in the side panels: bg-token-surface-primary
  gets the missing shim rule beside its secondary sibling; variant-prefixed
  shims (dark:/hover:/aria-selected:) move to config tokens Tailwind can
  actually variant; text-token-secondary was never defined -> text-text-secondary.

Mobile: starter/mode pills min-h-11 (38px -> 44px touch targets);
viewport-fit=cover + env(safe-area-inset-*) padding on the sticky top bar and
the footer so an installed PWA clears the notch and home indicator (both env()
resolve to 0 in a browser tab).

Boot noise: files + agent-tool-auth queries gate on isAuthenticated like
useGetFileConfig already does — 7 guaranteed 401s per anonymous visit -> 0,
measured.

Bytes: silence.mp3 (the autoplay-unlock asset fetched on EVERY first paint)
re-encoded 36,494 B -> 405 B. Same mechanism, same format.

Deps: @hanzogui/shell ^8.0.3 -> ^8.0.6 (8.0.3 shipped 966 LOC of ruleless
Tailwind), @hanzo/ui -> ^8.0.42, @hanzo/design -> ^0.4.6; pnpm dedupe collapses
the second @hanzo/ui instance. Shell 8.0.6 verified against the installed
package: zero hardcoded className strings in dist.

Verified in Chromium at 390/768/1280 against the live backend: class coverage
uncovered 17-18 -> 1 (the bare lucide icon marker), 0 sub-44px targets at 390,
0 horizontal overflow, 0 boot 401s, pills 44px measured.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-04 17:01:02 -07:00

405 B