Files
2026-07-18 12:39:55 +08:00

45 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 调研记录
## 用户需求
- 顶部标题旁放置左侧菜单收起/展开按钮。
- 固定收起后仍保留一条窄侧边触发区。
- 鼠标移入触发区时侧栏以悬浮层临时展开,鼠标移出后自动收回。
- 先完成通用功能,再兼容现有主题。
## 视觉输入
- 参考截图:`sessions/_attachments/1c730846-9ff5-4b5e-a522-afdd2c5aa9e0.png`
- 截图显示标题位于主内容顶栏左侧,左侧菜单与主内容之间有明确竖向边界。
- 本任务不新增主题和图片资产,截图仅用于按钮位置与侧栏层级参考。
## 工程基线
- `codebase-memory-mcp` 项目 `home-cc-web` 索引状态为 `ready`,节点 3883、边 8420。
- 任务开始时 `git status --short` 无输出,工作树干净。
- 主题技能要求共享功能与主题专属视觉分层,并在真实浏览器覆盖动态状态和多视口。
- Trellis 开发者为 `shiyue`;当前 Trellis 任务仍是既有的 `07-17-gilded-wasteland-theme`,按工作流规则不覆盖当前任务指针。
## 初步代码定位
- `public/app.js` 已有 `openSidebar()` / `closeSidebar()` 和触屏滑动逻辑,现状服务于移动端 `.open` 状态。
- `scripts/regression.js` 的现有主题契约包含 `gilded``wasteland` 等侧栏断言,新增共享交互需避免破坏这些移动端规则。
- 无障碍要求:顶部按钮需提供可访问名称、`aria-expanded`、原生键盘激活与可见焦点;窄触发条不进入 Tab 顺序。
- `public/index.html` 已有 `#menu-btn`,位置正好在 `#chat-title` 之前;无需新增第二个按钮。
- `#menu-btn` 当前只在 `max-width: 768px` 显示并切换 `.sidebar.open`,桌面端可复用同一按钮切换新的 `.app.sidebar-collapsed` 固定状态。
- 桌面收起可通过“完整宽度侧栏 + 负右外边距 + translateX”仅占用窄轨道宽度hover 时只恢复 transform因布局占位不变不会推动正文。
- 主题侧栏宽度统一来自 `--sidebar-width`,包括暗金荒野的 316px共享几何规则应继续引用变量主题只需补触发轨颜色/阴影。
- 通用浅色主题直接继承各自的 `--bg-secondary` / `--border-color` / `--accent`;暗色主题统一提高悬浮层阴影,`gilded``wasteland` 分别补暖铜和暗金触发轨,避免共享轨道破坏主题质感。
## 浏览器证据
- Firefox 152headless + geckodriver在 1440 桌面精细指针下:展开侧栏宽 280px、正文起点 x=280固定收起后侧栏范围 x=-266..14、正文起点 x=14hover 后侧栏恢复 x=0..280,正文仍保持 x=14移出与刷新后均恢复固定收起。
- 按钮桌面状态从 `aria-expanded=true / 收起左侧菜单` 正确切到 `false / 固定展开左侧菜单`;缓存资源实际加载 `20260718-sidebar-collapse-1`
- `wasteland` 1672 视口截图确认 316px 暗金侧栏悬浮完整展开并覆盖正文而不推动正文;`washi` 收起/悬浮截图确认轨道和层级正常。
- 500px 窄屏下沿用移动抽屉:关闭时侧栏位于视口外,打开后 `aria-expanded=true` 且遮罩显示,点击侧栏外坐标后关闭;横向溢出均为 0。
- Firefox headless 普通窗口接口的内容区最小宽度为 500px下一轮使用 WebDriver BiDi `setViewport` 补测精确 390px。
- WebDriver BiDi 稳态验收覆盖全部 11 个现有主题10 个主题侧栏宽 280px`wasteland` 为 316px每个主题收起右边界均为 x=14、hover 左边界均为 x=0、正文起点保持 x=14、横向溢出为 0。
- 键盘 `:focus-within` 在 1440×900 下完整展开侧栏而不改变固定状态;精确 1672×941、500×844、390×844 均通过。
- 宽屏无 hover / 无精细指针的真实浏览器边界:即使本地持久化值为收起,侧栏仍完整显示,按钮隐藏且 `aria-expanded=true`,视觉与无障碍状态一致。
- 独立终审在媒体状态机修订后通过,未发现剩余中高风险问题。