From b41c90410418db9abb6e8a1b709fe0163cfa2712 Mon Sep 17 00:00:00 2001 From: baiqing Date: Mon, 4 May 2026 18:02:25 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(ui):=20=E6=A6=82=E8=A7=88=E9=A1=B5?= =?UTF-8?q?=E6=95=B4=E5=B1=8F=E4=B8=8D=E6=BB=9A=20+=20=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E9=A1=B5=20scrollbar=20=E5=8F=98=E7=BB=86=20(#243)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FloatingShell.tsx 的 page wrapper: - displayTab === 'overview' 时 overflow:hidden,让 Overview 真"一眼看完" - 其他 tab 维持 overflow:auto,加上 .ol-thinscroll 让 scrollbar 细而可见 tokens.css 新增 .ol-thinscroll —— 与既有 .ol-noscrollbar 同位置;区别是 "细而仍可见",保留可滚动的视觉 affordance(不像 noscrollbar 完全隐藏)。 Closes #243 --- openless-all/app/src/components/FloatingShell.tsx | 6 +++++- openless-all/app/src/styles/tokens.css | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/openless-all/app/src/components/FloatingShell.tsx b/openless-all/app/src/components/FloatingShell.tsx index 5537bfc2..e1a7372f 100644 --- a/openless-all/app/src/components/FloatingShell.tsx +++ b/openless-all/app/src/components/FloatingShell.tsx @@ -260,9 +260,13 @@ function FloatingShellBody({ os, initialTab, initialSettings }: { os: OS; initia 两列内部各自的 overflow:auto 才能独立滚动 */}
Date: Mon, 4 May 2026 18:19:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(overview):=20=E5=BA=95=E9=83=A8?= =?UTF-8?q?=E8=A1=8C=20flex:1=20+=20=E4=BB=85=E6=9C=80=E8=BF=91=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E5=8C=BA=E5=9F=9F=E6=BB=9A=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #243 第一版给外层 wrapper 加了 overflow:hidden 让概览不滚,但底部「近 7 天 + 最近识别」grid 仍按自然高度展开 → 内容超出 wrapper 时被硬裁,看不到底部 圆角;最近识别第 5 行只露半截。 修法(Overview.tsx 底部 grid): - grid 自身 flex:1, minHeight:0,撑满父 flex:column 的剩余高度 - 两张 Card 都加 display:flex/column + minHeight:0;最近识别 Card 还加 overflow:hidden,让内层行严格剪裁到 Card 的圆角 - 最近识别的 list
加 .ol-thinscroll + flex:1 + overflow:auto,自己 独立滚动;其他区域按需求保持不滚 视觉效果:底部圆角现在完整显示并与上方 metrics / providers 对齐;只有最 近识别区域出现细滚动条,整体仍是 dashboard「一眼看完」节奏。 --- openless-all/app/src/pages/Overview.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/openless-all/app/src/pages/Overview.tsx b/openless-all/app/src/pages/Overview.tsx index 32ac32f0..98794751 100644 --- a/openless-all/app/src/pages/Overview.tsx +++ b/openless-all/app/src/pages/Overview.tsx @@ -94,8 +94,11 @@ export function Overview({ onOpenHistory }: OverviewProps) {
-
- + {/* 底部一行 = flex:1 撑满剩余高度(父 wrapper 是 display:flex/column)。 + 只有「最近识别」内部允许滚动;其他卡片按内容自然高度,不破裂底部圆角。 + issue #243 follow-up:去掉外层 overflow 后底部圆角被裁的视觉问题。 */} +
+
{t('overview.weekTitle')} {t('overview.weekUnit')} @@ -106,12 +109,12 @@ export function Overview({ onOpenHistory }: OverviewProps) {
- -
+ +
{t('overview.recentTitle')} {t('overview.recentAll')}
-
+
{history.length === 0 && (
{t('overview.recentEmpty', { trigger: getHotkeyTriggerLabel(hotkey?.trigger) })} From fd0b2fdf02afe3c096e6f6fb00a2836a6e26bfc1 Mon Sep 17 00:00:00 2001 From: baiqing Date: Mon, 4 May 2026 18:26:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix(overview):=20Codex=20P1=20+=20P2=20?= =?UTF-8?q?=E2=80=94=20=E4=BF=9D=E7=95=99=20fallback=20scroll=20+=20?= =?UTF-8?q?=E5=B5=8C=E5=A5=97=20scroller=20=E5=90=8C=E6=AD=A5=E7=BB=86?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Codex P1:之前 displayTab==='overview' 时 wrapper 用 overflow:hidden, 窗口被压缩或文案变长(i18n / 字体放大)后底部 Recent Card 整片不可达, 没有 scroll 兜底路径。 修法:所有 tab 一律 overflow:auto。Overview.tsx 内部已经用 flex 把底部 行 grow 到撑满 → 正常尺寸下内容刚好占满,浏览器不显示 scrollbar;真挤 不下了 fallback 出细 scrollbar。"整屏不滚"的视觉效果保留,但有 scroll 保险。 Codex P2:::-webkit-scrollbar 不级联到子节点,所以 .ol-thinscroll 加 在 wrapper 上对 History / SettingsModal 等内层 overflow:auto 容器无效。 把 className 显式补到这些嵌套 scroller: - History 左侧列表 + 右侧详情 Card(Card 组件加 className prop 透传) - Settings.tsx 内嵌模式右栏 - SettingsModal personalize/about 块 QaPanel 是独立窗口,不在主壳 thinscroll 范围内,保留默认。 --- openless-all/app/src/components/FloatingShell.tsx | 14 +++++++++----- openless-all/app/src/components/SettingsModal.tsx | 2 +- openless-all/app/src/pages/History.tsx | 4 ++-- openless-all/app/src/pages/Settings.tsx | 1 + openless-all/app/src/pages/_atoms.tsx | 4 +++- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/openless-all/app/src/components/FloatingShell.tsx b/openless-all/app/src/components/FloatingShell.tsx index e1a7372f..1d9f2fe3 100644 --- a/openless-all/app/src/components/FloatingShell.tsx +++ b/openless-all/app/src/components/FloatingShell.tsx @@ -260,13 +260,17 @@ function FloatingShellBody({ os, initialTab, initialSettings }: { os: OS; initia 两列内部各自的 overflow:auto 才能独立滚动 */} -
+
{loading &&
{t('common.loading')}
} {!loading && filtered.length === 0 && (
@@ -164,7 +164,7 @@ export function History() {
- + {item ? ( <>
diff --git a/openless-all/app/src/pages/Settings.tsx b/openless-all/app/src/pages/Settings.tsx index 9ad3caeb..88cf7d0a 100644 --- a/openless-all/app/src/pages/Settings.tsx +++ b/openless-all/app/src/pages/Settings.tsx @@ -115,6 +115,7 @@ export function Settings({ embedded = false, initialSection = 'recording' }: Set ))}