# 衣服模块 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 优化动画