docs(plans): 记录 K8 登录页视觉实施回执

This commit is contained in:
Zhou Weidong committed 2026-10-17 17:15:43 +08:00
1 parent e7c11c3163
commit b5aed111a0
2 files changed
+178 -1

No files matched your search

+156
View File
@@ -2199,3 +2199,159 @@ $ flutter test
预期:轮播自动切到第 2 张;手动拖动后仍可从当前页继续自动轮播。
设备侧截图、日志与最终验收结论由用户执行。
---
## 2026-10-17 K8 登录页视觉重设计
### 23.1 范围、分支与计划
叙述:按 INBOX K8 条目重设计登录页视觉,不改 AuthLogic、校验、AuthController、
接口、登录/注册流程或其他页面。客户端从 `develop 6cc5bfc` 创建
`feature/flutter-k8-auth-visual`;FruitServer 从 K8 任务书提交 `c33e6cd`
创建 `docs/k8-auth-visual`,只改 `docs/plans/`。
开工前先写并提交计划:
```text
e7c11c3 docs(plans): 增加 K8 登录页视觉实施计划
```
实施文件:
- `lib/pages/auth/auth_view.dart`
- `lib/pages/auth/auth_widgets.dart`
- `lib/pages/auth/auth_form_widgets.dart`
- `test/auth/auth_visual_test.dart`
`auth_view.dart` 初次实现达到 654 行,触发项目单文件 500 行红线。随后按页面
组合、卡片/分段控件、表单控件与品牌组件拆分,最终行数:
```text
259 lib/pages/auth/auth_view.dart
183 lib/pages/auth/auth_widgets.dart
363 lib/pages/auth/auth_form_widgets.dart
311 test/auth/auth_visual_test.dart
```
解读:所有新增 Dart 文件均低于 500 行,页面状态类低于 300 行。
### 23.2 先红:视觉测试
叙述:先新增 `test/auth/auth_visual_test.dart`,未改既有
`test/auth/auth_page_test.dart`。
```text
$ flutter test test/auth/auth_visual_test.dart
Expected: exactly one matching candidate
Actual: Found 0 widgets with key [<'auth-brand'>]: []
Bad state: No element
The finder "Found 0 widgets with key [<'auth-mode-sign-up'>]: []"
could not find any matching widgets.
Expected: exactly one matching candidate
Actual: Found 0 widgets with key [<'auth-error-capsule'>]: []
00:01 +2 -4: Some tests failed.
```
解读:品牌区、220ms 入场动画、pill 分段控件和错误胶囊尚不存在,红灯与 K8
新增视觉范围一致;既有功能型交互仍可运行。
### 23.3 绿灯:视觉与交互实现
实现后的新增与既有 auth 用例:
```text
$ flutter test test/auth/auth_visual_test.dart test/auth/auth_page_test.dart
00:01 +15: All tests passed!
```
覆盖内容:
- 深色品牌页、`AppColors.ink`、顶部克莱因蓝渐变透明度不超过 0.18。
- 48px 蓝色圆角品牌方块、App 名和印尼市场 tagline。
- `AppColors.card`、20px 圆角、1px `outlineVariant` 边框、20px 内边距。
- 52px 输入框、14px 圆角、`AppColors.bar` 填充、邮箱/锁前缀图标和聚焦
1.5px 主色边框。
- 52px 主按钮、26px 圆角、`AppColors.blue`/`bluePressed`、16/w700
文字与 18px loading。
- pill 登录/注册分段控件、选中主色底、切换调用现有 `toggleMode()`。
- 220ms 淡入上滑、错误浅红胶囊、44pt 以上点击区域。
- 邮箱→密码焦点流转、密码显隐、busy 禁用、Haptics 和 autofill 均保留。
既有 `auth-switch-mode` Key 与旧测试所需文本兼容入口保留,但用户可见切换控件
已改为 pill 分段;旧用例没有删改。
### 23.4 全量门禁与构建
构建前检查并发进程:
```text
$ ps -axo pid=,etime=,args= | rg 'flutter_tools.snapshot (run|build)|xcodebuild|gradlew'
```
输出仅有当前检查命令自身,没有 Flutter run/build 进程后开始门禁。
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
```
```text
$ flutter test
00:19 +292 ~1: All tests passed!
```
解读:292 项通过,1 项联调测试因客户端接口服务未启动按设计跳过;输出中的
`[WatchRecordsController]` 堆栈来自既有故意注入失败的测试。
```text
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
38.2s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
门禁执行期间 Flutter 工具自动改写 `pubspec.lock` 的包镜像和新版 SDK 传递依赖;
该文件不属于 K8 范围,已单独还原,未进入提交。
### 23.5 Git
```text
45c3c64 feat(flutter): 重设计登录页视觉
99f64ab merge: 合并 K8 登录页视觉重设计
6cc5bfc..99f64ab develop -> develop
```
修复提交与合并提交 author/committer 均为
`Zhou Weidong <502333560@qq.com>`。
### 23.6 用户真机验证步骤与预期
以下设备侧取证由用户执行,Codex 未跑真机。
1. 拉取最新客户端 `develop`,冷启动并进入登录页。
预期:全屏深色背景,顶部只有克制的蓝色光晕,品牌方块、App 名和印尼
tagline 清晰可见。
2. 观察表单卡片和输入框。
预期:卡片为深色圆角面板;输入框高 52、圆角 14,邮箱和锁图标存在。
3. 点击邮箱输入框并切换到密码框。
预期:聚焦输入框出现 1.5px 克莱因蓝边框,图标高亮;键盘 Next 会跳到密码,
Done 会提交。
4. 点击登录/注册 pill 两段。
预期:选中段蓝底白字,标题、副标题和按钮文案同步切换。
5. 点击密码右侧眼睛按钮。
预期:密码明文/密文切换,按钮点击区域不小于 44pt。
6. 输入错误邮箱或不安全密码并提交。
预期:卡片内出现浅红胶囊错误提示,文案与当前语言一致。
7. 在 iPhone SE 尺寸打开键盘并滚动。
预期:无横向溢出,提交按钮可滚动到键盘上方并点击。
8. 登录/注册提交时观察按钮与触觉。
预期:按钮显示 18px 白色 loading 环,输入与分段切换禁用;设备支持触觉时
有一次 light impact。
设备侧截图、日志与最终视觉验收结论由用户执行。