qia/docs/ui-spec.md
ddshi 2dbb1069a6 feat: 初始化项目结构和认证系统
- 添加React + Vite前端项目 (client)
- 添加Node.js + Express后端项目 (server)
- 实现JWT认证系统 (注册/登录/刷新Token)
- 添加Prisma ORM配置 (SQLite/PostgreSQL)
- 配置Tailwind CSS和Mantine组件库

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
2026-01-29 15:08:50 +08:00

41 KiB
Raw Blame History

掐日子qiaUI 设计规范

版本v1.0.0 更新日期2026-01-29 设计风格:苹果公司风格,浅色系


1 设计原则

1.1 整体设计理念

掐日子的设计遵循"简洁、高效、温暖"三大核心理念以苹果Human Interface Guidelines为设计准则打造轻便易用的日期管理工具。

简洁性原则:去除一切不必要的视觉元素,让用户专注于核心内容。界面采用大量留白,通过清晰的层级结构引导用户视线,避免信息过载带来的认知负担。每一个设计决策都经过深思熟虑,确保每个元素都有其存在的必要性。

高效性原则以用户任务为中心优化操作流程减少用户点击次数。AI智能解析功能让添加纪念日和提醒变得像发消息一样简单自然语言交互降低了学习成本。快速响应和流畅的动效设计提升了整体使用效率。

温暖性原则:通过精心设计的细节传递产品的温度。倒计时显示让用户感受到时间的珍贵,贴心的到期提醒帮助用户不再错过重要日期。整体视觉风格采用温暖的浅色调,营造舒适愉悦的使用氛围。

1.2 视觉风格定义

掐日子采用苹果公司风格的浅色系设计语言,具体特征如下:

设计属性 规范定义
设计风格 苹果扁平化设计,轻拟物元素
主色调 系统蓝品牌色 #007AFF
背景色 浅灰白色 #FFFFFF / #F5F5F7
圆角风格 中等圆角8px-16px
阴影效果 柔和投影,轻量级层级阴影
字体风格 系统字体,无衬线清晰可读
图标风格 线性图标,圆角处理

2 颜色系统

2.1 主色调(品牌色)

品牌色是产品视觉识别的核心,应用于主要操作按钮、链接、选中状态等关键元素。

颜色名称 色值 CSS变量 使用场景
品牌主色 #007AFF --color-primary 主要按钮背景、链接、选中状态、图标填充
品牌浅色 #EAF3FF --color-primary-light 背景色、悬停背景、选中框背景
品牌深色 #0056CC --color-primary-dark 按下状态、disabled状态

2.2 辅助色

辅助色用于补充品牌色,在特定场景下传达特定含义。

颜色名称 色值 CSS变量 使用场景
紫色 #AF52DE --color-purple AI功能标识、特殊纪念日
绿色 #34C759 --color-green 完成状态、成功提示
橙色 #FF9500 --color-orange 警告提示、待处理提醒
红色 #FF3B30 --color-red 错误状态、删除操作、已错过提醒
黄色 #FFCC00 --color-yellow 提醒标识、重要日期高亮

2.3 中性色

中性色用于文字、背景、边框等基础UI元素构建界面的层次结构。

颜色名称 色值 CSS变量 使用场景
文字主色 #1D1D1F --color-text-primary 标题、重要内容
文字次色 #48484A --color-text-secondary 正文内容
文字三级 #86868B --color-text-tertiary 辅助说明、时间显示
文字占位 #C7C7CC --color-text-placeholder 输入框占位符、空状态
背景白色 #FFFFFF --color-bg-white 卡片、弹窗背景
背景浅灰 #F5F5F7 --color-bg-light 页面背景、分组标题背景
背景更深灰 #E5E5EA --color-bg-darker 分割线、边框
边框颜色 #C6C6C8 --color-border 输入框边框、分隔线

2.4 功能色

功能色用于传达操作结果的反馈信息。

