Files
2026-01-29 23:31:12 +08:00

111 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Card UI高层规范
## 1. 背景与目标
当前卡片页Home/情绪卡片滑动页)右上角需要提供两个入口:
- **切换主题**:在「风景」与「颜色」两种主题间切换
- **个人主页**:以弹窗形式打开个人主页(样式与主题弹窗一致的弹窗体系)
本需求聚焦 **UI 视觉统一****交互逻辑收敛**,让用户在卡片页可以快速切换主题、进入个人主页设置与通用入口。
### 目标
- **右上角双按钮**:两个圆形图标按钮常驻卡片页右上角
- **主题弹窗**:可选择「风景 / 颜色」两种主题,并即时生效
- **个人主页弹窗**:点击进入个人主页弹窗(与主题弹窗同一套弹窗/遮罩/圆角规范)
- **资源统一**:图标资源使用 `client/assets/images/home/``theme.svg``my.svg`
### 非目标(本阶段不做)
- 不引入复杂的主题系统(如多套配色、动态主题下载、远端配置等)
- 不做账号体系/登录注册(个人主页弹窗仅作为本地个人中心入口与设置集合)
- 不做完整的卡片滑动动效重构(仅限卡片页头部与相关弹窗/局部逻辑优化)
## 2. 范围与交付物
### 范围
- 卡片页Home头部 UI右上角两个圆形 icon 按钮
- 主题弹窗:展示两种主题选项(风景/颜色)并支持选择
- 个人主页弹窗:展示个人信息与快捷入口(以弹窗呈现)
- 主题状态:本地持久化 + 启动后读取 + 在卡片页即时反映
### 交付物
- 卡片页头部 UI 更新(两按钮替换/补齐)
- 主题弹窗与个人主页弹窗的 UI 与交互逻辑(共用弹窗规范)
- 主题选择的本地存储 key 约定与读写逻辑
- (可选)补充 i18n key按钮无文本但弹窗标题/选项文案需多语言)
## 3. 视觉与交互需求
### 3.1 右上角按钮(主题 / 我的)
- **位置**:卡片页右上角,两个按钮水平排列,间距 812按视觉微调
- **形状**:圆形按钮,背景为浅色圆底(与现有 UI 风格一致),点击区域需足够大(建议 `hitSlop >= 10`
- **图标**
- 主题:`client/assets/images/home/theme.svg`
- 我的:`client/assets/images/home/my.svg`
- **点击反馈**:按平台规范(透明度/水波纹)即可
### 3.2 主题弹窗
- **打开方式**:点击右上角「主题」按钮打开
- **样式**:与现有弹窗体系一致(遮罩 + 圆角容器),可做底部弹窗或中间弹窗,需与设计稿一致
- **内容**
- 标题:主题
- 选项:
- 风景(预览图/缩略图)
- 颜色(预览图/缩略图)
- 当前选中项需有明显高亮(描边/勾选/阴影等,按设计稿)
- **交互**
- 点击选项即切换主题并立即生效
- 点击遮罩或关闭按钮关闭弹窗
### 3.3 个人主页弹窗(我的)
- **打开方式**:点击右上角「我的」按钮打开
- **样式**:与主题弹窗同一套弹窗规范(遮罩、圆角、关闭按钮/手势)
- **内容建议(以现有设计为准)**
- 顶部区域:头像/插画 + 用户昵称(本地默认名或 onboarding 的 name
- 快捷卡片:我的喜欢、小组件(或其他产品定义入口)
- 通用列表:每日提醒、隐私政策、使用条款、语言
- **交互**
- 列表项点击进入对应页面/二级弹窗(实现阶段在 plan/tasks 中细化)
- 关闭方式同主题弹窗
## 4. 主题逻辑与状态管理
### 4.1 主题类型
- `scenery`:风景主题(以图片/风景背景为主)
- `color`:颜色主题(以纯色/渐变色块为主)
### 4.2 持久化 Key建议
- `ui.theme.mode`: `'scenery' | 'color'`
### 4.3 生效范围(建议)
- 最低要求:卡片页背景/卡片背景/主题弹窗预览在切换后 **立即更新**
- 可扩展:全局统一(如 Settings/我的页)在后续版本做全局 Theme Provider
## 5. 验收标准
- 卡片页右上角展示两个圆形图标按钮,点击热区合理
- 点击主题按钮:
- 打开主题弹窗,显示「风景/颜色」两项
- 切换后立即生效并持久化,重新进入 App 仍保持上次选择
- 点击我的按钮:
- 打开个人主页弹窗
- 弹窗样式(遮罩/圆角/关闭)与主题弹窗一致
- 图标资源从 `client/assets/images/home/` 加载,显示清晰无拉伸
## 6. 风险与注意事项
- **SVG 兼容**:需要确认当前项目 SVG 渲染方案(如 `react-native-svg` / `expo` 方案),避免不同平台显示差异
- **路由与弹窗体系**:若使用 `expo-router``Stack` modal需要统一交互遮罩、圆角、返回手势以匹配设计
- **多语言**:弹窗标题、列表项文案需走 i18n`zh-CN/en/es/pt/zh-TW`