544 lines
23 KiB
Markdown
544 lines
23 KiB
Markdown
# 小妈厨房 iOS 26 UI 设计方案
|
||
|
||
|
||
|
||
> 版本: 1.3 | 日期: 2026-04-12 | 设计语言: Liquid Glass (iOS 26)
|
||
>
|
||
> 本文档是项目 UI 改造的完整规范,任何开发者(含 AI Coder)必须按此方案执行。
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
1. [设计语言:Liquid Glass 核心特征](#一设计语言liquid-glass-核心特征)
|
||
2. [设计令牌 (Design Tokens)](#二设计令牌-design-tokens)
|
||
3. [页面架构总览](#三页面架构总览)
|
||
4. [各页面布局演示](#四各页面布局演示)
|
||
5. [导航流程图](#五页面导航流程图)
|
||
6. [组件规范](#六liquid-glass-组件规范)
|
||
7. [改进对比](#七关键改进点对比现有设计)
|
||
8. [暗色模式适配](#八暗色模式适配)
|
||
9. [响应式适配](#九响应式适配)
|
||
10. [实施计划](#十实施计划)
|
||
11. [iOS 组件清单](#十一ios-组件清单component-inventory)
|
||
|
||
---
|
||
|
||
## 一、设计语言:Liquid Glass 核心特征
|
||
|
||
iOS 26 的 **Liquid Glass(液态玻璃)** 是苹果自 iOS 7 扁平化以来最大的视觉变革,灵感源自 Vision Pro。
|
||
|
||
### 五大核心特征
|
||
|
||
| # | 特征 | Flutter 实现 |
|
||
|---|------|-------------|
|
||
| 1 | 半透明毛玻璃 | `BackdropFilter` + `ImageFilter.blur(20)` |
|
||
| 2 | 动态光效/折射 | 渐变边框 + `Shimmer` 动画 |
|
||
| 3 | 深度层次感 | 多层 `Container` + `BoxShadow` |
|
||
| 4 | 圆角同心设计 | 统一 `BorderRadius` 体系 |
|
||
| 5 | 内容聚焦 | `Stack` + 半透明 `Positioned` |
|
||
|
||
### 与现有代码映射
|
||
|
||
```
|
||
TapLiquidGlassNavigation → 保留,升级为 GlassNavBar
|
||
FloatingCupertinoTabBar → 废弃,统一用 GlassNavBar
|
||
BottomBarStyle.liquidGlass → 透明玻璃杯效果(贴边样式)
|
||
BottomBarStyle.floating → 悬浮液态玻璃效果
|
||
ThemeService.primaryColor (#2196F3) → 改为 iOS 蓝 #007AFF
|
||
ThemeService.secondaryColor (#FF9800) → 改为 iOS 橙 #FF9500
|
||
```
|
||
|
||
### 设计原则
|
||
|
||
```
|
||
内容为王 · 一致性 · 深度感 · 流畅性(250-350ms) · 可达性(≥44px触摸/≥11px文字)
|
||
```
|
||
|
||
---
|
||
|
||
## 二、设计令牌 (Design Tokens)
|
||
|
||
> 所有页面必须基于此令牌,禁止硬编码颜色、间距、圆角。若令牌中无所需值,需先在此处添加再使用。
|
||
|
||
### 颜色体系
|
||
|
||
| 类别 | Token | 值 | 用途 |
|
||
|------|-------|-----|------|
|
||
| 主色系 | 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 / text2 / text3 | `#1C1C1E` / `#8E8E93` / `#C7C7CC` | 主/副/占位文字 |
|
||
| 功能色 | red / orange / green | `#FF3B30` / `#FF9500` / `#34C759` | 删除/热门/成功 |
|
||
|
||
### 圆角体系
|
||
|
||
| Token | 值 | 用途 | 同心规则 |
|
||
|-------|-----|------|---------|
|
||
| radius-sm | 8px | 标签/Chip/小按钮 | 内层比外层小4-8px |
|
||
| radius-md | 12px | 卡片/输入框/列表项 | xl→lg→md→sm |
|
||
| radius-lg | 20px | 大卡片/弹窗/搜索栏 | 28→20→12→8 |
|
||
| radius-xl | 28px | 底栏/全屏容器 | — |
|
||
| radius-full | 999px | 圆形头像/胶囊按钮 | — |
|
||
|
||
### 间距体系(4的倍数)
|
||
|
||
| Token | 值 | 用途 |
|
||
|-------|-----|------|
|
||
| space-1 ~ space-7 | 4/8/12/16/20/24/32px | 图标间距→页面顶部 |
|
||
|
||
### 毛玻璃参数
|
||
|
||
```
|
||
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)
|
||
```
|
||
|
||
### 字体 / 阴影 / 动画
|
||
|
||
| 字体 | 值 | 阴影 | 值 | 动画 | 值 |
|
||
|------|-----|------|-----|------|-----|
|
||
| font-xs | 11px 标签/徽章 | shadow-sm | `0 1px 3px rgba(0,0,0,0.04)` | fast | 150ms 按钮 |
|
||
| font-sm | 12px 副文字 | shadow-md | `0 4px 12px rgba(0,0,0,0.06)` | normal | 250ms 页面切换 |
|
||
| font-md | 14px 正文 | shadow-lg | `0 8px 24px rgba(0,0,0,0.08)` | slow | 350ms 弹窗 |
|
||
| font-lg | 16px 标题 | | | curve | easeInOutCubic |
|
||
| font-xl | 18px 大标题 | | | | |
|
||
| font-xxl | 22px 页面主标题 | | | | |
|
||
|
||
---
|
||
|
||
## 三、页面架构总览
|
||
|
||
### Tab 结构变更
|
||
|
||
```
|
||
现有 4Tab: 新 4Tab:
|
||
Tab0: 🏠 首页 → Tab0: 🏠 首页 (信息流)
|
||
Tab1: 🛒 购物车(实为收藏)→ Tab1: ❤️ 收藏
|
||
Tab2: 🕐 足迹 → Tab2: 🔍 发现 (聚合页)
|
||
Tab3: 👤 个人中心 → Tab3: 👤 我的 (简化设置)
|
||
```
|
||
|
||
### 全局布局
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ⚠️ 离线横幅 (仅离线时显示) │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ Page Content Area │ │
|
||
│ │ (IndexedStack 切换) │ │
|
||
│ │ 首页 | 收藏 | 发现 | 我的 │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ 🫧 Liquid Glass 底部导航栏 🫧 │
|
||
│ 🏠首页 ❤️收藏 🔍发现 👤我的 │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
### 导航栏规范
|
||
|
||
```
|
||
统一使用 CupertinoPageScaffold + CupertinoNavigationBar
|
||
背景: 毛玻璃(blur:20, opacity:0.72) | 标题: font-xl(18px)+text1
|
||
子页面: 左侧返回箭头(CupertinoIcons.back) | 右侧功能按钮(图标22px)
|
||
```
|
||
|
||
---
|
||
|
||
## 四、各页面布局演示
|
||
|
||
### Tab0:首页(Home)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🍳 小妈厨房 🔔 👤 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌─ 营养仪表盘 (NutritionDashboard)─┐ │
|
||
│ │ <20> 今日摄入: 热量/蛋白质/碳水...│ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ │
|
||
│ 🌊 发现 24 项 │
|
||
│ 探索菜谱、食材、分类 │
|
||
│ ┌──────┐ ┌────────────┐ │
|
||
│ │🖼️封面│ │🥬食材卡片 │ │
|
||
│ │红烧排│ │⚠含过敏原 │ │
|
||
│ │骨 ⭐4.8│ │简介文字.. │ │
|
||
│ │👁1.2k│ └────────────┘ │
|
||
│ └──────┘ ┌──────┐ ┌──────────┐ │
|
||
│ ┌──────────┐ │📂分类│ │🏷️口味标签│ │
|
||
│ │🖼️宽图 │ │家常菜│ │酸辣甜鲜..│ │
|
||
│ │宫保鸡丁 │ │128项│ └──────────┘ │
|
||
│ │⭐4.5 │ └──────┘ ┌──────────┐ │
|
||
│ │👁2.3k │ ┌──────────┐ │🕐早餐推荐│ │
|
||
│ └──────────┘ │🖼️菜品卡 │ │7-10点.. │ │
|
||
│ │番茄炒蛋 │ └──────────┘ │
|
||
│ └──────────┘ ↓下拉加载更多│
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作**: 下拉刷新/上拉加载/点击菜品→详情/点击食材→搜索/点击分类→浏览/点击标签→列表/滚动隐藏顶部栏
|
||
|
||
**布局说明 (v0.90.0 更新)**:
|
||
- 移除旧「今日推荐」「分类浏览」「口味工艺」横向卡片
|
||
- 使用 `api_discover.php` 接口数据构建 **MasonryGridView 2列瀑布流**
|
||
- 5种卡片类型混合展示:菜品(Recipe)/食材(Ingredient)/分类(Category)/口味标签(Tag)/时段(MealTime)
|
||
- Liquid Glass 毛玻璃风格统一视觉
|
||
|
||
### Tab1:收藏(Favorites)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ❤️ 我的收藏 🗑️ 清空 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌──┐ 红烧排骨 家常菜·👁1.2k ❤ │
|
||
│ │🖼️│ │
|
||
│ ├──┤ ┌──┐ 宫保鸡丁 川菜·👁2.3k ❤ │
|
||
│ │🖼️│ │
|
||
│ └──┘ 共12个菜谱 [清空收藏] │
|
||
│ ┌─ 空状态: ❤ 收藏夹是空的 ──────┐ │
|
||
│ │ 去首页发现美味吧 → │ │
|
||
│ └────────────────────────────────┘ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作**: 左滑删除/点击❤取消收藏/清空确认弹窗/空状态→切换首页Tab
|
||
|
||
### Tab2:发现(Discover)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🔍 发现 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌─ 🔍 搜索菜谱、食材、标签... ──┐ │
|
||
│ ├─ 🏷️ 热门标签: 家常|快手|川菜|粤菜 →┤
|
||
│ ├─ 🎲 今天吃什么? 让我来帮你选! → ─┤
|
||
│ ├─ 🔥 热门排行: 🥇排骨 🥈宫保 🥉番茄→┤
|
||
│ ├─ 📂 分类浏览 (2列网格): │ │
|
||
│ │ 🍳家常 🥘快手 🌶️川菜 🍜粤菜 │ │
|
||
│ └────────────────────────────────┘ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**操作**: 搜索→实时列表/标签筛选/今天吃什么→WhatToEatPage/排行→HotPage/分类→列表页
|
||
|
||
### Tab3:我的(Profile)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 👤 我的 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌─ 用户卡片(毛玻璃): 👤美食爱好者 ─┐│
|
||
│ │ user@example.com [编辑][个性化] ││
|
||
│ ├─ 📊 统计: 12收藏 56浏览 8点赞 ──┤│
|
||
│ ├─ 分组1: 今天吃什么/数据管理/设置 →││
|
||
│ ├─ 分组2: 购物单/营养中心/睡眠提醒→││
|
||
│ └────────────────────────────────┘│
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
### 子页面:菜谱详情(Recipe Detail)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ← 返回 分享 收藏 更多 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌─ 封面大图 (圆角+阴影) ─────────┐ │
|
||
│ ├─ 标题区: 名称/评分/时间/难度 ────┤ │
|
||
│ ├─ 作者卡片: 头像+昵称+关注 ──────┤ │
|
||
│ ├─ 信息卡: 口味/工艺/份量/热量 ────┤ │
|
||
│ ├─ 食材区: 图片+名称+用量+过敏警告─┤ │
|
||
│ ├─ 步骤区: 编号+图文+计时器 ──────┤ │
|
||
│ ├─ 营养区: 宏量营养素环形图 ──────┤ │
|
||
│ ├─ 标签区: 可跳转的分类/口味标签 ──┤ │
|
||
│ ├─ 统计栏: 👁浏览 ❤点赞 ⭐推荐 ───┤ │
|
||
│ ├─ 操作栏: 开始烹饪/分享/评分 ────┤ │
|
||
│ └─ PicId调试卡(开发模式可见) ─────┘ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
### 子页面:工具中心(Tools Center)
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ← 返回 工具中心 │
|
||
├─────────────────────────────────────┤
|
||
│ ┌─ 分类Tab: 全部|烹饪|健康|数据|规划┤│
|
||
│ ├─ 工具网格 (3列): ││
|
||
│ │ ⏱️计时 📐缩放 🍽️时段 📊BMI ││
|
||
│ │ ⚠️过敏 🥗营养 🔢换算 🥕食材详情 ││
|
||
│ │ 🔥排行 📈统计 📅规划 ││
|
||
│ └────────────────────────────────┘│
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 五、导航流程图
|
||
|
||
```
|
||
┌──────────┐
|
||
│ 首页 │
|
||
│ (Tab0) │
|
||
└────┬─────┘
|
||
│ 点击卡片
|
||
▼
|
||
┌─────────────────┐
|
||
│ 菜谱详情页 │◄─────────────────┐
|
||
└──┬──────┬───────┘ │
|
||
│ │ │
|
||
┌──────────┘ └──────────┐ │
|
||
▼ ▼ │
|
||
┌────────────┐ ┌────────────┐ │
|
||
│ 笔记页面 │ │ 食材详情 │──────────┘
|
||
└────────────┘ └─────┬──────┘
|
||
│
|
||
┌──────▼──────┐
|
||
│ 食材菜品列表 │
|
||
└─────────────┘
|
||
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│ 收藏(Tab1)│ │ 发现(Tab2)│ │ 我的(Tab3)│ │ 工具中心 │
|
||
└────┬─────┘ └──┬───────┘ └──┬───────┘ └────┬─────┘
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
详情页 搜索/分类/排行 设置子页面 各工具子页面
|
||
```
|
||
|
||
---
|
||
|
||
## 六、Liquid Glass 组件规范
|
||
|
||
### 6.1 GlassContainer 毛玻璃容器
|
||
|
||
```dart
|
||
GlassContainer(
|
||
child: Widget,
|
||
blur: double, // 默认20
|
||
opacity: double, // 默认0.45
|
||
borderRadius: double,// 默认radius-lg(20)
|
||
border: bool, // 默认true
|
||
padding: EdgeInsets,
|
||
)
|
||
// 使用场景: 卡片/弹窗/浮层
|
||
```
|
||
|
||
### 6.2 GlassNavBar 液态玻璃底栏
|
||
|
||
```dart
|
||
GlassNavBar(
|
||
currentIndex: int,
|
||
onTap: (int),
|
||
items: [
|
||
NavItem(icon: CupertinoIcons.home, label: '首页'),
|
||
NavItem(icon: CupertinoIcons.heart, label: '收藏'),
|
||
NavItem(icon: CupertinoIcons.search, label: '发现'),
|
||
NavItem(icon: CupertinoIcons.person, label: '我的'),
|
||
],
|
||
)
|
||
// 特性: blur(20)+opacity(0.72)+圆角xl(28)+选中高亮动画
|
||
```
|
||
|
||
### 6.3 GlassFeedCard 信息流卡片
|
||
|
||
```dart
|
||
GlassFeedCard(
|
||
imageUrl: String,
|
||
title: String,
|
||
subtitle: String,
|
||
viewCount: int,
|
||
likeCount: int,
|
||
recommendCount: int,
|
||
onTap: VoidCallback,
|
||
onLike: VoidCallback,
|
||
onRecommend: VoidCallback,
|
||
)
|
||
// 特性: 圆角md(12)+shadow-md+毛玻璃底部操作栏
|
||
```
|
||
|
||
### 6.4 GlassSearchBar 搜索栏
|
||
|
||
```dart
|
||
GlassSearchBar(
|
||
hintText: '搜索菜谱、食材...',
|
||
onChanged: (String),
|
||
onSubmitted: (String),
|
||
)
|
||
// 特性: 圆角lg(20)+毛玻璃背景+搜索图标+清除按钮
|
||
```
|
||
|
||
### 6.5 GlassSegmentedControl 分段选择器
|
||
|
||
```dart
|
||
GlassSegmentedControl(
|
||
segments: ['推荐', '最新', '热门', '个性化'],
|
||
selectedIndex: int,
|
||
onSelected: (int),
|
||
)
|
||
// 特性: 毛玻璃滑块+250ms平滑过渡+选中高亮
|
||
```
|
||
|
||
### 6.6 GlassSettingsGroup/Tile 设置组(备用)
|
||
|
||
```dart
|
||
GlassSettingsGroup(
|
||
header: '通用',
|
||
children: [
|
||
GlassSettingsTile(title: '今天吃什么', trailing: '→'),
|
||
GlassSettingsTile(title: '深色模式', toggle: true),
|
||
],
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## 七、改进对比
|
||
|
||
| 维度 | 现有问题 | iOS 26 改进 |
|
||
|------|---------|------------|
|
||
| 视觉风格 | Material/Cupertino混用,颜色不统一 | 统一Liquid Glass毛玻璃风格 |
|
||
| 导航栏 | 各页面实现不一致 | 统一CupertinoPageScaffold+毛玻璃 |
|
||
| 底部栏 | edge/floating两套并存 | 统一GlassNavBar(floating) |
|
||
| 颜色 | primary=#2196F3(Material蓝) | 改为iOS标准#007AFF |
|
||
| 圆角 | 各组件硬编码不统一 | 统一radius-sm/md/lg/xl体系 |
|
||
| 卡片 | 扁平无层次感 | 毛玻璃半透明+多层深度 |
|
||
| 动画 | 无统一规范 | 150/250/350ms三级动画体系 |
|
||
| 暗色模式 | 部分支持 | 完整DarkDesignTokens适配 |
|
||
|
||
---
|
||
|
||
## 八、暗色模式适配
|
||
|
||
| Token | Light | Dark |
|
||
|-------|-------|------|
|
||
| background | `#F2F2F7` | `#000000` |
|
||
| card | `#FFFFFF` | `#1C1C1E` |
|
||
| text1 | `#1C1C1E` | `#F2F2F7` |
|
||
| text2 | `#8E8E93` | `#8E8E93` |
|
||
| text3 | `#C7C7CC` | `#48484A` |
|
||
| glass | `rgba(255,255,255,0.45)` | `rgba(30,30,30,0.65)` |
|
||
| glassBorder | `rgba(255,255,255,0.3)` | `rgba(255,255,255,0.1)` |
|
||
| glassShadow | `rgba(0,0,0,0.06)` | `rgba(0,0,0,0.3)` |
|
||
| shadow-sm/md/lg | alpha降低 | alpha提高 |
|
||
|
||
> 实现方式: `CupertinoTheme.brightnessOf(context)` 判断,使用 `DarkDesignTokens` 类获取暗色值
|
||
|
||
---
|
||
|
||
## 九、响应式适配
|
||
|
||
| 设备 | 宽度范围 | 布局策略 |
|
||
|------|---------|---------|
|
||
| 手机 | 360-640px | 单列 |
|
||
| 平板竖屏 | 600-900px | 双列(折叠屏适配) |
|
||
| 平板横屏 | 768-1024px | 双列+侧边详情 |
|
||
| 桌面 | ≥1024px | 多列+最大宽度1200px居中 |
|
||
|
||
> 折叠屏特殊处理: 避免关键内容置于折痕区域(屏幕中央),使用order或grid调整流式排列
|
||
|
||
---
|
||
|
||
## 十、实施计划
|
||
|
||
| 阶段 | 内容 | 状态 |
|
||
|------|------|------|
|
||
| P0 | DesignTokens全局替换硬编码值 | ✅ 已完成 |
|
||
| P1 | GlassContainer/GlassNavBar/GlassFeedCard基础组件 | ✅ 已完成 |
|
||
| P2 | 首页/发现页改造为信息流 | 🔄 进行中 |
|
||
| P3 | 收藏页/我的页改造 | ⏳ 待开始 |
|
||
| P4 | 暗色模式完整适配 | ⏳ 待开始 |
|
||
| P5 | 响应式多端适配 | ⏳ 待开始 |
|
||
|
||
---
|
||
|
||
## 十一、iOS 组件清单(Component Inventory)
|
||
|
||
> 统计日期: 2026-04-12 | 总计48个组件 | 35已使用 ✅ | 10未使用 ❌ | 3待集成 ⚠️
|
||
|
||
### 11.1 基础组件 (`widgets/base/`) — 4个
|
||
|
||
| 文件 | 类名 | 状态 | 引用数 |
|
||
|------|------|------|--------|
|
||
| app_page_scaffold.dart | AppPageScaffold, AppCard | ✅ | 2+ |
|
||
| skeleton_loader.dart | SkeletonLoader | ✅ | 2 |
|
||
| standard_button.dart | StandardButton | ✅ | 2 |
|
||
| tap_liquid_glass_nav.dart | TapLiquidGlassNavigation | ❌ | 0 |
|
||
|
||
### 11.2 Cupertino组件 (`widgets/cupertino/`) — 3个(全部未使用)
|
||
|
||
| 文件 | 类名 | 状态 | 备注 |
|
||
|------|------|------|------|
|
||
| app_button.dart | AppButton | ❌ | 项目主要用CupertinoButton |
|
||
| app_card.dart | AppCard | ❌ | ⚠️与base/app_page_scaffold.dart同名重复 |
|
||
| app_text_field.dart | AppTextField | ❌ | 可后续启用 |
|
||
|
||
### 11.3 毛玻璃组件 (`widgets/glass/`) — 8个
|
||
|
||
| 文件 | 类名 | 状态 | 引用数 |
|
||
|------|------|------|--------|
|
||
| glass_container.dart | GlassContainer | ✅ | 9处 |
|
||
| glass_nav_bar.dart | GlassNavBar | ✅ | 1 |
|
||
| glass_feed_card.dart | GlassFeedCard | ✅ | 1 |
|
||
| glass_search_bar.dart | GlassSearchBar | ✅ | 2 |
|
||
| glass_segmented_control.dart | GlassSegmentedControl | ✅ | 4 |
|
||
| glass_animations.dart | GlassBounce/Shimmer | ❌ | 0 |
|
||
| glass_responsive.dart | GlassResponsive | ❌ | 0 |
|
||
| glass_settings_tile.dart | GlassSettingsGroup/Tile | ❌ | 0 |
|
||
|
||
### 11.4 状态组件 (`widgets/states/`) — 5个
|
||
|
||
| 文件 | 类名 | 状态 | 引用数 |
|
||
|------|------|------|--------|
|
||
| empty_state.dart | EmptyState | ✅ | 11处 |
|
||
| error_state.dart | ErrorState | ✅ | 3处 |
|
||
| offline_banner.dart | OfflineBanner | ⚠️ | 仅自身定义 |
|
||
| standard_dialog.dart | StandardDialog | ✅ | 1 |
|
||
| standard_picker.dart | StandardPicker\<T\> | ❌ | 0 |
|
||
|
||
### 11.5 通用组件 (`widgets/`根目录) — 11个
|
||
|
||
| 文件 | 类名 | 状态 | 引用数 |
|
||
|------|------|------|--------|
|
||
| adaptive_widgets.dart | AdaptiveDestination/Interface | ❌ | 0 |
|
||
| charts_widgets.dart | 营养图表 | ✅ | 2 |
|
||
| custom_widgets.dart | 自定义控件集 | ✅ | 1 |
|
||
| loading_indicator.dart | LoadingIndicator | ⚠️ | 间接依赖 |
|
||
| navigation_widgets.dart | 导航组件 | ✅ | 1 |
|
||
| nutrition_dashboard_card.dart | NutritionDashboardCard | ✅ | 2 |
|
||
| product_card.dart | ProductCard | ⚠️ | 间接依赖 |
|
||
| recipe_card.dart | RecipeCard | ✅ | 7处 |
|
||
| recipe_image.dart | RecipeImage | ✅ | 10处 |
|
||
| responsive_grid.dart | ResponsiveGrid | ⚠️ | 间接依赖 |
|
||
| skeleton_widgets.dart | 骨架屏组件 | ✅ | 1 |
|
||
|
||
### 11.6 菜谱详情组件 (`widgets/recipe_detail/`) — 17个(全部已使用)
|
||
|
||
action_bar, allergen_warning, author_card, category_breadcrumb, cover_image, indices_card, ingredient_details, ingredients_section, meta_info_card, nutrition_section, picid_card, rating_dialog, skeleton_view, statistics_bar, steps_section, tags_section, time_info, title_section
|
||
|
||
### 11.7 未用组件处理建议
|
||
|
||
| 组件 | 建议 |
|
||
|------|------|
|
||
| TapLiquidGlassNavigation | 整合到glass_nav_bar或删除 |
|
||
| cupertino/AppButton/AppCard/AppTextField | 删除cupertino目录,合并AppCard到base |
|
||
| GlassAnimations | 保留,点赞动画可启用 |
|
||
| GlassResponsive | 删除,功能简单可内联 |
|
||
| GlassSettingsGroup/Tile | 保留,设置页改造时启用 |
|
||
| StandardPicker | 保留,表单页可启用 |
|
||
| AdaptiveWidgets | 删除,当前无平板需求 |
|
||
| OfflineBanner | 集成到全局App Shell |
|
||
|
||
---
|
||
|
||
## 变更记录
|
||
|
||
| 日期 | 版本 | 变更内容 |
|
||
|------|------|---------|
|
||
| 2026-04-12 | 1.3 | **压缩重构**: 1182行→~780行;合并设计令牌为紧凑表格;精简ASCII图和操作表;组件清单改为汇总格式 |
|
||
| 2026-04-12 | 1.2 | 新增第十一章「iOS 组件清单」:完整统计48个组件使用状态,按6个分类整理,含处理建议 |
|
||
| 2026-04-09 | 1.1 | 重写完整文档:增加目录、设计原则、动画规范、暗色模式详细参数、响应式规则、实施计划状态追踪 |
|
||
| 2026-04-09 | 1.0 | 初始版本:基础设计方案 |
|