9. Theme and appearance

[!ref] Full details in the User Manual, "Theme and appearance".

9.1 Three themes

Mode Trigger Look
system Follow OS Auto-switch
light Light Pure grey + warm white
dark Dark OKLCH blue + high contrast

9.2 Key colours (user-visible)

Role Light Dark
Brand Deep blue Light blue
Accent / link Blue Light blue
Success Green Green
Warning Amber Amber
Error Red Red

9.3 Fonts

Role Default
UI System UI font
Mono System mono (SF Mono / Consolas / JetBrains Mono …)
Size Small / Medium / Large (default Medium)

9.4 Header quick menu (Display-group sliders)

The quick menu at the top-right of the header gathers four appearance sliders, same-source-synced with the Settings pages:

Slider Tiers Corresponding setting
Theme system / light / dark Settings → General → Theme
Layout Sidebar / Top tabs Settings → General → Project workspace & session layout (workspace_display_mode)
Density Normal / Compact Settings → General → Message density (message_density)
Language 简 / 繁 / EN (hover for the full language name) Settings → General → Language (language); takes effect immediately and is persisted

9.5 Session strip layout

The session strips cover file changes, memory, todos, plan, goal, Pending (live guidance), Marked, Routines (session routines), result draft, attached materials, suggested tasks, self-check gate and other items, and switch automatically between two forms based on window width:

Form Trigger Presentation
row Narrow window, or always when density = Compact (full tier) A horizontal row above the input box, wrapping when too wide; expands into a popover that opens upward
rail Wide window (by message-area width: from the content-width cap + 284 px, i.e. "Standard" ≥ 1484 px, "Wide" ≥ 1684 px; "Full width" never uses rail) A vertical status stack at the top-right of the message area, 236 px wide
  • In the rail form, a strip expands into a stacked drawer on the right: fixed-position, no scrim, doesn't squeeze the body text, 680 px wide; it is anchored to the rail as a whole, so the drawer stays put when you switch between strips, and it opens leftwards or rightwards depending on the space available on either side.
  • On very wide windows a drawer slot is permanently reserved and "content + rail + drawer" is centred as a whole, so opening and closing the drawer never shifts the main content.
  • Switching form only changes position; it never changes the content width.