3.4 KiB
3.4 KiB
2026-10-17 K8 登录页视觉重设计
一、目标与边界
将现有登录页从表单堆叠改为深色、克莱因蓝品牌的单页视觉,保留 K6 已完成的 AuthLogic、校验、接口、登录/注册流程、autofill、键盘流转、busy 状态和 Haptics。
- 客户端分支:
feature/flutter-k8-auth-visual,基线develop 6cc5bfc。 - 文档分支:
docs/k8-auth-visual,FruitServer 只改docs/plans/。 - 不改后端、Web、specs、接口契约、其他页面或业务逻辑。
- 不新增图片、字体、第三方依赖;品牌图形使用 Material Icons。
- 不跑真机,设备侧视觉、键盘与小屏验收由用户执行。
二、视觉与交互实现
- 页面背景使用
AppColors.ink,顶部叠加克莱因蓝渐变光晕,颜色透明度不超过 0.18,并忽略指针事件。 - 品牌区使用 48px 克莱因蓝圆角方块、白色剧集图标、App 名和现有
authBrandTagline。 - 表单放入 20px 圆角、1px
outlineVariant边框、20px 内边距的AppColors.card卡片。 - 输入框使用 52px 高、14px 圆角、
AppColors.bar填充,带邮箱/锁前缀图标; 聚焦时显示 1.5px 主色边框并高亮图标;密码显隐按钮保留。 - 主按钮全宽 52px、26px 圆角、
AppColors.blue背景、白色 16/w700 文字, pressed 态使用bluePressed,loading 为 18px 白色环,busy 时输入、切换与 提交均禁用。 - 登录/注册改为双段 pill,实际可见标签为
signIn/signUp;点击调用现有toggleMode()。保留既有auth-switch-mode兼容入口,避免破坏既有测试。 - 错误提示使用红色 10% 透明背景、12px 圆角、图标和主题 error 色文字的胶囊。
- 首帧使用 220ms 的
TweenAnimationBuilder完成淡入和上滑。 - 保留
auth-scroll、auth-email、auth-password;新增auth-brand、auth-card、auth-mode-sign-in、auth-mode-sign-up、auth-submit、auth-error-capsule等稳定 Key。
三、影响文件
ReelShort/lib/pages/auth/auth_view.dartReelShort/test/auth/auth_visual_test.dart(新增)ReelShort/test/auth/auth_page_test.dart(既有用例保持不变)FruitServer/docs/plans/2026-10-17-K8.mdFruitServer/docs/plans/PROGRESS.mdFruitServer/docs/plans/INBOX.md(完成后标记 K8 已处理)
四、TDD 与门禁
- 先新增视觉测试并运行,确认分段控件、品牌、错误胶囊和尺寸断言红灯。
- 实现登录页视觉后,定向 auth 测试绿灯。
- 运行
dart analyze lib test零告警。 - 运行
flutter test全过。 - 构建前确认没有并发
flutter run/build;运行flutter build apk --debug。 - 完成后
merge --no-ff回客户端develop并 push;FruitServer 文档同样 合并推送。提交作者与提交者统一为Zhou Weidong <502333560@qq.com>。
五、风险与待确认
- 旧测试按文字链接和
auth-switch-modeTextButton 检查交互;本次通过保留 兼容入口满足旧用例,同时可见交互必须由新 pill 分段控件完成。 - 320px 小屏和键盘弹出时,卡片、错误胶囊及按钮需保持可滚动且不溢出。
- 当前检测到 Android
flutter run会话;构建门禁前必须复查,若仍占用build/则等待其结束,不能并发构建。 - specs 无登录页设计稿,颜色与尺寸以本 INBOX 条目为准,无需新增契约。