This commit is contained in:
2026-03-23 02:43:35 +08:00
parent a27ee426db
commit a8f9882e54
18 changed files with 1368 additions and 418 deletions

View File

@@ -10,18 +10,17 @@
- **动画**: flutter_animate
- **状态管理**: Provider
## 技术栈详情
## 当前阶段: Phase 6 主题系统深度优化
### 核心依赖
- Flutter SDK: >=3.0.0 <4.0.0
- shadcn_ui: ^0.52.1
- provider: ^6.1.1
- dio: ^5.4.0
- shared_preferences: ^2.2.2
### 目标
设计并实现一套专业、一致、响应式的主题系统,确保:
- 视觉一致性
- 良好的可读性 (对比度 >= 4.5:1)
- **杜绝文字和背景颜色一样无法区分的情况**
### 工具库
- intl: 国际化
- decimal: 精确计算
### 参考文件
- `specs/theme-design.md` - 主题设计规范
- `IMPLEMENTATION_PLAN.md` - 实施计划 (Phase 6 部分)
## 开发命令
@@ -29,12 +28,11 @@
# 获取依赖
flutter pub get
# 运行应用
flutter run
# 运行应用 (Chrome)
flutter run -d chrome
# 构建生产版本
flutter build apk
flutter build ios
# 运行应用 (macOS)
flutter run -d macos
# 分析代码
flutter analyze
@@ -47,122 +45,104 @@ flutter test
```
lib/
├── core/ # 核心功能
│ ├── constants/ # 常量
│ ├── network/ # 网络请求
├── storage/ # 本地存储
── theme/ # 主题配置
├── data/ # 数据层
│ ├── models/ # 数据模型
│ └── services/ # API 服务
├── providers/ # 状态管理
├── routes/ # 路由配置
├── ui/ # UI 层
── pages/ # 页面组件
└── main.dart # 应用入口
├── core/
│ ├── constants/
│ ├── app_colors.dart # 颜色定义 (需重构)
│ └── api_endpoints.dart
── theme/
│ │ ├── app_theme.dart # 主题配置 (需重构)
│ ├── app_text_styles.dart # 文字样式 (待创建)
│ └── app_spacing.dart # 间距圆角 (待创建)
│ ├── network/
│ └── storage/
├── data/
── models/
│ └── services/
├── providers/
├── routes/
├── ui/
│ ├── shared/
│ │ └── ui_constants.dart # 整合导出
│ ├── components/
│ │ ├── coin_card.dart # 有硬编码颜色
│ │ ├── asset_card.dart
│ │ └── trade_button.dart
│ └── pages/
│ ├── auth/
│ ├── main/
│ ├── home/
│ ├── market/
│ ├── trade/
│ ├── asset/
│ ├── mine/
│ └── orders/
└── main.dart
```
## 主要页面
## 颜色系统设计
### 1. 认证模块
- `login_page.dart` - 登录页(需要重构)
- `login_page_shadcn.dart` - shadcn 版本示例(已完成)
- `register_page.dart` - 注册页(需要重构)
### 主色调
```dart
primary: #00D4AA // 青绿色 (品牌色)
primaryLight: #00E6B8
primaryDark: #00B894
```
### 2. 主框架
- `main_page.dart` - 主页面(需要重构)
- `main_page_shadcn.dart` - shadcn 版本示例(已完成)
### 涨跌色
```dart
up: #00C853 // 涨/买入 (绿色)
down: #FF5252 // 跌/卖出 (红色)
```
### 3. 功能页面
- `home_page.dart` - 首页
- `market_page.dart` - 行情
- `trade_page.dart` - 交易
- `asset_page.dart` - 资产
- `mine_page.dart` - 我的
### 背景色 (深色主题)
```dart
background: #0F0F1A // 页面背景
cardBackground: #1A1A2E // 卡片背景
inputBackground: #16213E // 输入框背景
```
## 当前状态
### 文字颜色
```dart
textPrimary: #FFFFFF // 主要文字
textSecondary: #B0B0C0 // 次要文字
textHint: #6B6B80 // 提示文字
textDisabled: #4A4A5A // 禁用文字
```
### 已完成
- ✅ shadcn_ui 集成
- ✅ main.dart 更新为 ShadApp
- ✅ 登录页 shadcn 示例
- ✅ 主页面 shadcn 示例
- ✅ 主题配置Slate 深色)
## 禁止事项
### 进行中
- ⏳ 替换原文件为 shadcn 版本
- ⏳ 重构剩余页面
- ⏳ 创建自定义组件
### 待开始
-动画优化
- ❌ 性能优化
- ❌ 测试覆盖
## 重构注意事项
### 已有的 shadcn 组件
shadcn_ui 提供的组件:
- ShadApp, ShadTheme
- ShadButton (多种变体)
- ShadCard, ShadDialog
- ShadInputFormField, ShadSelect
- ShadBadge, ShadAvatar
- ShadListTile, ShadSwitch
- 等等...
### 需要统一的样式
1. **按钮**: 所有按钮使用 ShadButton
2. **卡片**: 所有卡片使用 ShadCard
3. **输入**: 所有输入框使用 ShadInputFormField
4. **图标**: 所有图标使用 LucideIcons
5. **颜色**: 使用 ShadTheme 获取颜色
### 禁止修改
- ❌ API 服务逻辑
- ❌ Provider 状态管理
- ❌ 数据模型结构
- ❌ 路由逻辑
- ❌ 文字与背景颜色相同
- ❌ 低对比度组合 (对比度 < 4.5)
- ❌ 仅用颜色区分状态
- ❌ 过小的触摸目标 (< 44px)
- ❌ 不一致的组件样式
- ❌ 硬编码颜色值
-修改业务逻辑/API/Provider
## 测试要点
1. **功能测试**
- 用户登录/注册
- 查看行情数据
- 进行交易操作
- 查看资产信息
- 修改个人设置
1. **对比度检查**
- 所有文字/背景组合 >= 4.5:1
- 使用对比度检查工具验证
2. **视觉测试**
- 深色模式检查
- 浅色模式检查
- 动画流畅度
- 响应式布局
2. **视觉一致性**
- 所有页面风格统一
- 组件样式一致
3. **构建测试**
- Dart 分析通过
- Flutter 构建成功
- 无运行时错误
3. **功能验证**
- `flutter analyze` 无错误
- 应用可正常运行
## 学习要点
## 已完成的工作
- 如果遇到新的 UI 模式,记录到本文档
- 如果发现业务逻辑依赖,记录到本文档
- 如果需要新的设计 token记录到本文档
- 如果创建新的自定义组件,记录到本文档
- ✅ shadcn_ui 集成
- ✅ 所有页面已重构为 shadcn 组件
- ✅ 基础主题配置
## 已知问题
## 当前任务
1. **登录页**: 有两个版本,需要用 shadcn 版本替换原版
2. **主页面**: 有两个版本,需要用 shadcn 版本替换原版
3. **图标**: 部分页面仍使用 Material Icons需要替换为 LucideIcons
4. **颜色**: 部分地方硬编码颜色,需要使用主题色
## 下一步计划
1. 替换 main_page.dart 和 login_page.dart
2. 重构 home_page.dart
3. 重构 market_page.dart 和 trade_page.dart
4. 重构 asset_page.dart 和 mine_page.dart
5. 创建自定义组件CoinCard, TradeButton 等)
6. 添加动画优化
1. 重构颜色系统 (app_colors.dart)
2. 清理硬编码颜色
3. 创建文字样式系统
4. 创建间距圆角系统
5. 更新所有页面使用新主题