功能 色值 CSS变量 应用示例
成功 #34C759 --color-success 完成checkmark、创建成功提示
警告 #FF9500 --color-warning 即将过期提醒、需要注意
错误 #FF3B30 --color-error 删除确认、表单验证失败
信息 #007AFF --color-info 普通提示、新功能引导

2.5 语义色

语义色用于区分不同类型的内容,增强信息的可识别性。

内容类型 色值 CSS变量 使用场景
纪念日色条 #AF52DE --color-anniversary 纪念日卡片左侧色条
提醒色条 #007AFF --color-reminder 提醒卡片左侧色条
便签色条 #34C759 --color-note 便签区域标识
AI对话色 #5856D6 --color-ai AI消息气泡、对话框
农历标识 #FF9500 --color-lunar 农历日期文字颜色
法定节假日 #FF3B30 --color-holiday 节假日标签

2.6 颜色令牌汇总

:root {
  /* 品牌色 */
  --color-primary: #007AFF;
  --color-primary-light: #EAF3FF;
  --color-primary-dark: #0056CC;

  /* 辅助色 */
  --color-purple: #AF52DE;
  --color-green: #34C759;
  --color-orange: #FF9500;
  --color-red: #FF3B30;
  --color-yellow: #FFCC00;

  /* 中性色 */
  --color-text-primary: #1D1D1F;
  --color-text-secondary: #48484A;
  --color-text-tertiary: #86868B;
  --color-text-placeholder: #C7C7CC;
  --color-bg-white: #FFFFFF;
  --color-bg-light: #F5F5F7;
  --color-bg-darker: #E5E5EA;
  --color-border: #C6C6C8;

  /* 功能色 */
  --color-success: #34C759;
  --color-warning: #FF9500;
  --color-error: #FF3B30;
  --color-info: #007AFF;

  /* 语义色 */
  --color-anniversary: #AF52DE;
  --color-reminder: #007AFF;
  --color-note: #34C759;
  --color-ai: #5856D6;
  --color-lunar: #FF9500;
  --color-holiday: #FF3B30;
}

3 字体系统

3.1 字体家族

采用系统默认字体,确保在不同平台上的最佳可读性和一致性。

字体类型 字体名称 CSS声明 说明
主字体 -apple-system font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif iOS/macOS系统字体
中文字体 PingFang SC 'PingFang SC', 'Microsoft YaHei', sans-serif 苹方字体Mac/微软雅黑Windows
等宽字体 SF Mono font-family: 'SF Mono', Monaco, Menlo, monospace 用于代码展示

3.2 字号层级

建立清晰的字号层级体系,确保信息层次的视觉区分。

字号名称 字号大小 行高 字重 CSS变量 使用场景
超大标题 34px 41px 700 --font-size-xxl 宣传页主标题
大标题 28px 34px 700 --font-size-xl 页面主标题
中标题 22px 28px 600 --font-size-lg 区域标题、卡片标题
小标题 18px 24px 600 --font-size-md 分组标题、重要内容
正文字 16px 24px 400 --font-size-base 正文内容、输入文字
小正文 14px 20px 400 --font-size-sm 次要说明、卡片内容
辅助文字 12px 16px 400 --font-size-xs 时间标签、占位符
最小文字 10px 14px 400 --font-size-xxs 徽章标签、数量标识

3.3 字重规范

字重 CSS值 使用场景
700 (Bold) 700 / bold 大标题、区域标题、数字强调
600 (Semibold) 600 小标题、卡片标题、需要强调的文字
400 (Regular) 400 / normal 正文内容、辅助说明

3.4 行高规范

行高与字号保持合理比例,确保文本的可读性。

字号范围 推荐行高 行高/字号比例
28px及以上 字号 + 6-8px 约 1.2
18-22px 字号 + 6px 约 1.3
14-16px 字号 + 8px 约 1.5
12px及以下 字号 + 4px 约 1.4

3.5 字体令牌汇总

