Ir al contenido

Design system

Esta página aún no está disponible en tu idioma.

The desktop app and the cloud dashboard share a single design system: a tokens package (packages/tokens/tokens.css, the source of truth) plus shared React components (packages/ui), with dark and light resolved at the CSS-variable level. Nothing is hardcoded per mode — same token names in both themes.

  • Calm and low chroma — lots of space, little decoration.
  • Three fixed panes — sessions · conversation · files/changes/checks.
  • First-class dark and light — same tokens; nothing hardcoded per mode.
  • Monospace for the technical — branches, paths, diffs, terminal.
  • State visible at a glance — agent and session state always legible.

A warm, low-chroma accent as the brand color; in light mode it darkens to keep contrast. Two modes, same token names.

TokenDarkLightUse
--bg-base#0E0E11#FAFAF8App background
--bg-surface#16161A#FFFFFFPanels, cards
--bg-elevated#1F1F24#FFFFFF + shadowMenus, popovers
--border#2A2A30#E7E4DEBorders and separators
--text-primary#ECECEF#1A1A1DPrimary text
--text-secondary#9B9BA2#6B6B72Muted text
--text-muted#6A6A70#9A9AA0Tertiary text / placeholders
--brand#7BA9C0#5B8DA6Brand color / primary accent
--brand-hover#93BBCE#4A7589Accent hover/active
--accent-cool#6FB1FF#0B6BCBLinks and cool info
TokenDarkLightMeaning
--success#4ADE80#15803DOK, verification passed
--warning#FBBF24#B45309Attention, needs review
--danger#F87171#DC2626Error, destructive operation
--info#60A5FA#2563EBInformational, in progress

Key for the diff viewer — lines with +/ on green/red backgrounds:

TokenDarkLight
--diff-add-bgrgba(74,222,128,.12)rgba(21,128,61,.10)
--diff-add-fg#4ADE80#15803D
--diff-del-bgrgba(248,113,113,.12)rgba(220,38,38,.10)
--diff-del-fg#F87171#DC2626

Light-mode values live on :root; dark mode overrides them under [data-theme="dark"].

  • UI: Inter (fallback system-ui). Weights 400 / 500 / 600. Token: --font-ui.
  • Mono (branches, paths, diffs, terminal): JetBrains Mono (fallback ui-monospace). Token: --font-mono.
  • Scale (px): h1 24/600 · h2 18/600 · h3 15/600 · body 14/400 · small 12.5/400 · mono 13.
  • Spacing scale: 4 · 8 · 12 · 16 · 24 · 32 · 48 (tokens --sp-1 through --sp-8).
  • Radii: sm 8 · md 10 · lg 14 · pill 999 (--r-sm, --r-md, --r-lg, --r-pill).
  • Separation: in dark mode, by border and --bg-elevated; in light mode, subtle shadow.
  • Iconography: Lucide, stroke 1.5.
  • Density: comfortable, with a dense sidebar showing diff counters (+N/−N).

The primary surface (Tauri desktop app) uses three fixed panes:

┌──────────────┬───────────────────────────────┬──────────────────────────┐
│ Sidebar │ Conversation (center) │ [All files][Changes][Checks]
│ Projects + │ breadcrumb: repo > session │ tree / diff / checks │
│ sessions │ session card + agent stream │ │
│ (with +N/−N) │ (markdown + tools) │ ──────────────────────── │
│ │ │ [Setup][Run][Terminal] │
│ History │ input: prompt / @mention / │ bottom sub-panel │
│ │ /commands · model picker │ │
└──────────────┴───────────────────────────────┴──────────────────────────┘
top-right: Create PR ▾ (Create draft PR · Create PR manually)
  • Sidebar — projects with their sessions, each showing branch and diff counters; a history section; a + button for a new session.
  • Centerrepo > session breadcrumb, session card, agent stream, and an input with @mention, /commands and a model/effort picker in the footer.
  • RightAll files / Changes / Checks tabs on top; Setup / Run / Terminal sub-panel at the bottom; Create PR ▾ at the top right.

The cloud dashboard reuses the same tokens and base components, with a more admin-oriented layout: side navigation by sections and dense tables.

Each state of the session FSM maps to a visual signal built on the semantic tokens:

StateVisual signalNotes
runningpulsing brand dot + “Running”
awaiting_inputinfo badge “Needs input”
awaiting_approvalwarning badge “Needs approval”destructive gate
verifyingneutral spinner “Verifying”tests / QA / pentest
ready_for_reviewsuccess badge “Ready”
mergeddimmed success check
discardeddimmed / struck-through, no color
errordanger badge “Error”
  • Subtle animation, ≤150 ms; always respect prefers-reduced-motion.
  • Target WCAG AA contrast in both modes; visible focus and keyboard navigation.
  • Virtualize long lists (sessions, file tree, agent streams); render large diffs incrementally and chunked, collapsing very large files by default. UI performance budgets live with the rest in the architecture overview.