Mobile Phase 7: theme-conformance pass — light-flip + retire legacy badges
Route remaining hardcoded UI colors through themed :root vars so they flip under [data-theme="light"], finishing the P6 light-theme migration. - Mobile: bottom-tab-bar -> --nav-bg; toast bottom-center above the tab bar, rising in via a new slideInUp keyframe. - Money: --money for the kanban/pipeline-stage/stat amount literals. - Badges: remap the legacy Material .badge-* family onto the brand StageChip/--chip-* + --badge-priority/-danger slots, retiring the second palette (DESIGN sections 2/7). - Desktop-light: logout/danger buttons, table hover/stripe/footer, sidebar & header gradients, scrollbars, toast states, context-menu danger, thesis banner/accents, grid selection & drag indicators, skeleton loaders. 28 new themed vars (theme-stable ones dark-only); dark appearance preserved. Frontend-only. Verified via CSSOM render-smoke, var resolution, brace check; reviewer approve-with-nits (toast-rise fixed). Unverified on a real device. Also refresh AGENTS.md Current state and add a ROADMAP legacy-usage-sweep note.
This commit is contained in:
@@ -201,6 +201,8 @@ Open design questions (settled at build time): send time = **6 PM box-local** (c
|
||||
|
||||
**Keep the Contacts table — as the read-only per-person directory it already is.** Confirmed 2026-06-16: the grid models **investor entity → many people** correctly today. The grid "contacts" column is a multi-pill editor; each pill syncs to a `fundraising_contacts` row AND its own classic `contacts` row (5-person family office → 1 investor + 5 contacts, linked via `fundraising_contacts.contact_id`, migration 0004). The Contacts page is **read-only for creation** (header: "added from the Fundraising Grid"; no New-Contact button), edit-only via the detail slide-over — the desired flow already holds. Email capture already rolls **multiple people up to one investor** (matcher indexes each pill's email separately, all → same `fundraising_investor_id`; `email_investor_links` records both investor and specific person). No build here — future email-surfacing UI should present comms grouped by investor across all its people.
|
||||
|
||||
**Legacy-usage sweep — what's still wired, what's dead, what can be deleted (Grant, 2026-06-19; after mobile feature-complete).** Phase 7's `.badge-*` remap surfaced that several legacy badge classes (lead/outreach/meeting/due-diligence/committed/funded) have no — or near-no — live JSX caller, and Grant flagged other likely-dead legacy bits (e.g. the `investor type` field). Once the mobile redesign is feature-complete, do a systematic pass: for each legacy component / CSS class / endpoint / DB field, determine whether it still renders or runs anywhere (JSX callers, `do_GET`/`do_POST` dispatch, DB reads), then soft-retire/delete the genuinely-dead ones (never hard-delete data — archive per convention; `refactor-scout`/`janitor` can inventory). Start list: the orphaned `.badge-*` classes, `investor type`, and other classic-CRM remnants not reachable from the grid-canonical flow.
|
||||
|
||||
### Front-end: pre-compile JSX, drop runtime Babel (optional, larger)
|
||||
*Logged 2026-06-16 during the v0.1.0:82 vendor+SRI work. The scoped fix shipped: React/ReactDOM/Babel are now vendored + SRI-pinned and served same-origin, and a jsdom render smoke check gates every build (`docs/guides/packaging.md`). This is the bigger alternative we deliberately deferred.*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user