:root {
  /* 字号 */
  --font-size-xxl: 34px;
  --font-size-xl: 28px;
  --font-size-lg: 22px;
  --font-size-md: 18px;
  --font-size-base: 16px;
  --font-size-sm: 14px;
  --font-size-xs: 12px;
  --font-size-xxs: 10px;

  /* 行高 */
  --line-height-xxl: 41px;
  --line-height-xl: 34px;
  --line-height-lg: 28px;
  --line-height-md: 24px;
  --line-height-base: 24px;
  --line-height-sm: 20px;
  --line-height-xs: 16px;
  --line-height-xxs: 14px;

  /* 字重 */
  --font-weight-bold: 700;
  --font-weight-semibold: 600;
  --font-weight-regular: 400;
}

4 间距系统

4.1 基础间距单位

以 4px 作为基础间距单位,所有间距值均为 4px 的倍数。

间距名称 间距值 CSS变量 用途
间距-xs 4px --spacing-xs 元素内部最小间距
间距-sm 8px --spacing-sm 紧密相关的元素间距
间距-md 16px --spacing-md 标准间距
间距-lg 24px --spacing-lg 较大间距
间距-xl 32px --spacing-xl 大间距
间距-2xl 48px --spacing-2xl 区块间距
间距-3xl 64px --spacing-3xl 页面边距

4.2 组件内间距

组件类型 水平 padding 垂直 padding CSS变量
卡片类 16px 12px --card-padding
按钮类 16px 8px --button-padding
输入框 12px 10px --input-padding
弹窗内容 24px 20px --modal-padding
分组标题 16px 8px --section-padding

4.3 组件间距

场景 间距值 CSS变量
卡片之间 12px --gap-card
分组之间 24px --gap-section
列表项之间 8px --gap-item
表单项之间 16px --gap-form
按钮之间 12px --gap-button
图标与文字 8px --gap-icon-text
标题与内容 8px --gap-title-content

4.4 页面边距

页面类型 水平边距 垂直边距 最大宽度
宣传页 24px 0 1200px
登录/注册页 24px 0 400px
Home页 24px 0 1200px
弹窗 24px 0 480px

4.5 间距令牌汇总

:root {
  /* 基础间距 */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 48px;
  --spacing-3xl: 64px;

  /* 组件内间距 */
  --card-padding: 16px 12px;
  --button-padding: 8px 16px;
  --input-padding: 10px 12px;
  --modal-padding: 24px 20px;
  --section-padding: 8px 16px;

  /* 组件间距 */
  --gap-card: 12px;
  --gap-section: 24px;
  --gap-item: 8px;
  --gap-form: 16px;
  --gap-button: 12px;
  --gap-icon-text: 8px;
  --gap-title-content: 8px;

  /* 页面边距 */
  --page-margin: 24px;
  --page-max-width: 1200px;
}

5 圆角与阴影

5.1 圆角层级

建立统一的圆角规范,不同场景使用不同层级的圆角。

圆角层级 圆角值 CSS变量 使用场景
圆角-sm 4px --radius-sm 小按钮、徽章、标签
圆角-md 8px --radius-md 卡片、输入框、弹窗
圆角-lg 12px --radius-lg 大卡片、分组容器
圆角-xl 16px --radius-xl 弹窗、侧边栏
圆角-full 9999px --radius-full 头像、圆形按钮、Pill标签

5.2 阴影规范

阴影用于表现层级关系和交互状态,层级越高阴影越明显。

阴影层级 阴影值 CSS变量 使用场景
阴影-sm 0 1px 2px rgba(0, 0, 0, 0.05) --shadow-sm 微小投影、分隔线
阴影-md 0 2px 8px rgba(0, 0, 0, 0.08) --shadow-md 卡片悬停、按钮按下
阴影-lg 0 4px 16px rgba(0, 0, 0, 0.1) --shadow-lg 弹窗、下拉菜单
阴影-xl 0 8px 32px rgba(0, 0, 0, 0.12) --shadow-xl 重要弹窗、模态框
阴影-inner inset 0 2px 4px rgba(0, 0, 0, 0.06) --shadow-inner 输入框内陷效果

5.3 交互状态阴影

