From 95b6cedb061d48a9df6f24a12fdb3ad26dbd757d Mon Sep 17 00:00:00 2001 From: stash Date: Wed, 28 Oct 2026 20:29:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E6=90=9C=E7=B4=A2=E6=A1=86?= =?UTF-8?q?=E8=81=9A=E7=84=A6=E5=8F=8C=E6=A1=86=E4=B8=8E=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 组件库 Input:聚焦只用边框变主色,不再叠加 outline(文本框点击也会命中 :focus-visible) - 页面全局 :focus-visible 收窄到非表单控件,避免覆盖输入框自身的 outline 处理 - 搜索框恢复旧版浅边框 + 卡片阴影,聚焦不追加边框/焦点环 - Layout 新增 hideScrollbar,内容区滚动条隐藏(旧版行为) --- stash-web/src/App.css | 7 ++++--- stash-web/src/App.tsx | 1 + stash-web/src/index.css | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/stash-web/src/App.css b/stash-web/src/App.css index a486b5b..28d6d96 100644 --- a/stash-web/src/App.css +++ b/stash-web/src/App.css @@ -90,9 +90,10 @@ transform: translateX(-50%); } -/* 旧版搜索是「无边框 + 卡片阴影」 */ -.search-row > *:first-child { - border-color: transparent; +/* 旧版搜索是「浅边框 + 卡片阴影」,聚焦时不额外加边框/焦点环 */ +.search-row > *:first-child, +.search-row > *:first-child:focus-within { + border-color: var(--su-border); box-shadow: var(--su-shadow-card); } diff --git a/stash-web/src/App.tsx b/stash-web/src/App.tsx index a6a14af..a7a060c 100644 --- a/stash-web/src/App.tsx +++ b/stash-web/src/App.tsx @@ -263,6 +263,7 @@ export default function App() { contentOffset={88} height="screen" scrollable + hideScrollbar contentId="content-scroll" className="app" header={ diff --git a/stash-web/src/index.css b/stash-web/src/index.css index 203ac02..de2cc67 100644 --- a/stash-web/src/index.css +++ b/stash-web/src/index.css @@ -40,8 +40,18 @@ ol { list-style: none; } -/* 键盘焦点环由组件库统一提供;页面只补“可聚焦容器”的兜底 */ -:focus-visible { +/* 键盘焦点环由组件库统一提供;这里只给「非表单控件」补兜底。 + 表单控件不能加全局 outline:输入框点击时也会命中 :focus-visible, + 会和组件自己的边框态叠成「双框」(用户实际报过的 bug)。 */ +a:focus-visible, +button:focus-visible, +[tabindex]:not(input):focus-visible { outline: var(--su-focus-ring); outline-offset: var(--su-focus-ring-offset); } + +input:focus-visible, +textarea:focus-visible, +select:focus-visible { + outline: none; +}