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 → 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 ten item kinds — file changes, memory, todos, plan, goal, guidance, result draft, attached materials, suggested tasks and self-check gate — 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 (from content-area cap + 268 px) | 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.
