Skip to content

Design language — survey and revamp

State: open/active · Genre: plan

The ask: establish a clear design language for the determined suite — and, by descent, for every app in the monorepo — with real theming support. Inspiration: highly technical yet usable apps (OmniGraffle), with a modern update.

The design language already exists and is good. It is @determined/ui (packages/ts/ui): a --d-* token vocabulary, multiple themes × light/dark, a set of appearance axes, 35 D* components, a semantic-intent contract, and a written spec whose principles (“sophisticated, elegant, minimal, mac-first; compact pro-tool density”) are exactly the OmniGraffle target. Current token, theme and axis counts live in design-system.md.

What it needs is not invention. It needs three things:

  1. Coherence. The spec contradicts the implementation, several tokens are defined but never wired (fonts, density), four dark-mode mechanisms coexist, and two icon sets ship. SURVEY.md carries the full drift ledger.
  2. Law. No repo-level decision or standard governs any of this. The spec is package-local and stale. It cannot bind the suite until it is true and adopted as a decision.
  3. Descent. Adoption is an hourglass: deep inside determined experiences and the SDF desktop, zero everywhere else — including the five live apps under apps/ the system was distilled from. The theming seam that fixes this is already proven (SDF’s registered sdf theme).
  1. Every live desktop app is Tauri 2 + Nuxt 4 + Vue 3 + Tailwind 4 + Nuxt UI. The stack is converged; only the styling layer diverges.
  2. The token system is the real interface: app-frame names no design-system layer and consumes only a documented 25-token --d-* contract.
  3. Theming-by-descent works today: solutions/ontological/desktop registers its own sdf theme through the public seam and gets the whole chrome.
  4. The visible incoherence is mostly unwired plumbing, not missing design: body font hard-coded past the font token, density token unread, icon sets mixed, stock-green Nuxt UI on unadopted surfaces.
  5. Frozen and legacy surfaces (apps/ontological-legacy) are explicitly out of scope; adoption targets are the live rings only.
DocWhat it holds
SURVEY.mdCurrent-state inventory: the system, the adoption map, the drift ledger
PROPOSAL.mdThe design language: stance, architecture, theming descent, decisions to make
PLAN.mdPhased execution plan with concrete tasks

← Back to Notes