MyLife OS · Source-of-truth map · 2026-05-06 · Interaction Design Guide
One canonical artifact per layer. Subordinate docs and tooling may reference these but never replace them.
All --ml-* CSS custom properties. Modules consume tokens — never raw hex values.
| Token group | Version | Example |
|---|---|---|
| Core palette (primary, danger, warning, success) | v1.0 | --ml-primary, --ml-danger |
| Surface (bg, card, border, text1–text3) | v1.0 | --ml-bg, --ml-card, --ml-border |
| Spacing, radius, shadow, nav-height | v1.0 | --ml-radius, --ml-shadow |
| Font scale (fs-xs → fs-2xl) | v1.0 | --ml-fs-xs, --ml-fs-xl |
| Brand color scales (indigo, teal) | v1.1 | --ml-indigo-50 … --ml-indigo-900 |
| Neutral scale (ink, paper) | v1.1 | --ml-ink-100 … --ml-ink-900, --ml-paper |
| Type system (font-body/display/mono, text-xs→5xl, leading-*) | v1.1 | --ml-font-body, --ml-text-lg |
| Spacing scale (space-1 → space-20) | v1.1 | --ml-space-4 (= 1rem) |
| Radius scale (sm/md/lg/xl/pill) | v1.1 | --ml-radius-md |
| Shadow scale (xs/sm/md/brand) | v1.1 | --ml-shadow-md |
| Status colors (active/pending/error/info/inactive) | v1.1 | --ml-status-active-bg, --ml-status-active-fg |
| Sensitivity governance (public/unknown/pii/phi) | v1.1 | --ml-sens-phi-bg, --ml-sens-phi-fg |
| State tokens (staged/stale/locked/readonly/degraded) | v1.1 | --ml-state-staged-bg, --ml-state-staged-ring |
| Tags (green/blue/purple/amber/rose/teal) | v1.1 | --ml-tag-green-bg, --ml-tag-green-fg |
| Z-index scale | v1.1 | --ml-z-modal, --ml-z-toast |
| Touch targets & density | v1.1 | --ml-touch-min (44px), --ml-touch-rec (48px) |
| Breakpoints | v1.1 | --ml-bp-sm (640) / md (900) / lg (1200) / xl (1600) |
| Animation | v1.1 | --ml-ease, --ml-duration-fast/base/slow |
var(--ml-*) tokens in Styles.html. Never use raw hex values or hardcoded px sizes for color, spacing, or typography.
Structural component CSS (base.css) and the JS constructor API (components.js). Both must be loaded.
MyLifeComponents.*)MyLifeComponents.confirm() for all confirmation dialogs — never hand-roll. The JS function implements the full accessibility contract (focus trap, Esc, typed-ID gate, cancel-default focus).
Include when your module renders any of these patterns. Requires theme.css + base.css loaded first.
7 canonical page-shell layouts. Requires theme.css + base.css + patterns.css loaded first.
Every module Index.html must load assets in this sequence. Comments indicate when optional assets apply.
| Rule | Rationale |
|---|---|
Use var(--ml-*) tokens — never raw hex | Enables dark mode / theme rebrand without touching modules |
Use MyLifeComponents.confirm() for all modals | Enforces a11y contract (focus trap, Esc, cancel-default) |
Load CDN via /assets/v2/ path | Versioned delivery; legacy /assets/ path is deprecated |
| CSS before JS in load order | Prevents FOUC and class-not-yet-defined JS errors |
No @import for Google Fonts | theme.css already loads Fraunces, Inter, JetBrains Mono from CDN |
| Only use breakpoints in {600, 640, 900, 1200, 1600} px | Matches --ml-bp-sm/md/lg/xl token values; unsupported values create inconsistent layouts |
| Interactive targets ≥ 44px in both dimensions | Matches --ml-touch-min; required for mobile usability |
| Do not duplicate pattern/template classes in Styles.html | Load patterns.css instead; local reimplementations drift from platform |
Prefix module-local classes: .module-id-* | Prevents collision with CDN class names |
One exemplar module per template type. Builders should reference these when implementing a new view of that shape. Marked PILOT when the module is the recommended migration target for that template.
| Template | Golden module | What it shows |
|---|---|---|
.ml-tmpl-profile-*entity profile |
client-profiles PILOTmodules/domain/client-profiles |
Entity sidebar + tabbed detail view, document panel, related-records list. First migration target for the profile shell. |
.ml-tmpl-queuereview queue |
scheduler-reviewmodules/domain/scheduler-review |
Inbox of items needing operator action — saved views, bulk-select toolbar, single-row detail. |
.ml-case-*case workspace |
tasks PILOTmodules/domain/tasks |
Single-instance workspace: head + body + events timeline + aside. Used for work-OS instances. |
.ml-tmpl-dashboard-*dashboard |
jarvismodules/dashboard/jarvis |
Stat-row + cards layout with at-a-glance numbers and entry points to other modules. |
.ml-tmpl-registry-*registry view |
voice-agent-adminmodules/admin/voice-agent-admin |
Sheet-row table editor with inline edit, version history, publish/rollback controls. |
.ml-tmpl-doc-reviewdocument review |
staff-docsmodules/domain/staff-docs |
Document classifier output + extracted-fields panel + accept/reject controls. |
.ml-tmpl-audit-bodyaudit / timeline |
system-overviewmodules/dashboard/system-overview |
Timeline of platform events with severity filters, correlation drill-down, governance flags. |
templates.css classes — they are the recommended migration targets, not yet conformant. As each module migrates, this table will be updated to reflect actual conformance. Run scripts/ds_audit.py to see current state.
Run the conformance audit to check all modules against this contract:
| Artifact | Location | Update via |
|---|---|---|
| theme.css (token definitions) | platform/platform-assets/assets/ | PR + CDN deploy |
| base.css (component CSS) | platform/platform-assets/assets/ | PR + CDN deploy |
| patterns.css | platform/platform-assets/assets/ | PR + CDN deploy |
| templates.css | platform/platform-assets/assets/ | PR + CDN deploy |
| components.js (JS API) | platform/platform-assets/assets/ | PR + CDN deploy |
| manifest.json (asset registry) | platform/platform-assets/assets/ | Updated with each CDN asset change |
| ORGANIZATION.md (load order, conventions) | platform/platform-assets/ | Updated when contract changes |
| Platform Design Tokens Guide | Drive: MyLife OS / Documents / Governance | Updated when token semantics change |
| This page (design-system.html) | platform/platform-assets/pages/ | Kept in sync with above; non-canonical docs redirect here |
MyLife OS Design System v1.1 · Updated 2026-05-06 · Phase DS1