# 阶段总结:UI 规范化与按钮/头部统一 > **日期**:2026-02-07 > **范围**:全 App UI 一致性审计与修复 --- ## 一、书架页面优化 ### 改动 - **书架高度**:56% → 64% 屏幕高 - **布局**:`padEnds: true` → `false`,整体左移,右侧虚线框文字完全露出 - **解锁新书架动画**:从两组文字改为一组,丝滑从 peek 位置滑到中心 - 锁图标大小 `lerpDouble(20, 32, t)` 连续插值 - 文字从竖排变横排 - **创作新故事按钮**:上移,离底部菜单栏更远 --- ## 二、头部样式统一(12 个文件) ### 统一规范 | 属性 | 旧值(不一致) | 新值(统一) | |------|------|------| | 返回按钮尺寸 | 44×44 | **40×40** | | 返回按钮圆角 | 14/20/22 | **12** | | 返回按钮背景透明度 | 0.25/0.45 | **0.6** | | 返回按钮边框 | 有/无 | **无** | | 图标类型 | arrow_back | **arrow_back_ios_new** | | 图标大小 | 20 | **18** | | 标题字号 | 18/20 | **17** | | 标题字重 | w700 | **w600** | | 标题颜色 | #374151 | **#1F2937** | ### 涉及文件 - `design_tokens.dart` — 公共变量调整 - 7 个 profile 页面 — notification, settings_sub, guide_feeding, help, agent_manage, profile_info, settings - 3 个硬编码页面 — music_creation, story_detail, profile/settings - `settings_sub_pages.dart` — 新增 AnimatedGradientBackground --- ## 三、主按钮统一为 GradientButton 组件 ### 统一规范 | 属性 | 值 | |------|------| | 组件 | `GradientButton`(统一入口) | | 光泽效果 | 顶部白色渐变 15% → 透明 | | 点击反馈 | InkWell 涟漪 | | 字体 | DM Sans, 17px, w600, 白色 | | 圆角 | height/2(胶囊形) | ### 改动文件 | 文件 | 按钮 | 改动 | |------|------|------| | `device_control_page.dart` | + 创作新故事 | 手写 Container → GradientButton | | `bluetooth_page.dart` | 连接设备 | 手写 Container → GradientButton | | `music_creation_page.dart` | 生成音乐 🎵 | 手写 → GradientButton | | `music_creation_page.dart` | 立即试听 | 手写 → GradientButton | | `glass_dialog.dart` | 确定(单按钮) | 手写 → GradientButton | | `glass_dialog.dart` | 确定(双按钮) | 手写 → GradientButton | | `login_page.dart` | 同意并继续 | 手写 → GradientButton | | `login_page.dart` | 立即登录 | 手写 → GradientButton | | `gradient_button.dart` | 默认高度 | 50 → 48 | | `gradient_button.dart` | plush 字号 | 18/w700 → 17/w600(统一) | | `story_detail_page.dart` | 所有按钮高度 | 46 → 48 | | `story_detail_page.dart` | 次级按钮圆角 | 23/25 → 24 | ### 保持特殊实现的按钮 - `home_page.dart` — "立即连接":有 shine 扫光动画,但已包含光泽+涟漪+正确字体 ### 不需要改的小型按钮 - profile_info 的"保存"/"确定" — 头部/picker 内小按钮 - help_page 的"查看 →" — 卡片内导航小按钮 --- ## 四、全局 Toast 系统 - 提取 `ios_toast.dart` — iOS 风格毛玻璃 toast - 全 App 替换 SnackBar 为 `AppToast.show()` - 支持 `isError` 参数区分成功/错误样式 --- ## 五、其他修复 - WiFi 配置页返回白屏 → 改为 `context.go('/home')` - 产品选择页卡片渐隐效果 → per-card Opacity 方案 - C 盘清理 → 释放 ~9.5GB + AVD 迁移至 D 盘