From 6271c58b0edabdbb5bd18c636fdb28b900c867b3 Mon Sep 17 00:00:00 2001 From: GCWing Date: Mon, 17 Aug 2026 11:25:55 +0800 Subject: [PATCH] feat(web): refine navigation and light surfaces --- scripts/theme-color-governance-baseline.json | 2 +- scripts/theme-color-near-pair-decisions.json | 8 +- .../startup_appearance_bootstrap.json | 2 +- .../appearance_prompt_snapshots.json | 2 +- src/web-ui/index.html | 6 +- .../src/app/components/NavPanel/MainNav.tsx | 33 +++- .../src/app/components/NavPanel/NavPanel.scss | 6 +- .../components/PersistentFooterActions.tsx | 165 ++++++++---------- .../workspaces/WorkspaceListSection.scss | 6 +- .../WorkspaceListSectionLayout.test.ts | 11 +- .../NavPanel/unifiedSessionCreation.test.ts | 37 +++- .../app/global-search/GlobalSearchRoot.scss | 8 +- src/web-ui/src/app/scenes/registry.ts | 2 +- .../builtins/appearancePresetOutput.test.ts | 10 +- .../appearance/builtins/light.ts | 10 +- src/web-ui/src/locales/en-US/common.json | 13 +- .../src/locales/en-US/scenes/todos.json | 2 +- src/web-ui/src/locales/zh-CN/common.json | 13 +- .../src/locales/zh-CN/scenes/todos.json | 2 +- src/web-ui/src/locales/zh-TW/common.json | 13 +- .../src/locales/zh-TW/scenes/todos.json | 2 +- tests/e2e/specs/l0-appearance.spec.ts | 46 ++++- tests/e2e/specs/l0-global-search.spec.ts | 13 ++ tests/e2e/specs/l0-i18n.spec.ts | 24 +-- tests/e2e/specs/l0-navigation.spec.ts | 76 +++++++- tests/e2e/specs/l0-notification.spec.ts | 8 +- tests/e2e/specs/l0-open-settings.spec.ts | 14 +- 27 files changed, 357 insertions(+), 177 deletions(-) diff --git a/scripts/theme-color-governance-baseline.json b/scripts/theme-color-governance-baseline.json index 502765d2a3..b972c7b41e 100644 --- a/scripts/theme-color-governance-baseline.json +++ b/scripts/theme-color-governance-baseline.json @@ -252,7 +252,7 @@ "max": 0 }, "colorDomainScopes.themePreset.occurrences": { - "max": 159 + "max": 158 }, "colorDomainScopes.themePreset.uniqueColors": { "max": 112 diff --git a/scripts/theme-color-near-pair-decisions.json b/scripts/theme-color-near-pair-decisions.json index 31c58e7c60..1bc27dee5e 100644 --- a/scripts/theme-color-near-pair-decisions.json +++ b/scripts/theme-color-near-pair-decisions.json @@ -23,11 +23,11 @@ { "root": "src/web-ui/src", "domain": "themePreset", - "key": "#f0f4f8 <-> #f3f3f5", + "key": "#fafafa <-> #ffffff", "decision": "keep", "owner": "src/web-ui/src/infrastructure/appearance/builtins", - "reason": "The pair crosses light primary background and Monaco lineHighlight / button state values. Editor line highlight must remain visibly distinct from base surface roles.", - "reevaluateWhen": "Only after Monaco-focused light-theme screenshots confirm the line highlight remains readable." + "reason": "The default Light primary background intentionally uses the requested off-white surface while secondary, elevated, and scene surfaces remain pure white. These adjacent roles need a restrained but visible hierarchy.", + "reevaluateWhen": "Only after a focused Light-theme surface review proves primary and elevated surfaces no longer need separate values." }, { "root": "src/web-ui/src", @@ -44,7 +44,7 @@ "key": "#f3f3f5 <-> #faf8f0", "decision": "keep", "owner": "src/web-ui/src/infrastructure/appearance/builtins", - "reason": "China Style paper uses a warm first-paint surface while #f3f3f5 is a cool light neutral and button state stop. This is cross-theme identity, not a duplicate role.", + "reason": "China Style paper uses a warm first-paint surface while #f3f3f5 is the default Light editor line highlight and a button state stop. This is cross-theme and renderer identity, not a duplicate role.", "reevaluateWhen": "Only after China Style paper identity is intentionally neutralized." }, { diff --git a/src/apps/desktop/src/generated/startup_appearance_bootstrap.json b/src/apps/desktop/src/generated/startup_appearance_bootstrap.json index f219eeb9c4..578f6a2c6f 100644 --- a/src/apps/desktop/src/generated/startup_appearance_bootstrap.json +++ b/src/apps/desktop/src/generated/startup_appearance_bootstrap.json @@ -5,7 +5,7 @@ "appearances": [ { "id": "bitfun-light", - "bgPrimary": "#f3f3f5", + "bgPrimary": "#fafafa", "bgSecondary": "#ffffff", "bgScene": "#ffffff", "isLight": true, diff --git a/src/crates/assembly/core/src/agentic/tools/implementations/generated/appearance_prompt_snapshots.json b/src/crates/assembly/core/src/agentic/tools/implementations/generated/appearance_prompt_snapshots.json index 3d26b8c0e6..f2cbfa7f6a 100644 --- a/src/crates/assembly/core/src/agentic/tools/implementations/generated/appearance_prompt_snapshots.json +++ b/src/crates/assembly/core/src/agentic/tools/implementations/generated/appearance_prompt_snapshots.json @@ -6,7 +6,7 @@ { "id": "bitfun-light", "mode": "light", - "bgPrimary": "#f3f3f5", + "bgPrimary": "#fafafa", "bgSecondary": "#ffffff", "bgScene": "#ffffff", "textPrimary": "#1e293b", diff --git a/src/web-ui/index.html b/src/web-ui/index.html index 12dd3f4007..5232a9baa1 100644 --- a/src/web-ui/index.html +++ b/src/web-ui/index.html @@ -9,8 +9,8 @@