From 30d6257b0438c33c413d82e323f3ddeb16a91bdb Mon Sep 17 00:00:00 2001 From: mango <1711456624@qq.com> Date: Tue, 28 Jul 2026 18:16:32 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=E4=BF=AE=E5=A4=8D=20Issu?= =?UTF-8?q?e=20#764=20(Closes=20#764)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TabManager.empty-workbench.layout.test.ts | 16 ++++++++++++++++ frontend/src/v2-theme.css | 1 + 2 files changed, 17 insertions(+) create mode 100644 frontend/src/components/TabManager.empty-workbench.layout.test.ts diff --git a/frontend/src/components/TabManager.empty-workbench.layout.test.ts b/frontend/src/components/TabManager.empty-workbench.layout.test.ts new file mode 100644 index 00000000..a7bf7525 --- /dev/null +++ b/frontend/src/components/TabManager.empty-workbench.layout.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from 'vitest'; +import { readV2ThemeCss } from '../test/readV2ThemeCss'; + +describe('empty workbench layout', () => { + it('keeps hero actions from overlapping recent cards in small windows', () => { + const css = readV2ThemeCss(); + const heroSelector = 'body[data-ui-version="v2"] .gn-v2-empty-hero {'; + const firstHeroRule = css.indexOf(heroSelector); + const heroRule = css.slice( + css.indexOf(heroSelector, firstHeroRule + heroSelector.length), + css.indexOf('body[data-ui-version="v2"] .gn-v2-empty-eyebrow {'), + ); + + expect(heroRule).toContain('flex: 0 0 auto;'); + }); +}); diff --git a/frontend/src/v2-theme.css b/frontend/src/v2-theme.css index b316d01c..561c7eb4 100644 --- a/frontend/src/v2-theme.css +++ b/frontend/src/v2-theme.css @@ -3342,6 +3342,7 @@ body[data-ui-version="v2"] .gn-v2-empty-hero { } body[data-ui-version="v2"] .gn-v2-empty-hero { + flex: 0 0 auto; display: flex; flex-direction: column; justify-content: flex-start;