From 810d9fc2dc02c095e41ef6fbb7d4c2222cfd2d39 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Mon, 19 Oct 2026 10:14:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=E4=B8=8B=E5=8F=91=20K20=20?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=A7=86=E8=A7=89=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/INBOX.md | 89 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 7361912..5d10bcc 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -20,6 +20,95 @@ --- +## [待处理] 2026-10-19 | K20 客户端视觉统一(辣椒红主题) + +**用户指令(2026-10-19)**:「保留辣椒红,先做 K20 视觉统一」。 +> 只改客户端 `ReelShort` 的视觉与布局;不改业务逻辑、接口调用、后端、Web、specs、main。 +> 主题口径已拍板:**保留现有辣椒红暖色**(`AppColors.blue = #C4322A`),不恢复克莱因蓝。 + +### 一、目标 + +消除跨页面视觉不一致与明显不合理的紧凑布局,统一颜色、字号、间距、圆角、导航、卡片、按钮与进度条; +不改任何接口行为,不改既有测试断言。 + +### 二、统一 token(新增 `lib/core/theme/app_dimens.dart`) + +- 页面左右边距:`16`(详情页 24 → 16;Auth 20 → 16)。 +- 卡片:外层圆角 `16`、内边距 `16`;列表内嵌小块圆角 `12`、内边距 `12`;胶囊圆角 `20`。 +- 字号档位:caption `12`、body `14`、列表标题 `15`、区块标题 `16`、页面标题 `20`(w800); + 导航标签 `11`。**禁止再出现 9.5 / 10px 的业务文案**。 +- 主按钮最小高度 `48`(整页主操作 `52`);点击区不小于 `44×44`。 +- 主色只用 `AppColors`;新增 `AppColors.favorite`(收藏红心)如需保留粉色。 + +### 三、改造项(按文件) + +1. **底部导航合一**:新增 `lib/core/widgets/app_bottom_nav.dart`,参数化 tab(图标/文案/选中); + 高 `64`、图标 `22`、标签 `11`、选中态用主色胶囊(以现有 `home_view.dart` 为基准)。 + 替换 `home_view.dart`、`discover_view.dart`、`mine_view.dart` 三处导航; + `player_view.dart` 的 `_fallbackNav` 若保留也必须复用该组件。**保留现有 Key**(`tab-home` 等)与文案。 +2. **账号入口卡重做**:`account_entry_card.dart` 高度 48 → `64`,图标 `16` → `18`,标签 `9.5` → `11`, + 允许 2 行;四个入口点击区高度 ≥44;保留 `mine-account-card`、`mine-account-profile/devices/export/deactivate` 五个 Key。 +3. **字号下限**:把 `home_drama_grid.dart:146`、`mine_view.dart:144/648/912`、`discover_view.dart:369`、 + `home_view.dart:364`、`comment_tile.dart:114`、`watch_records_page.dart:282/296`、 + `notices_page.dart:244/260`、`mine_view.dart:591`、`account_devices_page.dart:204` 提升到 ≥12(导航标签 11)。 +4. **卡片/间距收敛**:`downloads_page.dart:305`(10)、`library_drama_tile.dart:26`、 + `notices_page.dart:217`、`watch_records_page.dart:230`、`downloads_page.dart:200`、 + `mine_view.dart:614/802` 统一到 12;`home_drama_grid.dart:104/109`、`mine_view.dart:377`、 + `account_devices_page.dart:115`、`account_deactivate_page.dart:93` 统一到 16; + 卡片内边距 9/14 收敛为 12/16。`drama_detail_view.dart:147/233` 的 24 → 16。 +5. **颜色收敛**:替换 `downloads_page.dart:201/222/224/370`、`watch_records_page.dart:295`、 + `mine_view.dart:143/590/637/717/743/828/835`、`favorites_page.dart:117`、 + `home_quick_drawer.dart:54/77/118/262`、`player_view.dart:792/872/879` 中的直接 `Color(0x...)` + 为最接近的 `AppColors` 常量(必要时新增 `favorite`);`account_devices_page.dart:196-203` 的 + `scheme.tertiary` 改 `AppColors.gold` 或 `blueSoft`;`drama_detail_view.dart:169` 的 + `onSurfaceVariant` 改 `AppColors.muted`。 +6. **进度条统一**:详情续看 `drama_detail_view.dart:366-373`、观看记录 `watch_records_page.dart:267-272`、 + 下载 `downloads_page.dart:357-362` 统一为高 4、圆角 4、前景 `AppColors.blueSoft`、背景 `Colors.white24`; + Player 主拖动条保留金色。 +7. **按钮与对比度**:`app_theme.dart` 增加 `filledButtonTheme.minimumSize = Size(0, 48)` 与 + `outlinedButtonTheme`(深色前景用 `AppColors.blueSoft`);`mine_view.dart:390-401` 去掉 + `VisualDensity.compact`;`empty_state.dart:150-158` 的重试色由 `scheme.primary` 改 `AppColors.blueSoft`。 +8. **标题层级**:页面标题统一 20/w800,区块 16/w700,列表 15/w600-700; + `drama_detail_view.dart:159-164` 的 `headlineLarge` 显式改 24。 +9. **深色唯一口径**:`app.dart:221-223` 改 `themeMode: ThemeMode.dark`;移除页面级 + `Theme(data: AppTheme.dark())` 的重复包裹(保留根主题),确保日期选择器、弹窗也是深色。 + 若短期内删除页面级包裹风险大,可保留包裹,但 `themeMode` 必须为 dark。 +10. **状态栏与安全区**:根 Scaffold 统一 `AnnotatedRegion(light)`, + `appBarTheme.systemOverlayStyle = light`、`systemNavigationBarColor = AppColors.bar`; + `favorites_page.dart:102`、`watch_records_page.dart:118`、`notices_page.dart:118`、 + `downloads_page.dart:96`、`account_profile_page.dart:108`、`account_devices_page.dart:93`、 + `account_export_page.dart:89`、`account_deactivate_page.dart:73` 的底部 padding + 增加 `MediaQuery.paddingOf(context).bottom`(或 `SafeArea(top: false)`)。 +11. **详情页返回与封面压暗**:`drama_detail_view.dart:80-107` 的加载/失败分支补带返回按钮的 AppBar; + `SliverAppBar` 封面顶部加黑色渐变,保证返回/更多图标在浅色封面上可读。 +12. **选中态可见性**:`player_view.dart:834-845` 点赞/收藏选中时改实心图标 + (`Icons.favorite` / `Icons.bookmark`);`discover_view.dart:262-296` 与 + `mine_view.dart:537-564` 的选中项补 `Semantics(selected: true)`。 +13. **点击区补足**:`discover_view.dart` 的 `_HeaderPill`(403-447)、`_LoginButton`(449-469) + 最小高度 44;分类 Chip(262-296)点击区 44(视觉高度可保持 36,用透明 padding 扩大)。 +14. **列表占位对齐**:`watch_records_page.dart:208-222` 占位高度与真实卡片一致(114),并复用相同 padding。 + +### 四、明确不做(留给 K21) + +搜索 UI、Android 返回键行为、播放器切集票据失败黑屏、登录后继续原操作、下拉刷新、注销状态闭环、 +时长/日期格式统一、语言上送后端。**本批不碰这些逻辑**。 + +### 五、约束与门禁 + +- 不改既有测试断言;视觉改动导致测试失败时改实现,不改测试(保留所有现有 Key 与文案)。 +- `dart analyze lib test` 零告警;`flutter test` 全过;`flutter build apk --debug` 通过。 +- 代码规模红线、文档注释、`// Author: fruit.com.cn` 与既有规范不变。 +- 真机验收由用户执行,Codex 不做设备侧取证。 + +### 六、Git 与回执 + +- 从干净 `develop`(基线 `42ce1d1`)拉 `feature/flutter-k20-visual`,小步提交,完成后 + `--no-ff` 合并回 develop 并 push;不动 main;作者统一 `Zhou Weidong <502333560@qq.com>`。 +- 计划文档 `FruitServer/docs/plans/2026-10-19-K20.md`;留痕写 `PROGRESS.md` 并单独提交 FruitServer develop。 +- 回执:改动清单、统一后的 token 值、测试条数与门禁原始输出、真机验收步骤(逐屏对照色/字/间距)。 + +--- + ## [已处理·待用户验收] 2026-10-19 | K19 客户端账号中心:资料 / 设备 / 数据导出 / 注销 **用户指令(2026-10-19)**:「先写 K19 任务书并派单」。