Phase C/D of the /design round-trip (Claude Design "Venture-CRM mobile redesign", 2026-06-19). Captures the cloud output and folds it into the durable design/ contract; no frontend reskin in this pass. - _imports/2026-06-19/: provenance — GridApp.dc.html (byte-exact canonical surface) + a manifest README (project URL/inventory, data model, derived- field formulas, per-surface interaction model). DesignSync can't bulk- download, so screenshots/other sources stay recoverable from the cloud URL. - DESIGN.md: §8 Responsive rewritten to the landed mobile-first system (4-tab bottom bar, card/detail, bottom sheets, swipe/snap, safe areas); §4 mobile component states; §3 15px mobile type scale; §2 stage/staleness + light-theme palette pointers. - tokens.tokens.json: new `mobile` group (type scale, radii, touch sizing, safe-area) + `motion.sheet`; `color.light` palette — light theme adopted as a planned, toggle-gated feature (dark stays default). - ROADMAP.md: mobile-first implementation backlog (contract-vs-code gap), gated on the inline-style->CSS migration and the locked pipeline spec.
6.8 KiB
Import bundle — mobile-first redesign round-trip (2026-06-19)
Provenance for the /design round-trip that produced the mobile-first design. This folder is
raw input / provenance (per ~/Projects/standards/guides/design.md); the durable contract
is design/DESIGN.md + design/tokens.tokens.json, which were distilled from this bundle.
Source
- Tool: Claude Design (cloud,
claude.ai/design), driven by Grant. - Project: "Venture-CRM mobile redesign" —
91e62d47-4c4d-43fb-9135-edb05bc59970 - URL: https://claude.ai/design/p/91e62d47-4c4d-43fb-9135-edb05bc59970
- Input packet:
design/BRIEF.md(the mobile-first brief) + uploadedDESIGN.md,tokens.tokens.json, brand SVGs, and desktop screenshots.
What's in this folder vs. still in the cloud project
The Claude Design MCP (DesignSync) streams file content into context; it has no
bulk-download / binary-export path. So:
- Byte-captured here:
GridApp.dc.html— the canonical surface, and the richest single artifact: it embodies the shared data model, the derived-field formulas, the stage/ staleness/note color logic, and the locked card model. The other surfaces reuse the same patterns (verified by reading them). - Recoverable from the cloud project (not byte-copied): the shell + the three other app
files,
store.js,support.js(the DC runtime), the option-exploration files, and all screenshots. The full inventory + the distilled logic below preserve the design intent in text; re-pull any specific file from the project URL on request.
These are Claude Design runtime prototypes (
<x-dc>/<sc-if>/<sc-for>+ aDCLogicclass +support.js, fed by a client-only seedstore.js). They are not drop-in code forfrontend/index.html(inline-Babel React, real API). They are the visual + interaction spec; implementation is a separate scoped build (seeROADMAP.md).
File inventory (cloud project)
The signed-off mobile set (what "Implement" refers to):
Ten31 Mobile.dc.html— shell: phone frame + 4-tab bottom bar over a sharedwindow.T31Storesingleton, switching between the four surfaces (dark + light theme).GridApp.dc.html— Fundraising Grid (canonical). [captured here]PipelineApp.dc.html— Pipeline (swipe-between-stages + accordion variant).RemindersApp.dc.html— Reminders (urgency groups + swipe complete/snooze).ContactsApp.dc.html— Contacts (read-only A–Z directory + detail).store.js— shared client store (data model + derived helpers + mutations).support.js— the Claude Design runtime (generic; not design content).
Earlier explorations / option sheets (superseded by the App set):
Fundraising Grid Mobile.dc.html,Contacts Mobile.dc.html,Pipeline Mobile.dc.html,Reminders Mobile.dc.html— static single-screen studies.Existing-LP Flag Options.dc.html— star vs. corner-earmark vs. top-banner trial (the App set defaults to earmark; star is the lighter alternative).Font Options.dc.html— IBM Plex vs. Manrope vs. Hanken Grotesk trial (kept Plex).
screenshots/ (~25 PNGs, in-cloud) — per-state renders: grid cards/detail, sort, contact
detail, pipeline dots/log, swipe-reveal, sheets (name/note/view), reminders, LP-flag, fonts.
uploads/ (in-cloud) — the inputs we fed in (BRIEF.md, DESIGN.md, tokens, desktop
screenshots); originals already live in design/.
Data model (from store.js)
Investor = { id, name, priority:bool, stage:'lead'|'engaged'|'diligence'|'commitment'|null, daysAgo, contacts:[{name,email}], funds:[[fundName, amount], …], views:[…], notes:[[type, summary, isoDate], …] }. Reminder = { id, note, orgId, due:iso, done:bool }. One canonical
copy in a window singleton so a stage move / logged comm / reminder edit on any tab reflects
on the others. Mirrors the server model (grid is system of record; daysAgo ← server
last_activity_at; commitments read-only on mobile).
Derived-field formulas (sourced — reuse verbatim in implementation)
- Committed $:
sum(funds[].amount). Existing-Investor flag =committed > 0(auto-derived; not a stored field). - Money format:
≥1e6 → $N[.N]M(drop.0);≥1e3 → $NK;0 → $0. - Staleness (last-contact overlay, one global threshold — values TBD with team):
AMBER=10,STALE=30days.<10grey →≥10amber (#e0b341dark /#a76a07light) →≥30red + "Nd stale" (#f87171/#c0322f). - Stage order:
lead → engaged → diligence → commitment. Stage chip shows only when in pipeline (stage != null). - Reminder urgency buckets: overdue (
<0d) → today (0) → this-week (1–7) → later (>7), colors red / due-soon / accent / subtle.
Color logic introduced by the comps (reconcile in the contract)
- Stage chips use semantic tints (within the existing tinted-badge idiom, not new hues):
lead = subtle grey, engaged = accent blue, diligence = due-soon
#e0b341, commitment = success#10b981/#6ee7b7. - Light theme — the comps add a full light palette + a theme toggle. Adopted as a planned
feature (owner decision 2026-06-19): dark stays the default, light ships behind a toggle. Core
palette is in
tokens.tokens.jsoncolor.light; full per-component light tints live inGridApp.dc.htmlhere. SeeDESIGN.md§8 + the mobile backlog inROADMAP.md.
Per-surface interaction model
- Grid: card list (name · committed · stage chip · staleness last-contact) + Existing-LP
earmark + Priority corner badge; tappable view-name → bottom-sheet view picker; search +
+create (name typeahead → existing-match guard). Tap card → full-screen detail with per-field bottom-sheet edits (name, contact pills, stage, reminder, log note); commitments read-only. Graveyard view renders muted (opacity 0.55). - Pipeline: segmented stage control + snap-scroll between full-width stage columns
(page dots), per-card
‹ back / fwd ›stage move, tap → detail/log sheet. Accordion variant included as the alternative. - Reminders: urgency-grouped list; pointer-drag card to reveal complete (swipe-left,
threshold 70px) / snooze (swipe-right);
+add; tap → edit sheet (note, investor, due chips). - Contacts: read-only A–Z grouped directory (sticky letter headers) + search; tap → full-screen read-only detail (email copy, linked investor, last note); pencil = quick-log.
Shared chrome: 46px status bar (cosmetic), top bar (·Ten31· + theme toggle + account
avatar), 4-tab bottom bar (Grid·Pipeline·Reminders·Contacts; 56px tall; translucent +
backdrop-blur; padding-bottom:18px for safe-area), bottom sheets (radius-20 top, 38×4 drag
handle, sheetUp 280ms), toasts (above nav), account popover (profile + logout).