20260702215426

This commit is contained in:
oneao committed 2026-07-02 21:54:26 +08:00
1 parent 2bbeea19fa
commit d0f7f0d3d8
39 files changed
+8341 -2049

No files matched your search

@@ -0,0 +1,316 @@
# 衣服模块 UI 重新设计计划
## 一、问题分析
### 当前存在的问题
1. **卡片嵌套过多**: 页面中大量使用 `Card` 组件嵌套,导致视觉层次混乱
2. **分类页面丢失**: 用户反馈分类管理页面不可用
3. **缺乏 Apple 设计风格**: 当前设计过于传统,缺乏现代感
4. **信息密度过高**: 内容紧凑,缺乏呼吸感
### Apple 设计风格特点
* **极简主义**: 大量留白,减少视觉干扰
* **大卡片设计**: 单张大卡片承载主要内容,避免多层嵌套
* **毛玻璃效果**: 使用半透明背景增加层次感
* **圆润边角**: 使用较大圆角提升亲和力
* **清晰的信息层级**: 通过间距和字号区分主次
* **柔和阴影**: 细阴影增加立体感但不过分
* **全屏图片**: 图片占据更大比例,视觉冲击力强
***
## 二、页面重新设计方案
### 1. 衣服列表页 (`/clothes`)
**设计思路**: 借鉴 Apple Photos/Shop 的网格布局
**结构**:
```
Header (搜索/筛选/统计)
└── MasonryGrid (瀑布流网格)
└── 衣服卡片 (图片 + 名称 + 标签)
└── FAB (悬浮添加按钮)
```
**样式特点**:
* 3列网格布局,自适应高度
* 图片圆角 `rounded-2xl`
* 悬浮按钮带阴影 `shadow-xl`
* 减少卡片边框,使用背景区分
### 2. 衣服详情页 (`/clothes/detail/[id]`)
**设计思路**: 全屏沉浸式设计,借鉴 Apple Music
**结构**:
```
导航栏 (透明背景)
└── 全屏图片区域 (60%高度)
└── 内容区域 (名称/品牌/分类/标签/备注)
└── 分类标签 (胶囊样式)
└── 属性列表 (图标 + 文字)
└── 底部操作栏 (编辑/删除/刷新)
```
**样式特点**:
* 顶部大图占比 60%
* 导航栏滚动时渐变背景
* 无卡片包裹,直接展示内容
* 使用分割线区分不同区域
* 标签使用圆角胶囊样式
### 3. 搭配列表页 (`/clothes/outfit`)
**设计思路**: 横向卡片滑动 + 列表混合布局
**结构**:
```
Header (筛选/统计)
└── Section (精选搭配)
└── 横向滚动卡片
└── Section (全部搭配)
└── 列表卡片
└── FAB (悬浮添加按钮)
```
**样式特点**:
* 精选搭配使用横向滚动
* 列表卡片使用大图+文字布局
* 减少卡片嵌套,扁平化设计
### 4. 搭配详情页 (`/clothes/outfit/detail/[id]`)
**设计思路**: 类似衣服详情页,但增加衣服列表
**结构**:
```
导航栏 (透明背景)
└── 全屏封面图
└── 内容区域
└── 搭配信息
└── 包含衣服列表 (横向滚动)
└── 底部操作栏
```
**样式特点**:
* 衣服列表使用横向滚动卡片
* 无卡片嵌套,直接使用分割线
### 5. 分类管理页 (`/clothes/manage`)
**设计思路**: 列表式管理,借鉴 Apple 设置
**结构**:
```
Header (标题)
└── Section (衣服分类)
└── 分类项 (图标 + 名称 + 操作)
└── Section (衣服标签)
└── 标签组 (可展开)
└── 标签项
└── Section (搭配分类)
└── 分类项
└── Section (搭配标签)
└── 标签组
```
**样式特点**:
* 使用 Section 分隔不同类型
* 分类项使用列表式布局
* 标签组可展开/折叠
* 减少卡片使用,增加留白
***
## 三、文件结构与修改清单
### 需要修改的文件
| 文件路径 | 修改内容 |
| ---------------------------------------------- | ----------------- |
| `src/app/clothes/(tabs)/home/index.tsx` | 重新设计衣服列表页,使用网格布局 |
| `src/app/clothes/detail/[id]/index.tsx` | 重新设计衣服详情页,全屏沉浸式 |
| `src/app/clothes/(tabs)/outfit/index.tsx` | 重新设计搭配列表页,横向+列表混合 |
| `src/app/clothes/outfit/detail/[id]/index.tsx` | 重新设计搭配详情页,横向衣服列表 |
| `src/app/clothes/(tabs)/manage/index.tsx` | 修复分类管理页,列表式设计 |
### 需要新增的文件
| 文件路径 | 说明 |
| --------------------------------------------------- | -------- |
| `src/components/clothing/ClothesGridItem.tsx` | 网格衣服卡片组件 |
| `src/components/clothing/OutfitHorizontalCard.tsx` | 横向搭配卡片组件 |
| `src/components/clothing/ClothesHorizontalCard.tsx` | 横向衣服卡片组件 |
***
## 四、设计规范
### 色彩规范 (沿用项目现有)
* 主色调: `accent` (#22C55E 系)
* 背景: 极浅灰 `oklch(0.98 0 0)`
* 文字: 深灰 `oklch(0.15 0 0)`
* 辅助文字: `gray-500`
* 边框/分隔线: `gray-200/100`
### 圆角规范
* 卡片/容器: `rounded-2xl`
* 按钮/图标: `rounded-full`
* 标签/胶囊: `rounded-full`
### 间距规范
* 页面水平内边距: `px-5` (20px)
* 元素间距: `gap-4`
* 卡片内边距: `px-5 py-4`
### 阴影规范
* 主要卡片: `shadow-sm`
* 悬浮元素: `shadow-md`
* 重要按钮: `shadow-lg`
### 字体规范
* 标题: 18-20px, font-semibold
* 正文: 15px, font-normal
* 辅助文字: 13-14px, font-normal
* 标签/数字: 12px, font-medium
***
## 五、关键设计原则
1. **避免卡片嵌套**: 页面中最多使用一层卡片,避免卡片内套卡片
2. **使用分割线**: 用 `border-b` 或空白区域替代卡片分隔内容
3. **大图优先**: 图片占据更大比例,提升视觉冲击力
4. **毛玻璃效果**: 导航栏和底部操作栏使用半透明背景
5. **留白设计**: 增加元素间距,提升呼吸感
6. **统一的交互反馈**: 按钮按压缩放、列表项点击高亮
***
## 六、实施步骤
### 步骤 1: 创建基础组件
* 创建 `ClothesGridItem` 网格卡片组件
* 创建 `OutfitHorizontalCard` 横向搭配卡片
* 创建 `ClothesHorizontalCard` 横向衣服卡片
### 步骤 2: 重新设计衣服列表页
* 使用网格布局替代卡片列表
* 添加搜索和筛选功能
* 添加悬浮添加按钮
### 步骤 3: 重新设计衣服详情页
* 全屏图片布局
* 导航栏透明渐变
* 底部操作栏
* 无卡片嵌套设计
### 步骤 4: 重新设计搭配列表页
* 精选搭配横向滚动
* 全部搭配列表布局
* 添加悬浮添加按钮
### 步骤 5: 重新设计搭配详情页
* 全屏封面图
* 横向衣服列表
* 底部操作栏
### 步骤 6: 修复分类管理页
* 列表式设计替代卡片式
* 使用 Section 分隔不同类型
* 修复分类管理功能
### 步骤 7: 验证和测试
* TypeScript 类型检查
* 运行构建验证
* 检查样式一致性
***
## 七、风险与注意事项
### 潜在风险
1. **性能问题**: 网格布局可能影响性能,需使用虚拟列表
2. **兼容性问题**: 毛玻璃效果在 Android 上可能表现不同
3. **导航栏透明度**: 需要处理滚动时的背景渐变
### 注意事项
1. **保持一致性**: 与项目现有设计规范保持一致
2. **响应式设计**: 确保不同屏幕尺寸下正常显示
3. **无障碍访问**: 确保标签和按钮有足够的对比度
4. **动画性能**: 使用 React Native Reanimated 优化动画