Commit Graph

23 Commits

Author SHA1 Message Date
saravanakumardb1
0c982de7e6 feat(web/ui8): remove legacy global classes + tighten audit regex + lock CI gate
UI8 closes the migration cycle started by UI0. The four legacy global
classes (.surface-card, .surface-muted, .badge, .input-shell) are
removed from web/src/app/globals.css and the CI ratchet now enforces
zero new occurrences across three of the four drift categories.

Changes:

1. Audit regex precision (scripts/ui-drift-audit.sh, scripts/ui-drift-ratchet.sh)

   The previous pattern 'className="[^"]*(badge|surface-card|surface-muted|input-shell)'
   matched the literal token anywhere inside className, which caused 21
   false positives against Tailwind arbitrary values like
   'bg-[color:var(--nl-surface-muted)]' where the legacy name appears
   inside a 'var(--nl-...)' reference.

   New pattern requires the legacy class to be a whole class token —
   either at the start of className, or preceded by a space, and
   followed by a space or closing quote. Result: 21 false positives
   eliminated; the ratchet now reports an honest 0 for the legacy
   category.

2. globals.css cleanup (web/src/app/globals.css)

   Removed .surface-card, .surface-muted, .badge, .input-shell rules.
   Only truly global utilities remain (typography, focus-visible,
   sr-only, skip-link, motion preferences, layout grids). A header
   comment documents that re-introductions should be solved at the
   call-site with a primitive, not by restoring the global rule.

3. Ratchet baseline (scripts/ui-drift-baseline.json)

   Final counts after UI5–UI8 across the session:
     raw interactive controls       14   (was 38 at start)
     legacy global surface classes  0    (was 92 at start)
     hardcoded color literals       0    (no change, was already 0)
     direct @bytelyst/ui imports    0    (no change, was already 0)

   The 14 remaining raw controls are intentional and tracked:
     NoteEditor toolbar buttons (10)
     ArtifactPanel hidden file input (1)
     search/page radio inputs (2)
     NoteVersionsPanel disclosure button (1)

4. CI gate (.github/workflows/ci.yml release-guards job)

   Documented that the ratchet is the canonical gate post-UI8: because
   legacy/colors/imports baselines are 0, any new occurrence in those
   three categories now fails CI. The strict-audit script is kept as
   a local diagnostic tool but not wired as a gate (would fail on the
   14 intentional raw controls).

5. Roadmap (docs/UI_UX_PLATFORM_CORE_ROADMAP.md)

   Marked UI5, UI6, UI7, UI8 all complete with per-phase commit hashes
   and explicit deliverables.

Cumulative migration impact (from initial baseline):
   raw interactive controls       38 → 14   (-24, -63%)
   legacy global surface classes  92 → 0    (-92, -100%)

Verified:
- pnpm run verify: backend 380/380, web 96/96, mobile 97/97
- bash scripts/ui-drift-ratchet.sh: all four categories at baseline
- bash scripts/ui-drift-audit.sh: only "Raw interactive controls"
  category has matches (intentional, tracked above)
- Live Docker stack at http://localhost:3050 still serves 200,
  backend health 200
2026-05-23 01:55:36 -07:00
db9b4557d8 refactor(ui): remove legacy shell css 2026-05-06 13:40:24 -07:00
63211c0019 feat(ui): consume common app shell 2026-05-06 13:35:54 -07:00
6c562f05d8 test(ui): add review visual smoke 2026-05-06 13:28:57 -07:00
c79aa2b6fd feat(ui): migrate review workflow primitives 2026-05-06 11:43:34 -07:00
0f5ddb400b feat(ui): map platform tokens globally 2026-05-06 11:34:23 -07:00
837a187bd1 fix(web): stabilize mobile layouts 2026-05-05 10:58:10 -07:00
d26a4ae9de refactor(web): use shared ui primitives 2026-05-05 10:49:25 -07:00
6ede2bee7e refactor(web): replace hardcoded app colors 2026-05-05 10:17:06 -07:00
saravanakumardb1
58a778bc1e feat(web): init feature flags + kill switch on startup, fix hardcoded colors
- Providers.tsx now calls initFeatureFlags() and checkKillSwitch()
  on mount (both were wired but never initialized).
- globals.css: replace hardcoded #0b1020 with color-mix() from canvas token.
- layout.tsx: make themeColor responsive (dark/light media queries).
- use-theme.ts: prefix localStorage key with PRODUCT_ID for consistency.
2026-04-13 09:59:54 -07:00
saravanakumardb1
00fd39f594 fix(tokens): remove duplicate hand-written token block — now imported via design-tokens pkg 2026-03-29 01:54:46 -07:00
saravanakumardb1
89edf59a4e fix(web): wire responsive sidebar — add toggle to AppShell, open prop on Sidebar, CSS !important overrides 2026-03-29 00:03:27 -07:00
saravanakumardb1
e362f2aefe feat(web): add responsive sidebar CSS breakpoints for mobile 2026-03-28 23:30:02 -07:00
saravanakumardb1
7ee0c6d481 fix(web): add interactive hover/active states for buttons and links 2026-03-28 23:20:59 -07:00
saravanakumardb1
36a95609ff chore(design-system): add responsive sidebar CSS breakpoints (768px collapse) 2026-03-28 00:50:31 -07:00
saravanakumardb1
0db213af1c fix(web): add skip-to-content link for WCAG keyboard accessibility 2026-03-28 00:46:50 -07:00
saravanakumardb1
926c3b4b12 fix(web): add prefers-reduced-motion media query for accessibility 2026-03-28 00:38:47 -07:00
saravanakumardb1
8e26b91ae1 fix(web): wire next/font CSS variables into product font-family declarations 2026-03-28 00:34:22 -07:00
saravanakumardb1
7a032be9e3 fix(web): add sr-only, prefers-color-scheme, and next/font canonical fonts 2026-03-28 00:25:57 -07:00
saravanakumardb1
bc8c120145 feat(design-system): add focus-visible CSS for keyboard accessibility 2026-03-27 16:36:21 -07:00
saravanakumardb1
8fdc7b57d0 fix(web): add --nl-* CSS token aliases — previous rename broke all styling since vars had no definitions 2026-03-21 20:48:35 -07:00
saravanakumardb1
85968e7b2a fix(web): replace --ml-* (MindLyst) with --nl-* (NoteLett) CSS namespace across 18 files 2026-03-21 20:18:44 -07:00
saravanakumardb1
4fb859c81c feat(notes): scaffold product surfaces and backend MCP slices 2026-03-10 08:53:07 -07:00