feat: add project icon picker component and integrate with project management
- Implemented ProjectIconPicker component for selecting project icons. - Created ProjectIcon component to display selected icons. - Updated calendar page to remove unused PageHeading component. - Modified growth page to enhance UI and improve text clarity. - Refactored index page to include project icons and improve layout. - Added mine page for user profile management with avatar selection. - Introduced projects-sort page for managing project order with drag-and-drop functionality. - Enhanced projects page to allow icon selection when adding or editing projects. - Updated record page to streamline user experience and improve form actions. - Adjusted practice service to support project icon management. - Added tests for project saving functionality to ensure correct handling of icons. - Updated global type definitions to support SVG and PNG imports.
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
| 主文字 | `#3e3435` | 正文、名称和标题,承担主要阅读信息 |
|
||||
| 次要文字 | `#827572` | 日期、解释与辅助说明,仍需清晰可读 |
|
||||
| 主强调色(Primary) | `#9c5268` | 主要操作、选中状态、记录时长和图表聚焦项 |
|
||||
| 品牌小字 | `#946d76` | 低调的品牌标记,不替代页面标题 |
|
||||
| 汇总标签 | `#946d76` | 标识今天或累计练习,不替代汇总数字 |
|
||||
| 汇总表面 / 描边 / 数字 | `#f1e7e3` / `#eddfda` / `#864b5e` | 承载今天或累计练习的核心汇总,与普通记录形成层级 |
|
||||
| 输入表面 / 描边 / 文字 | `#f8f4ef` / `#e8dfd8` / `#44383b` | 将可填写区域与外层面板区分 |
|
||||
| 普通按钮文字 / 描边 | `#655656` / `#e5dcd6` | 辅助操作,背景沿用内容表面色 |
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
| 角色 | 字号 / 字重 | 使用规则 |
|
||||
| --- | --- | --- |
|
||||
| 页面标题 | `26px / 600` | 表达当前页面目的;行高 `1.35`,字距 `-0.5px` |
|
||||
| 页面标题 | 沿用原生导航栏 | 内容区域不重复放置页面大标题 |
|
||||
| 核心汇总数字 | 时长 `29px / 600`,统计 `30px / 600` | 保留已有两种汇总组件;时长行高 `1.5` |
|
||||
| 区块标题与项目入口名称 | `17px / 600` | 组织内容或标识可进入的项目 |
|
||||
| 正文与记录名称 | `15px`,记录名称字重 `500` | 支持较长名称和实际内容 |
|
||||
@@ -69,15 +69,15 @@
|
||||
| 表单标签 | `14px / 500` | 清楚表达字段含义 |
|
||||
| 说明、记录时长与笔记 | `13px` | 作为局部辅助层级,不与汇总数字竞争 |
|
||||
| 紧凑辅助信息与单位 | `12px` | 日期、单位、帮助文字等 |
|
||||
| 空状态标题 | `16px / 500` | 配合 `13px` 说明文字,说明行高 `1.8` |
|
||||
| 空状态标题 | `16px / 500` | 简短说明当前无数据;可执行的下一步使用明确按钮 |
|
||||
|
||||
长项目名称、笔记和汇总时长允许换行,保留笔记的原始换行,不用省略号隐藏主要信息。数字必须带上可理解的单位,例如「1 小时 30 分钟」「2 次」。
|
||||
|
||||
现状中品牌标记、项目编号及部分辅助文字使用 `10–11px`,趋势日期标签使用周视图 `10px`、月视图 `8px`。这些局部值不作为新正文或操作标签的默认字号;小字号和图表标签的可读性仍需在目标设备验证。
|
||||
现状中汇总标签及部分辅助文字使用 `10–11px`,趋势日期标签使用周视图 `10px`、月视图 `8px`。这些局部值不作为新正文或操作标签的默认字号;小字号和图表标签的可读性仍需在目标设备验证。
|
||||
|
||||
## Layout
|
||||
|
||||
页面以纵向单栏组织一个主要任务;两列用于并列的项目入口或简短指标,七列仅用于日历。新增页面按「页面目的 → 主要内容或输入 → 相关操作与反馈」建立阅读顺序,避免为了填满画面增加区块。
|
||||
页面以纵向单栏组织一个主要任务;项目入口和管理列表均为一行一张卡片,两列仅用于简短指标,七列仅用于日历。新增页面按「主要内容或输入 → 相关操作与反馈」建立阅读顺序,避免为了填满画面增加区块。
|
||||
|
||||
尺寸均为 `375px` 设计宽度下的源码设计尺寸,由现有构建配置转换为小程序单位,不等同于设备截图的物理像素。页面基准内边距为上 `20px`、左右 `18px`、下 `32px` 加底部安全区。
|
||||
|
||||
@@ -94,11 +94,11 @@
|
||||
|
||||
### 导航与内容组织
|
||||
|
||||
页面标题区使用品牌小字、主标题和简短副标题。管理、补记等局部入口靠近所属区块,主要提交操作放在完整输入之后。
|
||||
页面用途由原生导航栏说明,内容直接从数据或字段开始,不放页面大标题、品牌小字、抒情标题或副标题。管理、补记等局部入口靠近所属区块,表单主操作统一固定在底部。
|
||||
|
||||
当前一级导航为「记录、日历、成长」,使用文字 TabBar;练习记录和项目管理为二级页面。延续这一层级,新页面不自行增加一套全局导航。
|
||||
|
||||
快捷按钮允许换行,长内容允许撑高,底部内容保留滚动与安全区。表单操作跟随内容滚动;键盘出现时的可达性属于验收事项,不能仅凭静态布局认定已适配。
|
||||
快捷按钮允许换行,长内容允许撑高。编辑页面底部固定一行两个等宽按钮,左侧「取消」、右侧「保存」,间距 `12px`。操作栏下方保留安全区,页面底部预留 `100px` 加安全区,确保末尾内容可以滚动到操作栏上方。键盘出现时的可达性属于验收事项,不能仅凭静态布局认定已适配。
|
||||
|
||||
## Elevation & Depth
|
||||
|
||||
@@ -114,10 +114,11 @@
|
||||
| --- | --- | --- | --- |
|
||||
| 通用面板 | `18px` | `18px` | 表单或成组内容的默认容器 |
|
||||
| 核心汇总 | `21px` | 上下 `23px`、左右 `22px` | 承载少量重点数字,留白比普通内容更充裕 |
|
||||
| 项目入口 | `17px` | 上下 `15px`、左右 `16px` | 两列排列,最小高度 `126px`,支持名称换行 |
|
||||
| 项目入口 | `17px` | 上下 `10px`、左右 `16px` | 一行一张,名称前可放 `32px` 项目图标;高度由内容决定,支持名称换行 |
|
||||
| 项目管理条目 | `17px` | 上下 `8px`、左右 `16px` | 名称与操作按钮同排;高度由内容决定 |
|
||||
| 练习记录 | `16px` | 上下 `16px`、左右 `18px` | 可连续浏览的独立记录 |
|
||||
| 日历面板 | `18px` | 上下 `16px`、左右 `12px` | 沿用面板外形,为七列日期留出横向空间 |
|
||||
| 输入区域 | `11px` | 上下 `12px`、左右 `14px` | 位于面板内,明确字段边界 |
|
||||
| 输入区域 | `11px` | 左右 `14px`;单行输入上下 `0`,选择区域与笔记上下 `12px` | 单行原生输入依靠高度定位文字,避免垂直内边距使文字下移 |
|
||||
| 状态提示条 | `12px` | 上下 `13px`、左右 `15px` | 紧贴相关操作提供短反馈 |
|
||||
|
||||
按钮圆角为 `12px`,日期选中区域为 `13px`。这些差异是现有组件的基准,不构成一套可按大小任意套用的全局圆角等级。需要新容器时,按用途复用上表,避免再增加近似数值。
|
||||
@@ -126,9 +127,9 @@
|
||||
|
||||
### 操作按钮
|
||||
|
||||
主要提交使用灰玫瑰实心按钮;快捷选项与重试使用描边按钮;管理、取消、更正等辅助入口使用文字按钮。危险操作使用危险文字样式,并在确认时说明后果。
|
||||
主要提交使用灰玫瑰实心按钮;底部「取消」与快捷选项使用描边按钮;管理、更正等辅助入口使用文字按钮。危险操作使用危险文字样式,并在确认时说明后果。
|
||||
|
||||
表单提交沿用中号按钮,高度 `44px`、字号 `16px`;行内操作和切换沿用小号按钮,高度 `32px`、字号 `13px`。需要独占一行的主要提交按钮填满容器宽度。提交中显示加载状态并阻止重复操作,不能只靠按钮文字变化表达等待。
|
||||
表单底部两个按钮沿用中号,高度 `44px`、字号 `16px`,各填满所在的半行;行内操作和切换沿用小号按钮,高度 `32px`、字号 `13px`。提交中显示加载状态并阻止重复操作,不能只靠按钮文字变化表达等待。
|
||||
|
||||
复用现有按钮组件及主题;按下、禁用和加载的具体表现沿用组件行为,不在页面上另造一套状态样式。
|
||||
|
||||
@@ -136,13 +137,13 @@
|
||||
|
||||
字段采用「上方标签 + 下方完整输入区域」,占位文字仅补充示例或提示。帮助文字靠近字段,字数计数置于笔记区下方右侧。
|
||||
|
||||
普通输入高度 `48px`;选择区域最小高度 `48px`,允许长内容撑高;笔记区沿用 `140px` 高度。标签与字段保持清楚关联,字段组之间留出更大间距。主要提交与取消放在表单内容之后,删除入口与保存操作分开。
|
||||
普通输入高度 `48px`;选择区域最小高度 `48px`,允许长内容撑高;笔记区沿用 `140px` 高度。标签与字段保持清楚关联,字段组之间留出更大间距。主要提交与取消使用固定底部操作栏,删除入口留在内容区,与保存操作分开。
|
||||
|
||||
### 卡片与列表
|
||||
|
||||
项目卡片以名称为主体,编号和操作提示保持次要。记录卡片先展示项目名与时长,再展示日期、归档标记与更正入口;笔记置于下方,以细线和留白分隔。长名称优先获得可换行空间。
|
||||
项目入口卡片展示名称与用户选择的图标,不放编号或重复的操作提示,不设用于装饰留白的最小高度。图标采用灰玫瑰线描和浅色填充,以 `32px` 方形置于名称前;未选择或无法识别图标时不占位。记录卡片先展示项目名与时长,再展示日期、归档标记与更正入口;笔记置于下方,以细线和留白分隔。长名称优先获得可换行空间。
|
||||
|
||||
连续的管理条目放在同一个面板内,用细分隔线区分行;每项的改名、移除入口靠近项目名称与状态。归档状态用文字标注,不仅通过弱化颜色表达。
|
||||
管理条目每项独立成卡,以间距区分;图标、名称、编辑和移除按钮放在同一行,不附加重复的历史记录说明。编辑表单中可选择或取消图标,底部选择面板按「基础练习、专业动作、物件」分类;名称与图标一并保存。移除的归档或删除后果在确认弹窗中说明。历史记录中的归档状态仍用文字标注。
|
||||
|
||||
### 日历与图表
|
||||
|
||||
@@ -158,13 +159,13 @@
|
||||
| --- | --- |
|
||||
| 加载中 | 在内容区域说明正在读取,避免暂时展示成空记录 |
|
||||
| 读取失败 | 说明失败并提供重试入口,与无数据状态区分 |
|
||||
| 没有数据 | 简短标题与解释;有可执行的下一步时提供明确入口 |
|
||||
| 没有数据 | 简短说明无数据;有可执行的下一步时提供明确入口 |
|
||||
| 表单错误 | 保留输入,以错误提示解释需要处理的问题 |
|
||||
| 操作成功 | 结果确认后再显示成功提示;反馈靠近操作或在返回后呈现 |
|
||||
| 保存结果未确认 | 保留提交内容,明确说明尚未确认,并提供重试确认入口 |
|
||||
| 删除或移除 | 确认前说明后果,明确区分删除记录与归档项目 |
|
||||
|
||||
文案使用具体动作,例如「保存练习」「补记练习」「取消并返回」。空状态可以写「休息也是日常。漏记了一堂课,也可以补在这天。」时长说明保留「时长记录的是投入,不是技术水平」的含义。
|
||||
按钮文案使用简短动作,例如「保存」「取消」「删除」。保存结果未确认时,主按钮使用「重试」,提示区说明需要确认的结果,并禁用取消以保留提交保护。空状态使用「暂无记录」等直接描述;不添加鼓励性口号、抒情说明或重复引导。保留字段限制、图表含义、错误反馈及危险操作后果等必要说明。
|
||||
|
||||
## Do's and Don'ts
|
||||
|
||||
@@ -186,6 +187,6 @@
|
||||
- [全局样式](miniprogram/src/app.scss):实际颜色、字号、间距与按钮主题映射。
|
||||
- [构建配置](miniprogram/config/index.ts):设计宽度与尺寸转换配置。
|
||||
- [导航配置](miniprogram/src/app.config.ts):原生导航与底部导航。
|
||||
- [公共组件](miniprogram/src/components/common.tsx):页面标题、加载与空状态、记录卡片及按钮复用入口。
|
||||
- [公共组件](miniprogram/src/components/common.tsx):底部表单操作栏、加载与空状态、记录卡片及按钮复用入口。
|
||||
|
||||
新增页面优先遵循本文件的使用规则并复用现有组件。发现文档与实现不一致时,明确差异及其原因,不直接将偶然实现提升为通用规则;有意调整视觉语言时,同步更新相关规则和对应样式。
|
||||
|
||||
Reference in New Issue
Block a user