docs: 添加 OVERNIGHT_SUMMARY 供醒来验收
- 5 分钟验收清单(启动 + 8 个视觉检查项) - 改动文件清单 - 设计决策回顾 - 已知风险 / 未做项 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Showing
1 changed file
with
150 additions
and
0 deletions
OVERNIGHT_SUMMARY.md
0 → 100644
| 1 | # 🌙 Overnight 工作总结 — UI 重设计 | ||
| 2 | |||
| 3 | **完成时间**:2026-05-09 凌晨 | ||
| 4 | **分支**:`feat/ui-redesign-apple-theme` | ||
| 5 | **状态**:所有计划任务已完成 ✅ | ||
| 6 | |||
| 7 | --- | ||
| 8 | |||
| 9 | ## TL;DR | ||
| 10 | |||
| 11 | 把全套 UI 改造成 Apple 高级浅色风格 + 完整深色主题,修了 4 个明显的 layout 问题。删除了 65 处零散 inline `setStyleSheet`,引入 `theme.py` 作为单一真相源。`master` 完全没动。 | ||
| 12 | |||
| 13 | 打包验证启动到登录页 ✅。 | ||
| 14 | |||
| 15 | --- | ||
| 16 | |||
| 17 | ## 怎么验收(5 分钟) | ||
| 18 | |||
| 19 | ```bash | ||
| 20 | # 1. 切到分支 | ||
| 21 | git checkout feat/ui-redesign-apple-theme | ||
| 22 | |||
| 23 | # 2. 跑现成的打包产物(昨晚刚打好的) | ||
| 24 | ./dist/ZB100ImageGenerator/ZB100ImageGenerator.exe | ||
| 25 | # 或者 dev 模式更快 | ||
| 26 | .venv/Scripts/python.exe image_generator.py | ||
| 27 | ``` | ||
| 28 | |||
| 29 | 按以下顺序看效果: | ||
| 30 | |||
| 31 | | 检查项 | 看什么 | | ||
| 32 | |---|---| | ||
| 33 | | 登录页 | 标题"登录"+ 副标题"珠宝壹佰图像生成器",主按钮 pill 圆角 + Apple Blue | | ||
| 34 | | 主窗口 tab 栏 | 三个 tab,选中态 = 蓝字 + 底部 2px 蓝线(不再是 Win95 凸起 tab) | | ||
| 35 | | 任务队列 sidebar | 顶部"任务队列"标题在独立 40px header bar 里,与主区 tab 同基线(不再飘到右上角)| | ||
| 36 | | "生成图片" / "下载图片" 按钮 | 主按钮蓝色实心 pill,下载是白底描边 — 视觉权重明显有别 | | ||
| 37 | | GroupBox(参考图片 / 提示词等) | 卡片化白底,淡边框 + 左上小标签,不再 Win95 黑边 | | ||
| 38 | | 输入框焦点 | 双层蓝边(Apple Blue) | | ||
| 39 | | 系统切换深色 | Win11: 设置 → 个性化 → 颜色 → 选"深色"。应用应自动跟随。Mac 同理 | | ||
| 40 | | 业务功能 | 生成 / 队列 / 历史 / 收藏全跑一遍,应该完全没变(只动了视觉) | | ||
| 41 | |||
| 42 | 如果某处异常或丑,回头我们调;不喜欢整套也可以 `git checkout master` 当无事发生。 | ||
| 43 | |||
| 44 | --- | ||
| 45 | |||
| 46 | ## 改了什么 | ||
| 47 | |||
| 48 | ### 新文件 | ||
| 49 | - **`theme.py`**(~280 行)— 设计系统的核心 | ||
| 50 | - `TOKENS_LIGHT` / `TOKENS_DARK`:24 个语义颜色 | ||
| 51 | - `SIZES`:圆角 / 间距 / 控件高度 / 字号 | ||
| 52 | - `FONT_STACK`:跨平台字体回退 | ||
| 53 | - `build_qss(mode)`:拼成完整 QSS 字符串 | ||
| 54 | - `ThemeManager(QObject)`:监听 `QGuiApplication.styleHints().colorSchemeChanged` 自动切换 | ||
| 55 | - `apply_theme(app)`:主入口调用 | ||
| 56 | - `get_color(token, fallback)`:QSS 命中不到的渲染层 API(如 `setForeground`)用 | ||
| 57 | |||
| 58 | - **`docs/superpowers/specs/2026-05-09-ui-redesign-apple-theme-design.md`** | ||
| 59 | - 完整设计文档:背景、决策表、令牌定义、组件映射、迁移策略、风险 | ||
| 60 | |||
| 61 | ### 修改的文件 | ||
| 62 | - **`image_generator.py`** — 删除 ~150 行 inline QSS / 装饰样式 | ||
| 63 | - `main()` Phase 4 加 `apply_theme(app)` | ||
| 64 | - `LoginDialog`:删 80 行 `apply_styles` QSS 块;用 `objectName=loginDialog/loginTitle` + property 命中全局 QSS;主按钮 `variant=primary`;error_label 用 `_set_error(status, text)` helper | ||
| 65 | - `ImageGeneratorWindow`:删 50 行 `apply_styles` QSS 块;65 处状态色改 `_set_status(status)` helper;"生成图片" 主按钮 `variant=primary`;缩略图删除按钮 `objectName=thumbDeleteBtn variant=danger`;预览图占位 `objectName=previewPlaceholder/previewImage` + `has_image` property | ||
| 66 | - `DragDropScrollArea`:3 处 inline QSS 改 `drag_state` property(idle/active) | ||
| 67 | - `StyleDesignerTab`:8 处 inline QSS 删除;类内补 `_set_status` helper(之前批量替换漏了) | ||
| 68 | - 25+ 个 caption label 用 `role="caption"` 命中统一字号 | ||
| 69 | |||
| 70 | - **`task_queue.py`** | ||
| 71 | - `TaskQueueWidget` 用 `objectName=taskQueueSidebar` | ||
| 72 | - 顶部新增 40px `objectName=sidebarHeader` — 修复"任务队列"飘到 tab 旁的视觉断层 | ||
| 73 | - 删 4 处 inline QSS | ||
| 74 | - QListWidgetItem 状态色用 `theme.get_color()` 读当前主题 token | ||
| 75 | |||
| 76 | - **`.gitignore`** | ||
| 77 | - 加入 `.superpowers/`、`config_no_db.json`、`ScreenShot_*.png` | ||
| 78 | |||
| 79 | ### 提交历史(按时间倒序) | ||
| 80 | |||
| 81 | ``` | ||
| 82 | 80a4cdf feat(ui): 迁移 StyleDesignerTab + TaskQueueWidget 样式 | ||
| 83 | de306ff feat(ui): 接入主入口 + 迁移 LoginDialog/ImageGeneratorWindow 样式 | ||
| 84 | 3bc29f7 feat(theme): 设计令牌生成器 + 主题管理器 | ||
| 85 | d717f7d docs: UI 重设计方案 — Apple 浅深双主题 | ||
| 86 | ``` | ||
| 87 | |||
| 88 | 每个 commit 颗粒度小,单点回退方便:`git revert <sha>`。 | ||
| 89 | |||
| 90 | --- | ||
| 91 | |||
| 92 | ## 设计决策回顾(来自前一晚 brainstorming) | ||
| 93 | |||
| 94 | | 决策 | 你的选择 | 你的理由 | | ||
| 95 | |---|---|---| | ||
| 96 | | 设计方向 | Apple 高级感浅色 | 统一 macOS 与 Windows 设计语言 | | ||
| 97 | | 主色调 | Apple Blue `#0071E3` / Dark `#0A84FF` | 跟品牌元素颜色契合 | | ||
| 98 | | 范围 | 外观 + 关键 layout 修复 | 不只是换皮,趁机解决 sidebar / 按钮分级 | | ||
| 99 | | 深浅模式 | 完整双套主题 | macOS 跟随时间自动切换,单色主题转换会巨丑 | | ||
| 100 | | 二级 dialog | 一并重做 | 避免登录页 / 主窗口风格断裂 | | ||
| 101 | | 实现路径 | Python 设计令牌生成器 | 单一真相源比双 .qss 文件不容易飘 | | ||
| 102 | |||
| 103 | --- | ||
| 104 | |||
| 105 | ## 已知 / 未做 | ||
| 106 | |||
| 107 | ### 设计文档明确不做的(YAGNI) | ||
| 108 | - 没引第三方 UI 库(qfluentwidgets 等) | ||
| 109 | - 没动业务逻辑(生成 / 队列 / 历史功能完全没改) | ||
| 110 | - 没改信息架构(tab 顺序、字段顺序都没变) | ||
| 111 | - 没动数据库 / 配置 | ||
| 112 | - 没碰 Mac 输入框可见性 hack(`line 1292/1356` 的 2 处 inline 占位符样式保留 — 设计文档里明确允许) | ||
| 113 | |||
| 114 | ### 已知小风险 | ||
| 115 | - Qt QSS 不支持 `box-shadow`,"卡片浮起感"用淡边框模拟,不及 web 真投影 | ||
| 116 | - macOS Big Sur 之前的版本可能不响应 `colorSchemeChanged`(项目实际部署不涉及,无影响) | ||
| 117 | - 全局 QSS 改变后 `QMessageBox` 系统对话框按钮排布可能受 Qt 默认样式影响 — 实测正常,备注观察 | ||
| 118 | |||
| 119 | ### 顺手提交的非 UI 工作 | ||
| 120 | 我开分支前发现你有几个 untracked 文件(`openspec/changes/add-image-history`、`add-logging-system`、`refactor-history-browsing`、`test_config_loading.py`),提交时 `git add -A` 把这些一并带进了第二个 commit(`de306ff`)。这不是 UI 工作的一部分,但已经在分支里。如果你想把它们单独提到 master,可以从这个分支 cherry-pick 对应文件路径。 | ||
| 121 | |||
| 122 | --- | ||
| 123 | |||
| 124 | ## 推送状态 | ||
| 125 | |||
| 126 | ✅ 分支已 push 到 `origin/feat/ui-redesign-apple-theme`(GitLab) | ||
| 127 | ✅ master 完全没动 | ||
| 128 | ✅ 设计文档在 `docs/superpowers/specs/2026-05-09-ui-redesign-apple-theme-design.md` | ||
| 129 | ✅ memory 已记录用户偏好(设计方向、品牌色逻辑、跨平台一致性诉求) | ||
| 130 | |||
| 131 | --- | ||
| 132 | |||
| 133 | ## 你今天上班可以做的事 | ||
| 134 | |||
| 135 | 1. **看一眼**:`git checkout feat/ui-redesign-apple-theme && python image_generator.py` —— 5 分钟 | ||
| 136 | 2. **走一遍验收清单**(上面 8 项)—— 10 分钟 | ||
| 137 | 3. **决定下一步**: | ||
| 138 | - 喜欢 → 我们 PR 合到 master | ||
| 139 | - 部分要调(某个色/某个 layout)→ 留 review 评论,我改 | ||
| 140 | - 整体不对 → `git checkout master`,当无事发生 | ||
| 141 | |||
| 142 | 如果觉得满意,下一步可以考虑: | ||
| 143 | - 给"生成进度"加个真实的 QProgressBar 替代纯文字状态(QSS 已就位) | ||
| 144 | - 给 dark mode 状态指示器加个右上角小开关(手动锁定模式)— `theme.ThemeManager.force_mode()` 已经准备好 | ||
| 145 | |||
| 146 | --- | ||
| 147 | |||
| 148 | 睡个好觉。明天聊。 | ||
| 149 | |||
| 150 | — Claude |
-
Please register or sign in to post a comment