Menghuan1918
76b57508f4
fix(ui): compact context menus + viewport-clamped submenu flip
减重:全部右键菜单(FileTree 行菜单 / TabBar tab 菜单 / GitLens 文件与
历史菜单 / FreeWindow 标题菜单)与「+」菜单切到宿主 Menu 原语的 compact
密度(26px 行高 / 12px 字 / 164px 卡片),图标随槽位 16→14,「打开方式」
子菜单图钉 20→16,还原工具型右键菜单的趁手感。
越界:宿主子菜单纯 CSS 定位(从父行向上、向右生长)不受视口钳制——树顶
部右键时「打开方式 ▸」子菜单伸出视口上沿,窄面板(280–400px)时伸出右
沿。新增 menu-flip.ts:菜单打开期间在 <body> 发布 data-dsh-sidebar-submenu
="down|left" 方向 token(y < vh/2 → down;x + 400 > vw → left),layout.css
据此翻转子菜单生长方向与 ::before 悬停桥;属性存续期即作用域,宿主自有
菜单不受影响。刻意不做 max-height 滚动钳制——overflow 裁剪会切断悬停桥。
测试:menu-flip.spec.tsx(token 纯函数 + hook 生命周期 + CSS 契约跨文件
一致性);tab-bar / file-tree 两个 spec 追加翻转向量断言;mount.e2e 追加
compact 行高(≤30px)布局级证据。设计偏差记录同步至
docs/plans/2026-08-22-open-with-menu-design.md。
2026-09-04 20:28:35 +08:00
..
2026-09-04 20:28:35 +08:00
2026-08-18 20:29:14 +08:00
2026-09-03 20:29:50 +08:00
2026-08-27 21:44:04 +08:00
2026-09-03 20:00:08 +08:00
2026-08-26 18:33:52 +08:00
2026-08-15 00:28:59 +08:00
2026-09-03 12:04:35 +08:00
2026-08-21 23:49:13 +08:00
2026-08-12 18:27:28 +08:00
2026-08-20 02:09:36 +08:00
2026-08-11 19:28:48 +08:00
2026-08-11 19:28:48 +08:00
2026-08-31 17:52:59 +08:00
2026-09-03 10:42:56 +08:00
2026-08-29 15:31:05 +08:00
2026-08-31 01:31:22 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 20:00:08 +08:00
2026-09-03 20:29:59 +08:00
2026-09-03 20:00:08 +08:00
2026-08-29 15:31:13 +08:00
2026-08-21 01:28:17 +08:00
2026-09-03 12:04:35 +08:00
2026-08-31 01:31:22 +08:00
2026-09-03 17:32:04 +08:00
2026-09-03 20:00:08 +08:00
2026-08-11 11:16:36 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 12:04:35 +08:00
2026-09-04 20:28:35 +08:00
2026-09-02 10:55:03 +08:00
2026-09-03 12:04:35 +08:00
2026-08-18 18:05:01 +08:00
2026-08-22 22:50:13 +08:00
2026-08-29 15:31:16 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 20:00:08 +08:00
2026-08-23 02:50:37 +08:00
2026-08-16 23:35:57 +08:00
2026-08-16 23:35:57 +08:00
2026-08-29 15:31:08 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 10:42:56 +08:00
2026-09-03 10:42:56 +08:00
2026-08-16 23:35:57 +08:00
2026-08-12 01:16:20 +08:00
2026-08-24 17:54:33 +08:00
2026-09-02 21:43:34 +08:00
2026-09-01 16:01:34 +08:00
2026-08-21 23:41:33 +08:00
2026-09-03 12:04:35 +08:00
2026-08-15 15:05:06 +08:00
2026-09-01 16:01:34 +08:00
2026-09-03 12:04:41 +08:00
2026-08-13 10:26:57 +08:00
2026-09-02 23:15:19 +08:00
2026-09-03 12:04:35 +08:00
2026-08-24 12:05:14 +08:00
2026-08-23 22:02:47 +08:00
2026-09-03 20:00:08 +08:00
2026-09-03 10:42:56 +08:00
2026-09-03 12:04:35 +08:00
2026-09-04 20:28:35 +08:00
2026-08-18 01:22:28 +08:00
2026-09-03 12:04:35 +08:00
2026-08-18 01:22:28 +08:00
2026-09-03 19:59:00 +08:00
2026-09-03 10:32:34 +08:00
2026-09-02 10:27:43 +08:00
2026-08-14 14:53:03 +08:00
2026-09-03 12:04:35 +08:00
2026-08-22 23:19:17 +08:00
2026-09-02 23:13:57 +08:00
2026-08-11 11:22:28 +08:00
2026-09-03 20:00:08 +08:00
2026-08-16 23:35:57 +08:00
2026-08-26 21:40:32 +08:00
2026-08-16 23:35:57 +08:00
2026-09-03 19:59:00 +08:00
2026-08-31 17:52:59 +08:00
2026-09-02 23:26:04 +08:00
2026-08-16 23:06:44 +08:00
2026-08-21 00:48:16 +08:00
2026-09-03 20:00:08 +08:00
2026-09-03 10:00:13 +08:00
2026-08-24 18:40:04 +08:00
2026-08-13 01:39:59 +08:00
2026-09-03 12:04:35 +08:00
2026-08-23 23:44:18 +08:00
2026-09-02 23:20:17 +08:00
2026-08-16 16:24:28 +08:00
2026-09-03 19:59:00 +08:00
2026-09-03 12:04:35 +08:00
2026-08-24 01:19:43 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 12:04:35 +08:00
2026-08-22 00:15:06 +08:00
2026-09-03 20:00:08 +08:00
2026-09-02 21:43:34 +08:00
2026-09-03 20:00:08 +08:00
2026-09-01 16:01:34 +08:00
2026-09-03 20:00:08 +08:00
2026-09-03 10:42:56 +08:00
2026-09-02 23:26:04 +08:00
2026-08-21 18:15:49 +08:00
2026-08-22 15:34:05 +08:00
2026-09-03 12:04:35 +08:00
2026-08-13 09:06:55 +08:00
2026-09-03 12:04:35 +08:00
2026-09-02 21:43:34 +08:00
2026-09-04 20:28:35 +08:00
2026-09-03 12:04:35 +08:00
2026-09-03 12:04:35 +08:00
2026-08-26 21:40:32 +08:00
2026-09-03 12:04:35 +08:00
2026-08-29 15:49:35 +08:00
2026-08-27 21:44:32 +08:00
2026-09-03 12:04:24 +08:00
2026-08-16 16:37:11 +08:00
2026-08-21 01:28:17 +08:00
2026-08-27 21:44:04 +08:00
2026-08-18 23:23:17 +08:00
2026-08-24 01:36:29 +08:00
2026-08-20 18:28:57 +08:00
2026-08-21 01:28:17 +08:00