Files
FruitServer/docs/plans/2026-10-19-K24.md

4.4 KiB
Raw Permalink Blame History

K24 计划:客户端 UI 对齐设计稿

日期:2026-10-19 客户端基线:ReelShort/develop = b1c69e2 文档基线:FruitServer/develop = 93b2299 分支:feature/flutter-k24-design-system

一、范围

本批只做设计系统、3 Tab 底部导航、首页沉浸层、发现页:

  • 设计 token:Obsidian Flare 色板、字体、间距/圆角、玻璃面板。
  • 底部导航:Home / Discover / Me 三项;My List 不再独立成 Tab,内容并入 Me 页。
  • 首页:保留 PlayerPage(homeMode: true) 播放链路,只替换叠加层与信息卡。
  • 发现页:品牌行、搜索、分类 chips、Continue Watching、4 个快捷入口、2 列 Trending。

不做:详情页、播放器、我的页、登录页的视觉重做(K25/K26);后端、Web、specs、main。

二、设计口径

权威来源:docs/design/README.md + screens/01-home.html + screens/02-discover.html。 不采用 DESIGN.md 顶部 YAML 的 #ffb4a5/#cdbdff。

语义 值
background / ink / bar #0B0C10
card #16181F
surface-elevated / raised #1D1E28
primary / blue #FF5B3D
pressed / bluePressed #FF4321
secondary / lavender / blueSoft #9278EA
gold #FBBF24
success #34D399
on-surface #FFFFFF / #E3E2E8
muted #A1A1AA
subtle #71717A
border rgba(255,255,255,0.08)

字体:Outfit(标题)、Plus Jakarta Sans(正文),OFL TTF 本地打包,不运行时联网。 下载失败时保留系统字体,并在回执与 PROGRESS 标注未完成项。

三、TDD 顺序

  1. 设计 token / 主题:先更新 test/theme/app_theme_test.dart 期望值与新增 token 断言,再改 app_colors.dart、app_theme.dart、app_dimens.dart。
  2. GlassPanel:先写组件测试(blur、渐变、描边、圆角),再实现 glass_panel.dart。
  3. 3 Tab:先改导航测试为 tab-home/tab-discover/tab-my,覆盖选中态、映射、沉浸隐藏; 再改 app_bottom_nav.dart 与 home_view.dart。
  4. 首页:先用现有 Player 测试保证播放/进度/收藏不回归,再新增首页结构断言 (剧名、HOT、右侧互动栏、底部玻璃卡、Follow Series、Episodes)。
  5. 发现页:先写搜索过滤、2 列网格、Continue Watching 隐藏/显示测试,再改 discover_view.dart / discover_logic.dart / home_drama_grid.dart。
  6. 回归:更新 4 Tab 与轮播挂载相关断言,保留播放、进度、收藏、举报等行为测试。

四、影响文件

  • lib/core/theme/app_colors.dart
  • lib/core/theme/app_theme.dart
  • lib/core/theme/app_dimens.dart
  • lib/core/widgets/glass_panel.dart(新增)
  • lib/core/widgets/app_bottom_nav.dart
  • lib/pages/home/home_view.dart
  • lib/pages/home/home_logic.dart
  • lib/pages/discover/discover_view.dart
  • lib/pages/discover/discover_logic.dart
  • lib/pages/discover/widgets/home_drama_grid.dart
  • lib/pages/player/player_view.dart(仅 homeMode 叠加层)
  • lib/pages/mine/mine_view.dart(仅把 My List 区块并入 Me)
  • pubspec.yaml、assets/fonts/*
  • 相关 test/**

五、数据缺口与降级

设计字段 现有数据 处理
评分 Drama 无评分字段 隐藏,不伪造
完结状态 无完结字段 隐藏
榜单名次 无字段 用 isHot + viewCount 排序展示,不编名次
VIP 徽章 无 VIP 字段;Episode.locked 仅集级 列表不显示 VIP 徽章
Free 徽章 freeEpisodes 仅详情接口 有值才显示
点赞/评论数 互动接口无剧级计数 只显示图标或文案,不编数字
Continue Watching 集数/剩余时长 WatchProgress 有位置/时长,无集号 有记录才显示,集号缺失时省略

六、风险

  • 首页叠加层改动可能影响沉浸模式、PiP、下载入口与既有 tooltip;通过保留原有行为入口并跑 test/widget_test.dart、test/home/**、test/player/** 控制风险。
  • 3 Tab 合并会触碰多个导航测试;只调整 Tab 数量/Key 断言,不改播放与收藏断言。
  • 新字体增加安装包体积;只打包 Regular/SemiBold/Bold 必要字重。
  • 发现页数据源仍用 CategoryController.visibleDramas,不新增接口。

七、门禁

flutter pub get
dart analyze lib test
flutter test
flutter build apk --debug

提交作者/提交者:Zhou Weidong <502333560@qq.com>。