Skip to content

Issue 166

clean edited this page Oct 2, 2026 · 2 revisions

Issue #166:改动列表右侧图标尺寸、操作提示与“+”号 hover

背景与问题

用户反馈“改动”列表每行右侧的操作区存在以下体验问题(见截图紫框):

  1. 图标缺少清晰、统一的 hover 操作提示,难以直接理解按钮用途。
  2. 操作按钮整体偏大,尤其丢弃改动按钮的圆形边框与底色较突出,与紧凑的文件行、相邻“+”号不协调。
  3. “+”暂存按钮需要补充明确的 hover 视觉效果,让用户能辨认其可点击状态。

最初反馈截图的应用版本、系统及缩放比例未提供;需求登记阶段仅静态核对。2026-10-02 已补充独立本地仓库的运行时复现和实现验收,见下文与验收记录。

目标

使改动列表右侧图标按钮在尺寸、间距和视觉层级上与文件行协调;鼠标悬停时既有可感知的状态反馈,也能读到准确的操作说明。

需求与范围

  • 统一文件行右侧图标的 Tooltip,覆盖暂存(“+”)、取消暂存(“−”)、丢弃未暂存改动、删除新增文件,以及条件显示的打开仓库/Worktree、本地忽略等操作。
  • “+”号增加清晰但克制的 hover 背景、图标颜色或轮廓变化,移出后恢复;同组按钮的状态反馈保持一致。
  • 调整图标、按钮外框、内边距和间距,降低圆形危险操作按钮的视觉重量,与行高、文字和文件图标协调。保留足够的点击区域及危险操作辨识度,具体尺寸按现有 UI 规范核定。
  • 保留键盘焦点与可访问名称;禁用/加载状态不得表现为可执行操作。
  • 暂存、取消暂存、丢弃确认及新增文件删除的现有行为保持不变;本次范围为文件行右侧操作区。

方案建议与代码线索

在 140b81f9ad68c5347a6a4bc97f5f848d65d66690 静态核对:

  • ChangesView.tsx:暂存/取消暂存按钮仅有 aria-label,未配置 Tooltip 或原生 title;其他部分操作使用原生 title,提示方式不统一。aria-label 不会自动生成可见的 hover 提示。
  • workspace-layout.css:可从 .file-row__actions 及按钮样式排查尺寸、间距与 hover 样式覆盖。
  • 建议复用现有 Tooltip 与主题变量,避免同时出现 Tooltip 和原生 title 的重复提示;需核验 Tooltip 与丢弃确认浮层的交互。

以上保留需求登记时的代码线索。运行时确认默认按钮为 24×24px、12px 图标,但继承全局 999px 圆角;危险操作的全局红色底色和边框使其视觉偏重,“+”的 hover 背景与行 hover 使用相同色。相关 #161 / PR #162 已处理工作区其他入口。

验收标准

  • 文件行右侧所有可见图标均能在 hover 时展示准确、统一的中文操作提示,无重复提示。
  • “+”按钮 hover 有清晰视觉变化,移出恢复;点击仍正常暂存对应文件。
  • 右侧按钮的图标、外框、间距与行高协调,危险操作不再明显偏大;点击区域仍易用。
  • 浅色/深色、普通行/选中行及窄面板下均清晰可读,无挤压、裁切或 hover 导致的布局跳动。
  • 键盘焦点可辨识,操作说明可获取;禁用/加载状态正确。
  • 暂存、取消暂存、丢弃确认、删除及条件操作无回归,点击按钮不会误触发行选择或其他操作。

验证方案

使用含未暂存、已暂存与新增文件的仓库,逐项检查 hover、移出、键盘焦点、点击、禁用与加载状态;覆盖浅色/深色主题、窄面板、普通/选中行和条件操作。补充修改前后截图,并在 Wiki 记录实际验证结果。

风险与待确认

保留桌面密集文件行现有 24×24px 命中区和 12px 图标,使用 4px 圆角及 2px 间距。该尺寸是密集列表的局部例外,不代表将 UI 规范的普通 30px 图标按钮或触摸 44px 命中区全局缩小。真实触摸设备、原生 200% 浏览器缩放及 Electron/SSH 图形界面本轮未单独验收。

补充资料

用户提供了“改动”列表截图,紫框标出了需要调整的右侧操作区;原图归档到本 Issue 的 Wiki 附件。

Alune 改动列表:紫框内右侧按钮的尺寸、提示与 hover 待优化

截图由用户于 2026-10-02 提供,采集时间、应用版本、运行平台及缩放比例未提供。

验证记录

日期 场景 结果
2026-10-02 用户截图与代码静态核对 已记录反馈;暂存/取消暂存缺少可见提示的配置,其余样式成因待运行时确认
2026-10-02 需求登记阶段 UI 交互、主题与 Git 操作回归 当时未运行;该历史记录保留
2026-10-02 实现后 真实本地 Git、全部条件操作、深浅主题、280px 面板、390px 窗口、键盘和延迟请求 已通过,详见完整验收与截图

实现

代码提交:2581dde985545d314ee08ab52ca40b0655a48d35,基线 378192e6fd3688b3d3cbabe86a8751b4ac81b393。

  • ChangesView.tsx 为暂存、取消暂存、丢弃、删除新增文件、打开仓库/Worktree、本地忽略添加统一 Tooltip,支持 hover/focus,保留含文件路径的可访问名称,移除原生 title。
  • Tooltip 使用主题 --text 作为背景、--surface 作为文字;浅/深文字对比度 14.53:1 / 12.10:1。忙碌时不显示执行提示,丢弃浮层打开时隐藏对应提示。
  • workspace-layout.css 仅覆盖文件行操作区:透明默认背景、危险红色图标、独立 hover 边界与背景、2px 键盘焦点环及禁用态;保留全部原有 Git 回调与确认流程。
  • Web 构建及 229 项测试通过;实际运行过程、限制和附件见完整验收记录。

关联资料

回退

代码可回退本 PR 的单个提交。Wiki 与代码使用独立历史,文档需回退时单独恢复对应 Wiki 修订。

Clone this wiki locally