You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bring the Desktop shell chrome and the settings pages onto the Astryx idiom and the DESIGN.md contract, so that every visible surface reads as one system: one surface ladder, one border means, one radius ladder, two ink tiers, and Astryx primitives at the seam.
This tracker owns the visual and structural work. Behavioural bugs and renderer performance are tracked separately in #4677; WorkHub lives in #3492.
Titlebar geometry and identity: one height on the 4px rhythm, session identity from titlebar-session-identity.tsx as the only title authority, chrome actions as Astryx Button/Toolbar, no product shadow.
Titlebar dim and modal sync (titlebar-dim-color.ts, titlebar-modal-sync.ts) read colour from the painted root per DESIGN.md §8, never from a token string.
Settings (13 pages, in groups of 2–3 per PR, following About as merged in #4857)
General, Appearance, Data
Memory, Projects, Subagents
Providers overview and connection detail (keep the multi-level IA; fix C1–C4 inside it)
Bots overview, detail, onboarding modal
Usage, Web search, Health, Permission, Daily review
Rules for every page: open groups with Heading + Divider (no stacked cards, C1), no nested containers (C2), no decorative Badge (C3), one primary action per view (C4), no accent as texture (C5), unified row grammar (C7), no dashboard stat tiles (C8).
Row-end controls follow the Astryx component docs, not the settings templates: actions are Button (secondary when the action changes state, ghost otherwise; primary only for the single task-completing action of the view, if any), navigation is Link. A row-end Link takes the same inline padding as the sm buttons so text edges align down the column (see fix(desktop): reduce the About page to rows of one shape #4857).
Cross-cutting
CSS dialect: move remaining surface rules out of maka-tokens.css and reference-shell.css into styles/** per docs/frontend-css-governance.md; freeze new agents-* class names (P3.3).
Shrink quote-chip, turn-footer and lineage Button overrides to themeProps (P3.1).
Goal
Bring the Desktop shell chrome and the settings pages onto the Astryx idiom and the
DESIGN.mdcontract, so that every visible surface reads as one system: one surface ladder, one border means, one radius ladder, two ink tiers, and Astryx primitives at the seam.This tracker owns the visual and structural work. Behavioural bugs and renderer performance are tracked separately in #4677; WorkHub lives in #3492.
Baseline and predecessors
Heading+Divideropen groups, no stacked cards, no nested containers).docs/settings-astryx-deep-review.zh-CN.md(C1–C10) records the gap; About was rebuilt on the template in refactor(desktop): rebuild the About page as labeled settings groups #4571 and reduced to a row-only page with a two-tier control ladder in fix(desktop): reduce the About page to rows of one shape #4857; the merged About page is the reference; 13 pages remain.docs/frontend-architecture-astryx-review-2026-08-09.md: raw-control blockers 0; remaining risk is AppShell concentration (A1–A3), CSS dialect sprawl (A7), and product chrome over Astryx controls (P3.1).Work items
Each item is one PR with BEFORE/AFTER Storybook captures (light and dark, same stories, same viewport) in the PR body.
Titlebar
mainsince 08-27) before touching titlebar geometry.titlebar-session-identity.tsxas the only title authority, chrome actions as AstryxButton/Toolbar, no product shadow.titlebar-dim-color.ts,titlebar-modal-sync.ts) read colour from the painted root per DESIGN.md §8, never from a token string.Workbar (right side)
Session rail (left sidebar)
List/Itemidiom: 32–36px rows, dividers instead of cards, status viaStatusDot(no decorativeBadge).Tooltip/Dialog/DropdownMenuwith the Floating Recipe (DESIGN.md §5).Settings (13 pages, in groups of 2–3 per PR, following About as merged in #4857)
Heading+Divider(no stacked cards, C1), no nested containers (C2), no decorative Badge (C3), one primary action per view (C4), no accent as texture (C5), unified row grammar (C7), no dashboard stat tiles (C8).Button(secondarywhen the action changes state,ghostotherwise;primaryonly for the single task-completing action of the view, if any), navigation isLink. A row-endLinktakes the same inline padding as thesmbuttons so text edges align down the column (see fix(desktop): reduce the About page to rows of one shape #4857).Cross-cutting
maka-tokens.cssandreference-shell.cssintostyles/**perdocs/frontend-css-governance.md; freeze newagents-*class names (P3.3).Buttonoverrides tothemeProps(P3.1).app-shell.tsx).apps/desktop/AGENTS.md,packages/ui/AGENTS.md) and thexds+ Storybook MCP entries — pending Discussion [DISCUSS] What should the repository tell coding agents, and where? #4676, together with docs: add AGENTS.md #3576 and Adopt Storybook's official MCP addon to give agents a queryable component interface #3527.Non-goals
Verification
apps/desktop/e2ewhere behaviour exists.