1059 lines
47 KiB
Markdown
1059 lines
47 KiB
Markdown
# 老妈厨房 iOS 26 UI 设计方案
|
||
|
||
> 版本: 1.1 | 日期: 2026-04-09 | 设计语言: Liquid Glass (iOS 26)
|
||
>
|
||
> 本文档是项目 UI 改造的完整规范,任何开发者(含 AI Coder)必须按此方案执行。
|
||
> 修改 UI 前必须先阅读本文档,确保风格统一。
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
1. [设计语言:Liquid Glass 核心特征](#一设计语言liquid-glass-核心特征--flutter-实现)
|
||
2. [设计令牌:颜色/圆角/间距/毛玻璃/字体](#二设计令牌-design-tokens)
|
||
3. [页面架构:4Tab 新方案 + 全局布局](#三页面架构总览)
|
||
4. [页面布局:7个页面纯文本演示 + 操作逻辑](#四各页面纯文本布局演示)
|
||
5. [导航流程图:页面间跳转关系](#五页面导航流程图)
|
||
6. [组件规范:6个 Liquid Glass 组件](#六liquid-glass-组件规范)
|
||
7. [改进对比:现有问题 vs iOS 26 改进](#七关键改进点对比现有设计)
|
||
8. [暗色模式:暗色参数适配](#八暗色模式适配)
|
||
9. [响应式:手机/平板/横屏适配](#九响应式适配)
|
||
10. [实施计划:4阶段改造路线](#十实施计划)
|
||
|
||
---
|
||
|
||
## 一、设计语言:Liquid Glass 核心特征 + Flutter 实现
|
||
|
||
iOS 26 的 **Liquid Glass(液态玻璃)** 是苹果自 iOS 7 扁平化以来最大的视觉变革,
|
||
灵感源自 Vision Pro 的空间交互界面。
|
||
|
||
### 1.1 五大核心特征
|
||
|
||
| # | 特征 | 说明 | Flutter 实现方式 |
|
||
|---|------|------|-----------------|
|
||
| 1 | **半透明毛玻璃** | 界面元素具备玻璃质感,内容透过可见 | `BackdropFilter` + `ImageFilter.blur(sigmaX: 20, sigmaY: 20)` |
|
||
| 2 | **动态光效/折射** | 元素随交互呈现光泽变化 | 渐变边框 + `Shimmer` 动画 |
|
||
| 3 | **深度层次感** | 多层叠加创造空间感 | 多层 `Container` + `BoxShadow` |
|
||
| 4 | **圆角同心设计** | 控件圆角匹配硬件圆角,嵌套时递减 | 统一 `BorderRadius` 体系(见设计令牌) |
|
||
| 5 | **内容聚焦** | 透明控件悬浮于内容之上,内容为王 | `Stack` + 半透明 `Positioned` |
|
||
|
||
### 1.2 与现有代码的映射
|
||
|
||
```
|
||
现有代码 → iOS 26 改造方向
|
||
─────────────────────────────────────────────────────
|
||
TapLiquidGlassNavigation (已有) → 保留,升级为 GlassNavBar
|
||
FloatingCupertinoTabBar (已有) → 废弃,统一用 GlassNavBar
|
||
BottomBarStyle.edge/floating (已有) → 废弃 edge,统一 floating
|
||
ThemeService.primaryColor (#2196F3) → 改为 iOS 蓝 #007AFF
|
||
ThemeService.secondaryColor (#FF9800) → 改为 iOS 橙 #FF9500
|
||
```
|
||
|
||
### 1.3 设计原则
|
||
|
||
```
|
||
1. 内容为王 — 透明控件不遮挡内容,让菜谱图片和文字成为主角
|
||
2. 一致性 — 所有页面使用统一的毛玻璃参数、圆角、间距
|
||
3. 深度感 — 通过多层叠加和投影创造空间层次
|
||
4. 流畅性 — 所有状态切换使用 250ms-350ms 的弹性动画
|
||
5. 可达性 — 触摸目标不小于 44px,文字不小于 11px
|
||
```
|
||
|
||
---
|
||
|
||
## 二、设计令牌 (Design Tokens)
|
||
|
||
> 所有页面必须基于此令牌,禁止硬编码颜色、间距、圆角。
|
||
> 若令牌中无所需值,需先在此处添加再使用。
|
||
|
||
### 2.1 颜色体系
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ 主色系 │
|
||
│ primary: #007AFF (iOS 系统蓝) │
|
||
│ primaryLight: rgba(0,122,255,0.1) (浅蓝背景) │
|
||
│ secondary: #FF9500 (iOS 系统橙) │
|
||
│ │
|
||
│ 背景系 │
|
||
│ background: #F2F2F7 (iOS 浅灰底) │
|
||
│ card: #FFFFFF (卡片白) │
|
||
│ cardAlpha: rgba(255,255,255,0.72) (半透明卡片) │
|
||
│ │
|
||
│ 毛玻璃系 │
|
||
│ glass: rgba(255,255,255,0.45) (毛玻璃底色) │
|
||
│ glassBorder: rgba(255,255,255,0.3) (毛玻璃边框) │
|
||
│ glassShadow: rgba(0,0,0,0.06) (毛玻璃投影) │
|
||
│ │
|
||
│ 文字系 │
|
||
│ text1: #1C1C1E (主文字) │
|
||
│ text2: #8E8E93 (副文字) │
|
||
│ text3: #C7C7CC (占位文字) │
|
||
│ │
|
||
│ 功能色 │
|
||
│ red: #FF3B30 (删除/退出) │
|
||
│ orange: #FF9500 (热门/推荐) │
|
||
│ green: #34C759 (成功/在线) │
|
||
└─────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.2 圆角体系
|
||
|
||
```
|
||
radius-sm: 8px → 标签/Chip/小按钮
|
||
radius-md: 12px → 卡片/输入框/列表项
|
||
radius-lg: 20px → 大卡片/弹窗/搜索栏
|
||
radius-xl: 28px → 底栏/全屏容器/分段选择器
|
||
radius-full: 999px → 圆形头像/胶囊按钮
|
||
|
||
圆角同心规则(嵌套时内层比外层小 4-8px):
|
||
外层 radius-xl(28) → 内层 radius-lg(20)
|
||
外层 radius-lg(20) → 内层 radius-md(12)
|
||
外层 radius-md(12) → 内层 radius-sm(8)
|
||
```
|
||
|
||
### 2.3 间距体系 (4的倍数)
|
||
|
||
```
|
||
space-1: 4px → 图标与文字间距
|
||
space-2: 8px → 紧凑元素间距
|
||
space-3: 12px → 列表项间距
|
||
space-4: 16px → 页面边距/卡片内边距
|
||
space-5: 20px → 区块间距
|
||
space-6: 24px → 大区块间距
|
||
space-7: 32px → 页面顶部间距
|
||
```
|
||
|
||
### 2.4 毛玻璃参数
|
||
|
||
```
|
||
blur: 20-30px 模糊半径
|
||
opacity: 0.45-0.72 背景透明度
|
||
border: 0.5px solid rgba(255,255,255,0.3)
|
||
shadow: 0 4px 16px rgba(0,0,0,0.06)
|
||
```
|
||
|
||
### 2.5 字体体系
|
||
|
||
```
|
||
font-xs: 11px → 标签/徽章
|
||
font-sm: 12px → 副文字/统计数字
|
||
font-md: 14px → 正文/列表项
|
||
font-lg: 16px → 标题/按钮
|
||
font-xl: 18px → 大标题
|
||
font-xxl: 22px → 页面主标题
|
||
```
|
||
|
||
### 2.6 阴影体系
|
||
|
||
```
|
||
shadow-sm: 0 1px 3px rgba(0,0,0,0.04) → 轻微浮起
|
||
shadow-md: 0 4px 12px rgba(0,0,0,0.06) → 卡片标准
|
||
shadow-lg: 0 8px 24px rgba(0,0,0,0.08) → 弹窗/浮层
|
||
```
|
||
|
||
### 2.7 动画体系
|
||
|
||
```
|
||
duration-fast: 150ms → 按钮点击/开关
|
||
duration-normal: 250ms → 页面切换/分段选择
|
||
duration-slow: 350ms → 弹窗/底栏展开
|
||
curve: Curves.easeInOutCubic
|
||
```
|
||
|
||
---
|
||
|
||
## 三、页面架构总览
|
||
|
||
### 3.1 Tab 结构(新方案 vs 现有)
|
||
|
||
```
|
||
现有 4Tab: 新 4Tab:
|
||
───────────────── ─────────────────
|
||
Tab0: 🏠 首页 Tab0: 🏠 首页 (信息流)
|
||
Tab1: 🛒 购物车 (实为收藏) Tab1: ❤️ 收藏
|
||
Tab2: 🕐 足迹 Tab2: 🔍 发现 (新增聚合页)
|
||
Tab3: 👤 个人中心 Tab3: 👤 我的 (简化设置)
|
||
```
|
||
|
||
**变更说明:**
|
||
- Tab1:「购物车」更名为「收藏」,图标改为 ❤️,语义更准确
|
||
- Tab2:「足迹」替换为「发现」,聚合搜索/分类/功能入口
|
||
- Tab3:「个人中心」简化为「我的」,去掉子Tab,改为纯设置列表
|
||
- 足迹功能移入「我的」设置列表中作为子页面
|
||
|
||
### 3.2 全局布局
|
||
|
||
```
|
||
┌─────────────────────────────────────────────┐
|
||
│ App Shell (全局) │
|
||
│ │
|
||
│ ┌───────────────────────────────────────┐ │
|
||
│ │ ⚠️ 离线横幅 (OfflineBanner) │ │ ← 仅离线时显示
|
||
│ ├───────────────────────────────────────┤ │
|
||
│ │ │ │
|
||
│ │ Page Content Area │ │
|
||
│ │ (IndexedStack 切换) │ │
|
||
│ │ │ │
|
||
│ │ Tab0: 首页 Tab1: 收藏 │ │
|
||
│ │ Tab2: 发现 Tab3: 我的 │ │
|
||
│ │ │ │
|
||
│ ├───────────────────────────────────────┤ │
|
||
│ │ 🫧 Liquid Glass 底部导航栏 🫧 │ │
|
||
│ │ 🏠首页 ❤️收藏 🔍发现 👤我的 │ │
|
||
│ └───────────────────────────────────────┘ │
|
||
└─────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 3.3 导航栏规范
|
||
|
||
```
|
||
所有页面统一使用 CupertinoPageScaffold + CupertinoNavigationBar
|
||
|
||
导航栏样式:
|
||
- 背景: 毛玻璃效果 (blur: 20, opacity: 0.72)
|
||
- 中间标题: font-xl (18px) + text1 色
|
||
- 左侧: 返回箭头 (子页面) 或 无 (Tab页)
|
||
- 右侧: 功能按钮 (图标 22px)
|
||
|
||
子页面导航栏:
|
||
- 左侧: CupertinoIcons.back (自动带返回手势)
|
||
- 右侧: 按需放置操作按钮
|
||
```
|
||
|
||
---
|
||
|
||
## 四、各页面纯文本布局演示
|
||
|
||
### 4.1 Tab0:首页(Home)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🍳 老妈厨房 🔔 👤 │ ← Liquid Glass 导航栏
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🔍 搜索菜谱、食材... │ │ ← 毛玻璃搜索栏
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 推荐 │ 最新 │ 热门 │ 个性 │ ← 分段选择器
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ ┌──────┐ │ │
|
||
│ │ │ 🖼️ │ 红烧排骨 │ │ ← 信息流卡片
|
||
│ │ │ │ 家常菜 · 👁 1.2k │ │
|
||
│ │ └──────┘ ❤️ 128 ⭐ 56 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ ┌──────┐ │ │
|
||
│ │ │ 🖼️ │ 番茄炒蛋 │ │
|
||
│ │ │ │ 快手菜 · 👁 890 │ │
|
||
│ │ └──────┘ ❤️ 96 ⭐ 42 │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ↓ 下拉刷新 · ↑ 上拉加载更多 │
|
||
│ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 下拉 | 刷新当前信息流 | 刷新指示器旋转 |
|
||
| 上拉 | 加载更多(无限滚动) | 底部加载指示器 |
|
||
| 点击卡片 | 进入菜谱详情 | 右滑入 |
|
||
| 点击 ❤️ | 点赞 | 红心放大缩回 + 数字+1 |
|
||
| 点击 ⭐ | 推荐 | 星星旋转 + 数字+1 |
|
||
| 点击 🔔 | 通知列表 | 右滑入 |
|
||
| 分段切换 | 切换推荐/最新/热门/个性化 | 滑块平滑移动 250ms |
|
||
| 点击搜索栏 | 展开搜索页面 | 底部上滑 |
|
||
|
||
---
|
||
|
||
### 4.2 Tab1:收藏(Favorites)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ❤️ 我的收藏 🗑️ 清空 │ ← Liquid Glass 导航栏
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ ┌──────┐ │ │
|
||
│ │ │ 🖼️ │ 红烧排骨 │ │ ← 收藏项
|
||
│ │ │ │ 家常菜 · 👁 1.2k │ │
|
||
│ │ └──────┘ ❤️ │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ ┌──────┐ │ │
|
||
│ │ │ 🖼️ │ 宫保鸡丁 │ │
|
||
│ │ │ │ 川菜 · 👁 2.3k │ │
|
||
│ │ └──────┘ ❤️ │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ─── 空状态 ─── │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ❤️ │ │
|
||
│ │ 收藏夹是空的 │ │
|
||
│ │ 去首页发现美味吧 → │ │
|
||
│ │ │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 共 12 个菜谱 [清空收藏] │ │ ← 底部操作栏
|
||
│ └─────────────────────────────┘ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 左滑卡片 | 出现删除按钮 | 红色背景滑出 |
|
||
| 点击 ❤️ | 取消收藏 | 弹出确认对话框 |
|
||
| 点击「清空收藏」 | 弹出确认对话框 | 从底部弹出 |
|
||
| 空状态点击「去首页」 | 切换到首页 Tab | Tab切换动画 |
|
||
| 点击卡片 | 进入菜谱详情 | 右滑入 |
|
||
| 下拉 | 刷新收藏列表 | 刷新指示器 |
|
||
|
||
---
|
||
|
||
### 4.3 Tab2:发现(Discover)— 新增页面
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🔍 发现 │ ← Liquid Glass 导航栏
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🔍 搜索菜谱、食材、标签... │ │ ← 毛玻璃搜索栏
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 🏷️ 热门标签 │ ← 横向滚动区
|
||
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
|
||
│ │家常│ │快手│ │川菜│ │粤菜│ → │
|
||
│ └────┘ └────┘ └────┘ └────┘ │
|
||
│ │
|
||
│ 🎲 今天吃什么 │ ← 入口卡片(毛玻璃)
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🎰 不知道吃什么? │ │
|
||
│ │ 让我来帮你选! → │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 🔥 热门排行 │ ← 入口卡片(毛玻璃)
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🥇 红烧排骨 👁 1.2k │ │
|
||
│ │ 🥈 宫保鸡丁 👁 890 │ │
|
||
│ │ 🥉 番茄炒蛋 👁 756 │ │
|
||
│ │ 查看完整排行 → │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 📂 分类浏览 │ ← 2列网格
|
||
│ ┌──────┐ ┌──────┐ │
|
||
│ │ 🍳 │ │ 🥘 │ │
|
||
│ │家常菜 │ │快手菜 │ │
|
||
│ ├──────┤ ├──────┤ │
|
||
│ │ 🌶️ │ │ 🍜 │ │
|
||
│ │ 川菜 │ │ 粤菜 │ │
|
||
│ └──────┘ └──────┘ │
|
||
│ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 点击搜索栏 | 展开搜索页面 | 底部上滑 |
|
||
| 输入搜索 | 实时搜索结果列表 | 列表淡入 |
|
||
| 点击标签 | 筛选对应分类菜谱 | 标签高亮 + 列表刷新 |
|
||
| 点击「今天吃什么」 | 跳转 WhatToEatPage | 右滑入 |
|
||
| 点击「热门排行」 | 跳转 HotPage | 右滑入 |
|
||
| 点击排行项 | 进入菜谱详情 | 右滑入 |
|
||
| 点击分类卡片 | 进入分类菜谱列表 | 右滑入 |
|
||
| 下拉 | 刷新页面数据 | 刷新指示器 |
|
||
|
||
---
|
||
|
||
### 4.4 Tab3:我的(Profile)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 👤 我的 │ ← Liquid Glass 导航栏
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ ┌────┐ │ │ ← 用户卡片(毛玻璃)
|
||
│ │ │ 👤 │ 美食爱好者 │ │
|
||
│ │ └────┘ user@example.com │ │
|
||
│ │ [编辑资料] [个性化] │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 📊 我的统计 │ │ ← 统计卡片
|
||
│ │ ┌────┐ ┌────┐ ┌────┐ │ │
|
||
│ │ │ 12 │ │ 56 │ │ 8 │ │ │
|
||
│ │ │收藏│ │浏览│ │点赞│ │ │
|
||
│ │ └────┘ └────┘ └────┘ │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │ ← iOS Settings 风格分组1
|
||
│ │ 🎲 今天吃什么 → │ │
|
||
│ │ ───────────────────────── │ │
|
||
│ │ 🔥 热门排行 → │ │
|
||
│ │ ───────────────────────── │ │
|
||
│ │ 👣 浏览足迹 → │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │ ← iOS Settings 风格分组2
|
||
│ │ ❤️ 口味偏好 → │ │
|
||
│ │ ───────────────────────── │ │
|
||
│ │ 🎨 个性化设置 → │ │
|
||
│ │ ───────────────────────── │ │
|
||
│ │ 🌓 主题设置 → │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │ ← iOS Settings 风格分组3
|
||
│ │ 🚪 退出登录 │ │ ← 红色文字居中
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 点击用户卡片 | 登录/编辑资料 | 右滑入 |
|
||
| 点击「个性化」 | 个性化设置页 | 右滑入 |
|
||
| 点击统计数字 | 查看详情列表 | 右滑入 |
|
||
| 点击功能项 | 跳转对应页面 | 右滑入 |
|
||
| 退出登录 | 确认对话框(红色警告) | 从底部弹出 |
|
||
|
||
---
|
||
|
||
### 4.5 🎲 今天吃什么(WhatToEat)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ← 今天吃什么 🍽️ │ ← 返回导航
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🎲 随机 │ 🧠 智能 │ │ ← 分段选择器
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ │ │ ← 结果卡片(毛玻璃)
|
||
│ │ 🤔 │ │
|
||
│ │ 不知道吃什么? │ │
|
||
│ │ │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🎲 开始选择 │ │ ← 主按钮(主题色)
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 候选菜谱 (6) │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🍳 红烧排骨 ✅ │ │ ← 选中高亮
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ 🥘 宫保鸡丁 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ 🍜 番茄炒蛋 │ │
|
||
│ └─────────────────────────────┘ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 切换模式 | 随机 ↔ 智能 | 分段滑块移动 |
|
||
| 点击「开始选择」 | 转盘动画 → 显示结果 | 快速轮播 → 减速 → 停止 |
|
||
| 点击候选项 | 直接选中该项 | 项高亮 + 弹跳 |
|
||
| 选中后点击 | 查看菜谱详情 | 右滑入 |
|
||
| 再次点击按钮 | 重新选择 | 转盘重新旋转 |
|
||
|
||
---
|
||
|
||
### 4.6 🔥 热门排行(HotRanking)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ← 🔥 热门排行 │
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 今日 │ 本月 │ 累计 │ │ ← 分段选择器
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🥇 红烧排骨 👁 1.2k │ │ ← 前三名特殊样式
|
||
│ ├─────────────────────────────┤ │ (金色背景 + 加粗)
|
||
│ │ 🥈 宫保鸡丁 👁 890 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ 🥉 番茄炒蛋 👁 756 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ 4 麻婆豆腐 👁 634 │ │ ← 普通样式
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ 5 糖醋里脊 👁 521 │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ ↓ 下拉刷新 │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作逻辑:**
|
||
|
||
| 操作 | 行为 | 动画 |
|
||
|------|------|------|
|
||
| 切换时间段 | 今日/本月/累计 | 分段滑块移动 |
|
||
| 点击排行项 | 进入菜谱详情 | 右滑入 |
|
||
| 下拉 | 刷新排行数据 | 刷新指示器 |
|
||
|
||
---
|
||
|
||
### 4.7 🫧 Liquid Glass 底部导航栏
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ │
|
||
│ 🏠 ❤️ 🔍 👤 │ ← 图标
|
||
│ 首页 收藏 发现 我的 │ ← 文字
|
||
│ │
|
||
│ ╔═══════════════════════════════╗ │ ← 毛玻璃胶囊
|
||
│ ║ 半透明 + 模糊 + 圆角28px ║ │
|
||
│ ╚═══════════════════════════════╝ │
|
||
└─────────────────────────────────────┘
|
||
|
||
选中项:
|
||
图标: 28px + primary色 + 轻微弹跳
|
||
文字: font-sm + primary色 + FontWeight.w600
|
||
指示器: 底部小圆点 4px + primary色
|
||
|
||
未选中项:
|
||
图标: 24px + text2色
|
||
文字: font-sm + text2色 + FontWeight.w400
|
||
|
||
胶囊参数:
|
||
height: 64px
|
||
borderRadius: 36px (radius-xl+8)
|
||
padding: bottom 16px, left/right 28px
|
||
blur: 20px
|
||
opacity: 0.72
|
||
```
|
||
|
||
---
|
||
|
||
## 五、页面导航流程图
|
||
|
||
```
|
||
┌──────────┐
|
||
│ 启动页 │
|
||
└────┬─────┘
|
||
│
|
||
┌────▼─────┐
|
||
│ 主Tab页 │
|
||
└────┬─────┘
|
||
│
|
||
┌───────┬───────┼───────┬────────┐
|
||
│ │ │ │ │
|
||
┌────▼──┐ ┌──▼───┐ ┌▼────┐ ┌▼─────┐ │
|
||
│Tab0 │ │Tab1 │ │Tab2 │ │Tab3 │ │
|
||
│首页 │ │收藏 │ │发现 │ │我的 │ │
|
||
│信息流 │ │列表 │ │聚合 │ │设置 │ │
|
||
└───┬───┘ └──┬───┘ └──┬──┘ └──┬───┘ │
|
||
│ │ │ │ │
|
||
│ │ ┌───▼───┐ │ │
|
||
│ │ │搜索页 │ │ │
|
||
│ │ └───────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌───▼────┐ │ │
|
||
│ │ │今天吃 │ │ │
|
||
│ │ │什么🎲 │ │ │
|
||
│ │ └────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌───▼────┐ │ │
|
||
│ │ │热门排行│ │ │
|
||
│ │ │🔥 │ │ │
|
||
│ │ └────────┘ │ │
|
||
│ │ │ │
|
||
│ │ ┌───▼────┐ │ │
|
||
│ │ │分类列表│ │ │
|
||
│ │ └────────┘ │ │
|
||
│ │ │ │
|
||
┌───▼────────▼────────────────▼──┐ │
|
||
│ 菜谱详情页 │ │
|
||
│ (从任何卡片/列表项进入) │ │
|
||
└────────────────────────────────┘ │
|
||
│
|
||
┌──────────────▼──┐
|
||
│ 我的 子页面 │
|
||
│ ├ 口味偏好 ❤️ │
|
||
│ ├ 个性化 🎨 │
|
||
│ ├ 主题 🌓 │
|
||
│ └ 浏览足迹 👣 │
|
||
└─────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 六、Liquid Glass 组件规范
|
||
|
||
### 6.1 毛玻璃容器 (GlassContainer)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │
|
||
│ ▓ 内容透过毛玻璃可见 ▓ │
|
||
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │
|
||
└─────────────────────────────────────┘
|
||
|
||
参数:
|
||
blur: 20.0 模糊半径
|
||
opacity: 0.45 背景透明度 (0.45-0.72)
|
||
borderRadius: 20 圆角 (radius-lg)
|
||
border: 0.5px 半透明白色边框
|
||
shadow: shadow-md 标准投影
|
||
padding: space-4 (16px)
|
||
|
||
Flutter 实现:
|
||
ClipRRect(
|
||
borderRadius: BorderRadius.circular(20),
|
||
child: BackdropFilter(
|
||
filter: ImageFilter.blur(sigmaX: 20, sigmaY: 20),
|
||
child: Container(
|
||
padding: EdgeInsets.all(16),
|
||
decoration: BoxDecoration(
|
||
color: Colors.white.withOpacity(0.45),
|
||
borderRadius: BorderRadius.circular(20),
|
||
border: Border.all(
|
||
color: Colors.white.withOpacity(0.3),
|
||
width: 0.5,
|
||
),
|
||
boxShadow: [
|
||
BoxShadow(
|
||
color: Colors.black.withOpacity(0.06),
|
||
blurRadius: 12,
|
||
offset: Offset(0, 4),
|
||
),
|
||
],
|
||
),
|
||
child: child,
|
||
),
|
||
),
|
||
)
|
||
|
||
使用场景:
|
||
- 发现页入口卡片
|
||
- 我的页用户卡片
|
||
- 今天吃什么结果卡片
|
||
```
|
||
|
||
### 6.2 分段选择器 (GlassSegmentedControl)
|
||
|
||
```
|
||
┌────────┬────────┬────────┐
|
||
│ 选中 │ 未选 │ 未选 │
|
||
│ (白底) │ (透明) │ (透明) │
|
||
└────────┴────────┴────────┘
|
||
|
||
参数:
|
||
borderRadius: 12px (radius-md)
|
||
height: 36px
|
||
padding: 4px (容器内边距)
|
||
选中背景: 白色 + shadow-sm
|
||
选中文字: primary色 + FontWeight.w600
|
||
未选文字: text2色 + FontWeight.w400
|
||
动画: 250ms easeInOutCubic
|
||
|
||
Flutter 实现:
|
||
Container(
|
||
padding: EdgeInsets.all(4),
|
||
decoration: BoxDecoration(
|
||
color: Colors.white.withOpacity(0.3),
|
||
borderRadius: BorderRadius.circular(12),
|
||
),
|
||
child: Row(children: segments.map((s) => AnimatedContainer(
|
||
duration: Duration(milliseconds: 250),
|
||
curve: Curves.easeInOutCubic,
|
||
decoration: BoxDecoration(
|
||
color: isSelected ? Colors.white : Colors.transparent,
|
||
borderRadius: BorderRadius.circular(8),
|
||
boxShadow: isSelected ? [shadow-sm] : [],
|
||
),
|
||
child: Text(s.label, style: TextStyle(
|
||
color: isSelected ? primary : text2,
|
||
fontWeight: isSelected ? FontWeight.w600 : FontWeight.w400,
|
||
)),
|
||
)).toList()),
|
||
)
|
||
|
||
使用场景:
|
||
- 首页信息流类型切换 (推荐/最新/热门/个性)
|
||
- 今天吃什么模式切换 (随机/智能)
|
||
- 热门排行时间段切换 (今日/本月/累计)
|
||
```
|
||
|
||
### 6.3 搜索栏 (GlassSearchBar)
|
||
|
||
```
|
||
┌─────────────────────────────────┐
|
||
│ 🔍 搜索菜谱... │
|
||
└─────────────────────────────────┘
|
||
|
||
参数:
|
||
height: 40px
|
||
borderRadius: 12px (radius-md)
|
||
padding: 12px horizontal
|
||
背景: glass (rgba(255,255,255,0.45))
|
||
图标: CupertinoIcons.search, 18px, text3色
|
||
占位符: text3色, font-md
|
||
输入文字: text1色, font-md
|
||
|
||
Flutter 实现:
|
||
ClipRRect(
|
||
borderRadius: BorderRadius.circular(12),
|
||
child: BackdropFilter(
|
||
filter: ImageFilter.blur(sigmaX: 20, sigmaY: 20),
|
||
child: Container(
|
||
height: 40,
|
||
padding: EdgeInsets.symmetric(horizontal: 12),
|
||
decoration: BoxDecoration(
|
||
color: Colors.white.withOpacity(0.45),
|
||
borderRadius: BorderRadius.circular(12),
|
||
),
|
||
child: Row(children: [
|
||
Icon(CupertinoIcons.search, size: 18, color: text3),
|
||
SizedBox(width: 8),
|
||
Text('搜索菜谱...', style: TextStyle(color: text3, fontSize: 14)),
|
||
]),
|
||
),
|
||
),
|
||
)
|
||
|
||
使用场景:
|
||
- 首页顶部搜索栏
|
||
- 发现页顶部搜索栏
|
||
```
|
||
|
||
### 6.4 信息流卡片 (GlassFeedCard)
|
||
|
||
```
|
||
┌─────────────────────────────────┐
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 🖼️ 图片区域 │ │ ← 16:9 比例
|
||
│ │ (顶部圆角16) │ │ 圆角 radius-lg
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 标题 🏷️标签 │ ← 标题 font-lg + text1
|
||
│ │ 标签 radius-sm + primaryLight底
|
||
│ 简介文字... │ ← font-sm + text2 + 2行截断
|
||
│ │
|
||
│ 👁 1.2k ❤️ 128 ⭐ 56 🔥 78 │ ← 互动栏 font-sm + text2
|
||
└─────────────────────────────────┘
|
||
|
||
参数:
|
||
borderRadius: 16px (radius-lg)
|
||
背景: card (#FFFFFF)
|
||
shadow: shadow-md
|
||
图片区: 16:9 比例 + 顶部圆角
|
||
内边距: space-4 (16px)
|
||
标签: primaryLight底 + primary色文字 + radius-sm
|
||
互动栏: 图标16px + 数字 + 水平排列
|
||
|
||
使用场景:
|
||
- 首页信息流列表
|
||
- 搜索结果列表
|
||
- 分类菜谱列表
|
||
```
|
||
|
||
### 6.5 设置列表项 (GlassSettingsTile)
|
||
|
||
```
|
||
┌─────────────────────────────────┐
|
||
│ 🎨 个性化设置 → │
|
||
└─────────────────────────────────┘
|
||
|
||
参数:
|
||
height: 48px (最小)
|
||
padding: 14px vertical + 16px horizontal
|
||
图标: 20px + primary色
|
||
标题: font-md + text1色
|
||
箭头: 16px + text3色 (CupertinoIcons.chevron_forward)
|
||
分隔线: 0.5px + text3色 10%透明度
|
||
背景: card (#FFFFFF)
|
||
borderRadius: 分组容器 radius-lg (20px)
|
||
|
||
分组样式:
|
||
┌─────────────────────────────┐
|
||
│ 项1 → │ ← 无顶部分隔线
|
||
│ ───────────────────────── │ ← 分隔线 (缩进16px)
|
||
│ 项2 → │
|
||
│ ───────────────────────── │
|
||
│ 项3 → │ ← 无底部分隔线
|
||
└─────────────────────────────┘
|
||
分组间距: space-6 (24px)
|
||
|
||
使用场景:
|
||
- 我的页功能列表
|
||
- 设置页选项列表
|
||
```
|
||
|
||
### 6.6 底部导航栏 (GlassNavBar)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ │
|
||
│ 🏠 ❤️ 🔍 👤 │
|
||
│ 首页 收藏 发现 我的 │
|
||
│ │
|
||
│ ╔═══════════════════════════════╗ │
|
||
│ ║ 半透明 + 模糊 + 圆角36px ║ │
|
||
│ ╚═══════════════════════════════╝ │
|
||
└─────────────────────────────────────┘
|
||
|
||
参数:
|
||
height: 64px
|
||
borderRadius: 36px
|
||
padding: bottom 16px, left/right 28px
|
||
blur: 20px
|
||
opacity: 0.72
|
||
背景: primary色 + opacity
|
||
shadow: 0 6px 12px rgba(0,0,0,0.08)
|
||
|
||
选中项:
|
||
图标: 28px + primary色
|
||
文字: font-sm (12px) + primary色 + w600
|
||
指示器: 底部圆点 4px + primary色
|
||
|
||
未选中项:
|
||
图标: 24px + text2色 65%透明度
|
||
文字: font-sm (12px) + text2色 + w400
|
||
|
||
Flutter 实现: (基于现有 TapLiquidGlassNavigation 升级)
|
||
- 添加文字标签
|
||
- 添加选中指示器
|
||
- 更新图标为: home/heart/search/person
|
||
- 更新颜色为 iOS 系统色
|
||
|
||
使用场景:
|
||
- 全局底部导航 (MainTabView)
|
||
```
|
||
|
||
---
|
||
|
||
## 七、关键改进点(对比现有设计)
|
||
|
||
| # | 现有问题 | iOS 26 改进 | 涉及文件 |
|
||
|---|---------|------------|---------|
|
||
| 1 | 底栏 edge/floating 两种风格 | 统一为 Liquid Glass 胶囊底栏,废弃 edge | `main_tab_view.dart` |
|
||
| 2 | Tab1 名为「购物车」实为收藏 | 改名为「收藏 ❤️」,图标改为 heart | `main_tab_view.dart`, `tap_liquid_glass_nav.dart` |
|
||
| 3 | 缺少「发现」页 | 新增发现页聚合搜索/分类/功能入口 | 新建 `discover_page.dart` |
|
||
| 4 | Tab2「足迹」独立占Tab | 足迹移入「我的」子页面,Tab2改为发现 | `main_tab_view.dart`, `profile_page.dart` |
|
||
| 5 | 个人中心有子Tab切换 | 去掉子Tab,改为纯设置列表 | `profile_page.dart` |
|
||
| 6 | 搜索栏位置不固定 | 首页/发现页顶部固定搜索栏 | `home_page.dart` |
|
||
| 7 | 卡片样式不统一 | 统一 GlassFeedCard 组件 | 新建 `glass_feed_card.dart` |
|
||
| 8 | 缺少分类浏览入口 | 发现页增加分类网格 | `discover_page.dart` |
|
||
| 9 | 主色 #2196F3 不够 iOS | 改为 iOS 蓝 #007AFF | `theme_service.dart` |
|
||
| 10 | 导航栏样式不统一 | 全部使用毛玻璃导航栏 | 所有页面 |
|
||
|
||
---
|
||
|
||
## 八、暗色模式适配
|
||
|
||
Liquid Glass 在暗色模式下效果更佳,参数调整如下:
|
||
|
||
### 8.1 暗色颜色映射
|
||
|
||
```
|
||
亮色 → 暗色
|
||
──────────────────────────────────────────
|
||
primary: #007AFF → #0A84FF (iOS 暗色蓝)
|
||
secondary: #FF9500 → #FF9F0A (iOS 暗色橙)
|
||
background: #F2F2F7 → #000000 (纯黑)
|
||
card: #FFFFFF → #1C1C1E (深灰)
|
||
cardAlpha: rgba(255,255,255,0.72) → rgba(28,28,30,0.72)
|
||
text1: #1C1C1E → #FFFFFF
|
||
text2: #8E8E93 → #8E8E93 (不变)
|
||
text3: #C7C7CC → #48484A
|
||
red: #FF3B30 → #FF453A
|
||
green: #34C759 → #30D158
|
||
```
|
||
|
||
### 8.2 暗色毛玻璃参数
|
||
|
||
```
|
||
亮色 → 暗色
|
||
──────────────────────────────────────────
|
||
glass: rgba(255,255,255,0.45) → rgba(28,28,30,0.45)
|
||
glassBorder: rgba(255,255,255,0.3) → rgba(255,255,255,0.15)
|
||
glassShadow: rgba(0,0,0,0.06) → rgba(0,0,0,0.3)
|
||
blur: 20px → 25px (暗色下模糊略强)
|
||
```
|
||
|
||
### 8.3 暗色特殊处理
|
||
|
||
```
|
||
- 分段选择器选中背景: #2C2C2E (暗色卡片色)
|
||
- 搜索栏背景: rgba(28,28,30,0.45)
|
||
- 底栏背景: primary色暗色 + 0.72透明度
|
||
- 前三名排行: 金色背景改为深金色 rgba(255,204,0,0.15)
|
||
- 设置列表分组: #1C1C1E 背景
|
||
```
|
||
|
||
---
|
||
|
||
## 九、响应式适配
|
||
|
||
### 9.1 断点定义
|
||
|
||
```
|
||
手机: 360px – 640px → 单列布局
|
||
折叠屏: 600px – 900px → 自动双列
|
||
平板: 768px – 1024px → 双列布局
|
||
桌面: 1280px+ → 多列布局
|
||
```
|
||
|
||
### 9.2 各页面响应式规则
|
||
|
||
```
|
||
首页信息流:
|
||
手机: 单列卡片全宽
|
||
平板: 双列卡片
|
||
桌面: 三列卡片
|
||
|
||
发现页:
|
||
手机: 分类网格 2列
|
||
平板: 分类网格 3列
|
||
桌面: 分类网格 4列
|
||
|
||
收藏页:
|
||
手机: 单列列表
|
||
平板: 双列网格
|
||
桌面: 三列网格
|
||
|
||
我的页:
|
||
手机: 全宽设置列表
|
||
平板: 居中 max-width: 600px
|
||
桌面: 居中 max-width: 600px
|
||
```
|
||
|
||
### 9.3 底栏响应式
|
||
|
||
```
|
||
手机: 胶囊底栏 left/right 28px
|
||
平板: 胶囊底栏 left/right 48px
|
||
桌面: 可选侧边导航栏替代底栏
|
||
```
|
||
|
||
---
|
||
|
||
## 十、实施计划
|
||
|
||
### 阶段一:基础设施(设计令牌 + 组件库)
|
||
|
||
> 优先级: P0 | 预计涉及文件: 8个
|
||
|
||
| # | 任务 | 涉及文件 | 状态 |
|
||
|---|------|---------|------|
|
||
| 1 | 创建 `DesignTokens` 类 | 新建 `config/design_tokens.dart` | ✅ |
|
||
| 2 | 创建 `GlassContainer` 组件 | 新建 `widgets/glass/glass_container.dart` | ✅ |
|
||
| 3 | 创建 `GlassSegmentedControl` 组件 | 新建 `widgets/glass/glass_segmented_control.dart` | ✅ |
|
||
| 4 | 创建 `GlassSearchBar` 组件 | 新建 `widgets/glass/glass_search_bar.dart` | ✅ |
|
||
| 5 | 创建 `GlassFeedCard` 组件 | 新建 `widgets/glass/glass_feed_card.dart` | ✅ |
|
||
| 6 | 创建 `GlassSettingsTile` 组件 | 新建 `widgets/glass/glass_settings_tile.dart` | ✅ |
|
||
| 7 | 升级 `GlassNavBar` 组件 | 新建 `widgets/glass/glass_nav_bar.dart` | ✅ |
|
||
| 8 | 更新 `ThemeService` 适配新令牌 | 修改 `services/ui/theme_service.dart` | ✅ |
|
||
|
||
### 阶段二:Tab 结构重构
|
||
|
||
> 优先级: P0 | 预计涉及文件: 4个
|
||
|
||
| # | 任务 | 涉及文件 | 状态 |
|
||
|---|------|---------|------|
|
||
| 1 | 修改 `MainTabView` 4Tab 新方案 | 修改 `widgets/navigation/main_tab_view.dart` | ✅ |
|
||
| 2 | 废弃 edge 样式,统一 floating | 修改 `main_tab_view.dart` | ✅ |
|
||
| 3 | 更新导航图标和标签 | 新建 `widgets/glass/glass_nav_bar.dart` | ✅ |
|
||
| 4 | 更新路由和导航控制器 | 修改 `routes/app_routes.dart` | ✅ |
|
||
|
||
### 阶段三:页面改造
|
||
|
||
> 优先级: P1 | 预计涉及文件: 6个
|
||
|
||
| # | 任务 | 涉及文件 | 状态 |
|
||
|---|------|---------|------|
|
||
| 1 | 首页改造:搜索栏 + 分段选择器 + 信息流卡片 | 修改 `pages/home_page.dart` | ✅ |
|
||
| 2 | 收藏页改造:统一卡片样式 | 新建 `pages/favorites/favorites_page.dart` | ✅ |
|
||
| 3 | 新增发现页 | 新建 `pages/discover/discover_page.dart` | ✅ |
|
||
| 4 | 我的页改造:GlassSegmentedControl | 修改 `pages/profile_page.dart` | ✅ |
|
||
| 5 | 今天吃什么页升级 | 修改 `pages/what_to_eat/what_to_eat_page.dart` | ✅ |
|
||
| 6 | 热门排行页升级 | 修改 `pages/hot/hot_page.dart` | ✅ |
|
||
|
||
### 阶段四:细节打磨
|
||
|
||
> 优先级: P2 | 预计涉及文件: 多个
|
||
|
||
| # | 任务 | 状态 |
|
||
|---|------|------|
|
||
| 1 | 暗色模式全面适配 | ✅ |
|
||
| 2 | 动画效果优化(点赞/推荐/切换) | ✅ |
|
||
| 3 | 响应式布局测试(手机/平板/横屏) | ✅ |
|
||
| 4 | 性能优化(毛玻璃渲染优化) | ⬜ |
|
||
| 5 | 无障碍适配(语义标签/对比度) | ⬜ |
|
||
|
||
---
|
||
|
||
## 附录:文件结构规划
|
||
|
||
```
|
||
lib/src/
|
||
├── config/
|
||
│ └── design_tokens.dart ← 设计令牌 (新增)
|
||
├── widgets/
|
||
│ ├── glass/ ← Liquid Glass 组件 (新增目录)
|
||
│ │ ├── glass_container.dart
|
||
│ │ ├── glass_segmented_control.dart
|
||
│ │ ├── glass_search_bar.dart
|
||
│ │ ├── glass_feed_card.dart
|
||
│ │ ├── glass_settings_tile.dart
|
||
│ │ └── glass_nav_bar.dart
|
||
│ ├── base/
|
||
│ │ └── tap_liquid_glass_nav.dart ← 升级为 glass_nav_bar
|
||
│ ├── states/
|
||
│ │ ├── offline_banner.dart
|
||
│ │ ├── empty_state.dart
|
||
│ │ └── error_state.dart
|
||
│ └── navigation/
|
||
│ └── main_tab_view.dart ← 重构 4Tab
|
||
├── pages/
|
||
│ ├── home_page.dart ← Tab0 首页 (改造)
|
||
│ ├── favorites/ ← Tab1 收藏 (重命名 cart→favorites)
|
||
│ │ └── favorites_page.dart
|
||
│ ├── discover/ ← Tab2 发现 (新增)
|
||
│ │ └── discover_page.dart
|
||
│ ├── profile_page.dart ← Tab3 我的 (改造)
|
||
│ ├── what_to_eat/
|
||
│ │ └── what_to_eat_page.dart ← 升级
|
||
│ ├── hot/
|
||
│ │ └── hot_page.dart ← 升级
|
||
│ └── settings/
|
||
│ ├── preference_page.dart
|
||
│ ├── personalization_page.dart
|
||
│ └── theme_demo_page.dart
|
||
└── services/
|
||
└── ui/
|
||
└── theme_service.dart ← 适配新令牌
|
||
```
|
||
|
||
---
|
||
|
||
## 变更记录
|
||
|
||
| 日期 | 版本 | 变更内容 |
|
||
|------|------|---------|
|
||
| 2026-04-09 | 1.1 | 重写完整文档:增加目录、设计原则、动画规范、暗色模式详细参数、响应式规则、实施计划状态追踪 |
|
||
| 2026-04-09 | 1.0 | 初始版本:基础设计方案 |
|