# 2026-10-19 K20 客户端视觉统一 ## 基线 - ReelShort `develop`: `42ce1d1` - FruitServer `develop`: `810d9fc` - 只改 ReelShort 视觉与布局;不改业务逻辑、接口、后端、Web、specs、main。 - 保留辣椒红 `AppColors.blue = #C4322A`。 ## 统一 Token 新增 `lib/core/theme/app_dimens.dart`: | Token | 值 | | --- | --- | | 页面左右边距 | 16 | | 卡片圆角 / 内边距 | 16 / 16 | | 内嵌块圆角 / 内边距 | 12 / 12 | | 胶囊圆角 | 20 | | caption / body / list / section / page | 12 / 14 / 15 / 16 / 20 | | 导航标签 | 11 | | 详情主标题 | 24 | | 主按钮高度 | 48;整页主操作 52 | | 点击区 | 44 × 44 | | 导航高度 / 图标 | 64 / 22 | | 进度条高度 / 圆角 | 4 / 4 | | 账号卡高度 / 图标 / 标签 | 64 / 18 / 11 | | 观看占位高度 | 114 | ## 改造顺序 1. 加 token 与主题:`AppDimens`、`AppColors.favorite`、深色唯一口径、 按钮最小高度、OutlinedButton 主题、AppBar/状态栏样式。 2. 新增 `AppBottomNav` / `AppBottomNavItem`,替换 home/discover/mine/player fallback。 3. 调整账号入口卡为 64 高、18 图标、11 标签、44 点击区,并回归 K19 首屏测试。 4. 收敛字号下限:业务文案 ≥12,导航 11;清理 9.5/10。 5. 收敛卡片圆角与间距:页面 16、卡片 16/12、区块 16/12。 6. 替换任务书列出的硬编码颜色;收藏红心使用 `AppColors.favorite`。 7. 统一详情、记录、下载进度条为 4 高、4 圆角、blueSoft/white24;播放器拖动条保持金色。 8. 统一页面/区块/列表标题层级与按钮高度,移除 mine 按钮 VisualDensity.compact。 9. 详情加载/失败分支补返回 AppBar,封面顶部加黑色渐变,详情边距 24→16。 10. 点赞/收藏选中态改实心图标;分类和 my tabs 补 selected 语义。 11. HeaderPill / LoginButton / 分类 Chip 点击区补到 44。 12. 列表页底部安全区补齐;观看记录占位高度 114,与真实卡片 padding 一致。 ## 测试与门禁 - 新增 `AppDimens` token 测试与 `AppBottomNav` 组件测试。 - 不修改既有测试断言;视觉布局变化导致测试失败时改实现。 - `dart analyze lib test` - `flutter test` - `flutter build apk --debug` ## 风险与边界 - 账号卡升高到 64 可能重新挤压“我的”页首屏;必须保持 K19 语言设置和观看历史入口测试通过。 - 保留页面级深色 Theme 包装以降低大范围回归风险,但根 `themeMode` 必须固定 `dark`。 - 不碰 K21 范围:搜索、Android 返回键、播放器切票黑屏、登录后续操作、下拉刷新、 注销状态闭环、日期/时长格式、语言上送。 - 真机验收由用户执行,本批不提供设备侧截图或日志。