交互状态 阴影效果 说明
默认状态 0 1px 3px rgba(0, 0, 0, 0.06) 基础卡片投影
悬停状态 0 4px 12px rgba(0, 122, 255, 0.15) 品牌色微光效果
按下状态 0 0 0 3px rgba(0, 122, 255, 0.2) 品牌色边框扩散
选中状态 0 0 0 2px var(--color-primary) 品牌色描边

5.4 圆角与阴影令牌汇总

:root {
  /* 圆角 */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  /* 阴影 */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.06);
}

6 组件设计规范

6.1 纪念日卡片

纪念日卡片用于展示用户的重要日期,支持倒计时显示和重复规则标识。

布局结构

┌─────────────────────────────────────────────────────────┐
│ [左侧色条]  纪念日名称(主标题)                    [标识] │
│            倒计时 + 日期信息(副标题)                    │
└─────────────────────────────────────────────────────────┘

尺寸规范

属性 规范值
卡片高度 60px
左侧色条宽度 4px
圆角 8px
内边距 12px 16px

样式规范

元素 字号 字重 颜色
纪念日名称 16px 600 --color-text-primary
倒计时 14px 400 --color-text-secondary
日期信息 12px 400 --color-text-tertiary
色条颜色 - - --color-anniversary (#AF52DE)

状态定义

状态 视觉效果
默认 白色背景,轻微阴影
悬停 背景色变浅,品牌色微光阴影
即将到来30天内 高亮显示,倒计时文字使用品牌色
今日 背景色为 --color-primary-light,倒计时显示"今日"

重复标识

重复类型 图标/标识 说明
仅一次 无标识 不重复
年度重复 循环图标 (360度旋转箭头) 每年重复
月度重复 双循环图标 每月重复

农历/节假日标识

类型 样式
农历 橙色文字"农历",带月亮图标
法定节假日 红色"节假日"标签

6.2 提醒卡片

提醒卡片用于展示待办任务,支持完成标记和过期状态。

布局结构

┌─────────────────────────────────────────────────────────┐
│ [checkbox]  提醒内容(主标题)                    [时间] │
└─────────────────────────────────────────────────────────┘

尺寸规范

属性 规范值
卡片高度 50px
checkbox尺寸 20px x 20px
圆角 8px
内边距 10px 16px

样式规范

元素 字号 字重 颜色
提醒内容 14px 400 --color-text-primary
时间信息 12px 400 --color-text-tertiary
色条颜色 - - --color-reminder (#007AFF)

Checkbox 样式

属性 规范值
未选中 灰色边框圆角4px
选中 绿色背景 + 白色checkmark
悬停 边框加深

分组样式

分组名称 标题颜色 标题字号
今天 --color-text-primary 14px
明天 --color-text-primary 14px
更久之后 --color-text-secondary 14px
已错过 --color-error 14px

完成状态

状态 视觉效果
未完成 正常显示
已完成 内容灰色划线,时间显示完成时间,移至分组底部
已过期 红色高亮,显示在"已错过"分组顶部

6.3 便签编辑器

便签区域提供富文本编辑能力,采用 Quill 编辑器组件。

布局结构

┌─────────────────────────────────────────────────────┐
│  [便签标题]                              [清空按钮] │
├─────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────┐ │
│  │              富文本编辑器容器                   │ │
│  │              (可编辑区域)                     │ │
│  └───────────────────────────────────────────────┘ │
│                              [保存状态:已保存]      │
└─────────────────────────────────────────────────────┘

尺寸规范

属性 规范值
便签区域高度 占右侧区域的50%
编辑器最小高度 200px
工具栏高度 40px
圆角 8px

工具栏按钮

按钮 图标 用途
H1 标题1 一级标题
H2 标题2 二级标题
B 粗体 加粗文字
I 斜体 斜体文字
U 下划线 添加下划线
S 删除线 添加删除线
链接 链接图标 插入链接
有序列表 数字列表 有序列表
无序列表 圆点列表 无序列表

保存状态指示

状态 颜色 位置
已保存 --color-success 右上角
保存中 --color-text-tertiary + 加载动画 右上角
离线保存 --color-warning 右上角

空状态

状态 显示内容
便签为空 "开始记录你的想法...",灰色文字 --color-text-placeholder

6.4 AI对话框

AI对话区域是产品的核心特色采用聊天气泡形式展示对话历史。

布局结构

┌─────────────────────────────────────────────────────┐
│  [AI区域标题]                                        │
├─────────────────────────────────────────────────────┤
│  ┌───────────────┐  ┌─────────────────────────────┐ │
│  │               │  │ AI消息气泡                  │ │
│  │    AI头像     │  │ (自然语言解析结果)         │ │
│  │               │  └─────────────────────────────┘ │
│  └───────────────┘                                  │
│  ┌─────────────────────────────┐  ┌───────────────┐ │
│  │ 用户消息气泡                 │  │               │ │
│  │ (用户输入内容)             │  │    用户头像   │ │
│  └─────────────────────────────┘  │               │ │
│                                   └───────────────┘ │
├─────────────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────────────┐│
│  │  [输入框:输入描述要添加的纪念日或提醒...] [发送] ││
│  └─────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────┘

气泡样式

气泡类型 背景色 圆角 最大宽度
AI气泡 --color-bg-light (浅灰) 16px 280px
用户气泡 --color-primary-light (浅蓝) 16px 280px
解析确认卡片 白色 + 边框 12px 100%

气泡内边距12px 16px

发送按钮

状态 背景色 效果
默认 --color-primary 蓝色圆形
悬停 --color-primary-dark 颜色加深
disabled --color-text-placeholder 灰色不可点击

解析确认卡片

元素 样式
卡片背景 白色边框2px实线 --color-primary-light
卡片圆角 12px
确认按钮 主要按钮样式
修改按钮 次要按钮样式

6.5 详情弹窗

点击纪念日或提醒卡片时弹出详情弹窗,支持二次编辑。

布局结构

┌─────────────────────────────────────────────────────┐
│  [X]  编辑纪念日 / 编辑提醒                     [删除]│
├─────────────────────────────────────────────────────┤
│  ┌───────────────────────────────────────────────┐ │
│  │  表单字段区域                                  │ │
│  │  - 输入框/选择器                               │ │
│  │  - 开关/下拉选择                               │ │
│  └───────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────┤
│            [取消]                    [保存]          │
└─────────────────────────────────────────────────────┘

尺寸规范

属性 规范值
弹窗宽度 400px - 480px
弹窗最大高度 80vh
圆角 16px
头部高度 52px
底部按钮区高度 60px

头部样式

元素 样式
标题 中标题 18px字重 600颜色 --color-text-primary
关闭按钮 20px x 20px灰色图标
删除按钮 红色文字按钮,字重 500

表单控件样式

控件类型 样式规范
输入框 高度 40px圆角 8px边框 --color-border,聚焦边框 --color-primary
标签 小正文 14px颜色 --color-text-secondary,上方留白 8px
开关 iOS样式圆角 16px滑块白色
下拉选择 右侧下拉箭头,高度 40px圆角 8px

操作按钮

按钮类型 样式
保存按钮 主要按钮,蓝色背景,白色文字
取消按钮 次要按钮,灰色边框,黑色文字
删除按钮 危险按钮,红色文字,无背景

6.6 按钮样式

按钮是用户操作的主要入口,需要清晰区分主次和危险操作。

主要按钮

属性 规范值
背景色 --color-primary (#007AFF)
文字颜色 白色
高度 36px - 44px
圆角 8px
字重 600
字重 14px
内边距 0 20px
悬停背景 --color-primary-dark (#0056CC)

次要按钮

属性 规范值
背景色 透明
文字颜色 --color-text-primary
边框 1px solid --color-border
高度 36px - 44px
圆角 8px
字号 14px
内边距 0 20px
悬停背景 --color-bg-light

文字按钮

属性 规范值
背景色 透明
文字颜色 --color-primary
高度 36px
圆角 0px
字号 14px
内边距 0 12px
悬停背景 --color-primary-light

危险按钮(删除/清除)

属性 规范值
背景色 透明
文字颜色 --color-error
边框 1px solid --color-error
高度 36px - 44px
圆角 8px
字号 14px
内边距 0 20px
悬停背景 --color-error + 10% opacity

按钮尺寸变体

变体 高度 字号 用途
小按钮 28px 12px 工具栏、徽章
中按钮 36px 14px 表单操作
大按钮 44px 16px 主要行动按钮
大号按钮 52px 17px 宣传页CTA

7 页面布局规范

7.1 宣传页布局

宣传页采用极简设计,分为三个主要区域。

布局结构

┌─────────────────────────────────────────────────────────┐
│  [Logo: 掐日子 + Slogan]                     [登录][注册]│
├─────────────────────────────────────────────────────────┤
│                                                         │
│              让重要日期不再错过                          │
│                                                         │
│        AI智能解析  ·  轻松管理纪念日  ·  即时提醒        │
│                                                         │
│                      [开始使用]                         │
│                                                         │
├─────────────────────────────────────────────────────────┤
│     © 2025 掐日子    隐私政策    服务条款                │
└─────────────────────────────────────────────────────────┘

区域规范

区域 高度 背景色
顶部导航区 60px 白色
内容展示区 自适应最小600px 白色
底部信息区 60px --color-bg-light

Logo规范

元素 样式
产品名称 20px字重 700品牌色
Slogan 14px灰色 --color-text-tertiary

CTA按钮

属性 规范值
尺寸 大号按钮高度52px
圆角 26px (pill形状)
文字 "开始使用"

7.2 登录/注册页布局

登录和注册采用同一页面布局通过Tab切换。

布局结构

┌─────────────────────────────────────────────────────┐
│                                                     │
│                    [Logo]                           │
│                                                     │
│              [登录]        [注册]                   │
│                                                     │
│  ┌─────────────────────────────────────────────┐   │
│  │  邮箱地址                                    │   │
│  └─────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────┐   │
│  │  密码                                        │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
│               [登录按钮]                            │
│                                                     │
│          还没有账号?点击注册                        │
│                                                     │
└─────────────────────────────────────────────────────┘

卡片规范

属性 规范值
卡片宽度 400px
卡片圆角 16px
卡片背景 白色
卡片阴影 --shadow-lg

输入框规范

属性 规范值
高度 44px
圆角 8px
边框 1px solid --color-border
间距 下边距 16px

Tab样式

状态 视觉效果
激活 下边框2px实线 --color-primary,文字品牌色
未激活 文字灰色 --color-text-tertiary,无下划线

7.3 Home页四区布局

Home页面采用三栏布局总宽度1200px居中显示。

布局结构

┌─────────────────────────────────────────────────────────────────────┐
│                         顶部导航栏60px                            │
├───────────────┬───────────────────────────────────────┬─────────────┤
│               │                                       │             │
│  纪念日列表   │              主内容区                  │   便签区    │
│  40%宽度)  │              40%宽度)              │  20%    │
│               │                                       │             │
│  + 纪念日     │                                       │  ┌─────────┐│
│  + 提醒列表   │                                       │  │  便签   ││
│  40%宽度)  │                                       │  │  编辑器 ││
│               │                                       │  └─────────┘│
│               │                                       │             │
│               │                                       │  ┌─────────┐│
│               │                                       │  │  AI     ││
│               │                                       │  │  对话   ││
│               │                                       │  │  区域   ││
│               │                                       │  └─────────┘│
│               │                                       │             │
├───────────────┴───────────────────────────────────────┴─────────────┤
│                         底部版权信息                                  │
└─────────────────────────────────────────────────────────────────────┘

顶部导航栏

属性 规范值
高度 60px
背景色 白色
内容 Logo + 用户邮箱 + 登出按钮

左侧区域(纪念日 + 提醒)

属性 规范值
宽度占比 40%约480px
纪念日区域高度 50%
提醒区域高度 50%
分割线 1px solid --color-bg-darker

主内容区(便签 + AI对话

属性 规范值
宽度占比 60%约720px
便签区域高度 50%
AI对话区域高度 50%
便签与AI之间 16px间距

底部版权信息

属性 规范值
高度 40px
背景色 --color-bg-light
文字 12px灰色 --color-text-tertiary

7.4 响应式适配规则

断点 屏幕宽度 布局变化
xs < 768px 单栏堆叠布局
sm 768px - 1024px 两栏布局(左侧合并,右侧保留)
md 1024px - 1200px 三栏布局(宽度压缩)
lg 1200px - 1440px 标准三栏布局
xl > 1440px 三栏布局内容居中最大宽度1440px

移动端适配方案

场景 适配方案
导航栏 折叠为汉堡菜单
三栏布局 改为Tab切换纪念日/提醒/其他)
弹窗 全屏显示
卡片 占据全宽

8 交互动效规范

8.1 悬停效果

交互元素在鼠标悬停时应有明确的视觉反馈。

元素类型 悬停效果
主要按钮 背景色加深5%轻微上移2px
次要按钮 背景色变为 --color-bg-light
卡片 阴影加深轻微上移cursor变为pointer
链接 颜色变为 --color-primary-dark,下划线显示
表格行 背景色变为 --color-bg-light

8.2 点击反馈

用户点击操作应有即时的视觉反馈。

元素类型 点击效果
按钮 背景色变暗10%,轻微下沉
卡片 阴影消失,按下效果
checkbox 立即显示选中状态checkmark动画
链接 颜色变化,无动画
图标按钮 灰色圆形背景闪烁

checkbox动画

阶段 动画效果
点击瞬间 缩放0.8倍
选中完成 缩放1.0倍 + 绿色背景填充
checkmark 从中心向外展开的线条动画

8.3 过渡动画

元素状态变化时使用平滑的过渡动画。

通用过渡

transition: all 0.2s ease-out;

具体场景动画

场景 进入动画 离开动画
弹窗显示 fadeIn + scale(0.95) -> fadeIn + scale(1) fadeOut + scale(1) -> fadeOut + scale(0.95)
下拉菜单 slideDown (200ms) slideUp (150ms)
列表项增删 fadeIn + slideIn fadeOut + slideOut
卡片悬停 scale(1.02) scale(1)
按钮点击 scale(0.95) scale(1)

AI消息动画

阶段 动画效果 时长
消息出现 渐显 + 打字机效果 300ms
解析中 气泡呼吸动画 持续
发送中 发送按钮旋转 持续

保存状态指示

状态切换 动画效果
保存中 -> 已保存 绿色对勾从小到大的缩放动画
离线保存 黄色警告图标闪烁

8.4 动画令牌

:root {
  /* 动画时长 */
  --duration-fast: 150ms;
  --duration-base: 200ms;
  --duration-slow: 300ms;
  --duration-slower: 500ms;

  /* 动画缓动 */
  --ease-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-in: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

9 图标规范

9.1 图标风格

图标采用线性风格Outline与苹果设计语言保持一致。

属性 规范定义
线条粗细 1.5px - 2px
圆角 2px线条端点
颜色 与文字颜色一致
尺寸 16px, 20px, 24px, 32px
风格 线性、空心、圆角矩形框

9.2 图标尺寸

尺寸 CSS变量 使用场景
16px --icon-size-sm 表格内图标、标签旁图标
20px --icon-size-md 卡片内图标、按钮图标
24px --icon-size-lg 区域标题图标、独立图标
32px --icon-size-xl Logo、空状态图标

9.3 图标使用场景

图标名称 图标形状 用途
添加 加号 (+) 添加按钮
删除 垃圾桶 删除操作
编辑 铅笔 编辑操作
保存 磁盘/对勾 保存操作
关闭 X号 关闭弹窗
日历 日历形状 纪念日/日期相关
闹钟 闹钟形状 提醒相关
星星 星星形状 重要标记
循环 循环箭头 重复规则
月亮 月亮形状 农历标识
旗帜 旗帜形状 节假日标识
勾选 对勾 完成、确认
发送 箭头 发送消息
用户 用户头像 个人中心
登出 退出箭头 登出操作
AI 机器人头像 AI对话区域
便签 文档形状 便签区域

9.4 图标颜色规则

场景 图标颜色
普通操作 --color-text-secondary
主要操作 --color-primary
完成状态 --color-success
警告状态 --color-warning
危险操作 --color-error
禁用状态 --color-text-placeholder

9.5 图标令牌

:root {
  /* 图标尺寸 */
  --icon-size-sm: 16px;
  --icon-size-md: 20px;
  --icon-size-lg: 24px;
  --icon-size-xl: 32px;

  /* 图标颜色 */
  --icon-color-primary: var(--color-primary);
  --icon-color-secondary: var(--color-text-secondary);
  --icon-color-tertiary: var(--color-text-tertiary);
  --icon-color-success: var(--color-success);
  --icon-color-warning: var(--color-warning);
  --icon-color-error: var(--color-error);
  --icon-color-disabled: var(--color-text-placeholder);

  /* 图标线条粗细 */
  --icon-stroke-width: 1.5px;
}

10 设计资源

10.1 组件速查表

组件名称 高度 圆角 字号 主要颜色
纪念日卡片 60px 8px 16px/14px --color-anniversary
提醒卡片 50px 8px 14px --color-reminder
主要按钮 36-44px 8px 14-16px --color-primary
次要按钮 36-44px 8px 14px 透明+边框
输入框 40px 8px 14px --color-border
弹窗 自适应 16px 16px 白色
聊天气泡 自适应 16px 14px 浅灰/浅蓝

10.2 常见颜色组合

场景 背景色 文字色 边框色
主要按钮 #007AFF #FFFFFF
次要按钮 透明 #1D1D1F #C6C6C8
纪念日卡片 #FFFFFF #1D1D1F
提醒卡片 #FFFFFF #1D1D1F
AI气泡 #F5F5F7 #1D1D1F
用户气泡 #EAF3FF #1D1D1F
弹窗 #FFFFFF #1D1D1F
错误提示 #FFF2F2 #FF3B30 #FF3B30

10.3 快捷开发样式类

/* 按钮类 */
.btn-primary {
  background: var(--color-primary);
  color: white;
  height: 40px;
  border-radius: 8px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.btn-secondary {
  background: transparent;
  color: var(--color-text-primary);
  border: 1px solid var(--color-border);
  height: 40px;
  border-radius: 8px;
  transition: all 0.2s ease;
}

/* 卡片类 */
.card {
  background: white;
  border-radius: 8px;
  padding: 12px 16px;
  box-shadow: var(--shadow-sm);
  transition: all 0.2s ease;
}

.card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

/* 输入框类 */
.input {
  height: 40px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 0 12px;
  font-size: 14px;
  transition: all 0.2s ease;
}

.input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-light);
}

/* 弹窗类 */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.2s ease;
}

.modal {
  background: white;
  border-radius: 16px;
  max-width: 480px;
  width: 90%;
  max-height: 80vh;
  overflow: auto;
  animation: scaleIn 0.2s ease;
}

11 附录

11.1 设计决策记录

决策项 决策内容 理由
圆角值 8px作为标准圆角 与苹果设计语言一致,视觉平衡
主色调 系统蓝 #007AFF 用户熟悉度高,易于识别操作入口
卡片高度 纪念日60px提醒50px 纪念日信息更多,需要更大空间
间距单位 4px 与Tailwind CSS一致便于开发
图标风格 线性图标 与苹果风格一致,清晰易读

11.2 待确认事项

以下事项需要在设计评审中确认:

  1. 倒计时超过365天时是否显示"还有X年"还是统一显示天数
  2. 法定节假日是否需要特殊视觉效果(如红色高亮)
  3. AI对话区域的聊天记录是否需要持久化存储
  4. 便签是否支持多种颜色标签或主题

11.3 更新日志

版本 日期 更新内容 更新人
v1.0.0 2026-01-29 初稿完成 UI设计师