Skip to content

识策AI · UI 设计规范与跨端扩展方案

本文档定义识策AI产品的视觉规范、核心页面交互、响应式策略、跨端扩展方案及动效/无障碍标准。


一、设计规范

1.1 色彩体系

主色

色值用途说明
#2080F0智慧蓝(品牌主色)按钮、链接、高亮、选中态
#1060C0主色 Hover按钮悬停、强调交互
#0D4A99主色 Active按下态
#E8F2FF主色浅底选中行背景、标签底色

辅助色

色值名称用途
#8B5CF6洞察紫AI 解读结果、语义分析标注
#06B6D4策略青策略输出、行动建议
#F59E0B预警橙风险标记、关系变化提示

语义色

色值语义用途
#22C55E成功操作成功、关系正向指标
#EF4444危险删除、风险预警、关系恶化
#F59E0B警告需关注、即将过期提醒
#6B7280信息辅助说明、次要文本

暗色模式对应色

亮色模式暗色模式说明
#FFFFFF 背景#1A1A2E 背景页面底色
#F5F7FA 次背景#16213E 次背景卡片/侧栏底色
#1F2937 主文本#E5E7EB 主文本正文文字
#6B7280 次文本#9CA3AF 次文本辅助文字
#E5E7EB 边框#374151 边框分割线、边框
#2080F0 主色#3B8DF8 主色暗色下亮度微调

1.2 字体

css
/* 中文:系统字体栈 */
--font-family-cn: -apple-system, BlinkMacSystemFont,
  "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
  "Noto Sans CJK SC", sans-serif;

/* 英文 / 数字 */
--font-family-en: "Inter", var(--font-family-cn);

/* 等宽(代码 / 数据) */
--font-family-mono: "JetBrains Mono", "Fira Code", monospace;
层级字号字重行高用途
H128px7001.3页面主标题
H222px6001.4区块标题
H318px6001.4卡片标题
Body14px4001.6正文
Caption12px4001.5辅助说明、时间戳

1.3 间距系统

基于 4px 基础网格

Token典型用途
--space-14px紧凑元素内边距
--space-28px图标与文字间距
--space-312px列表项内边距
--space-416px卡片内边距
--space-520px区块间距
--space-624px页面内边距
--space-832px大区块间隔
--space-1040px页面顶部留白

1.4 圆角

Token用途
--radius-sm4px小按钮、标签、输入框
--radius-md8px中按钮、下拉菜单
--radius-lg12px对话气泡、弹窗
--radius-xl16px卡片、面板
--radius-full9999px头像、胶囊按钮

1.5 阴影层级

css
/* 层级 1 — 卡片静态 */
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);

/* 层级 2 — 悬浮卡片 */
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);

/* 层级 3 — 下拉菜单、弹窗 */
--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);

/* 层级 4 — 模态对话框 */
--shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.16), 0 8px 16px rgba(0, 0, 0, 0.08);

二、核心页面交互规范

2.1 Dashboard(仪表盘)

布局:响应式卡片网格(Desktop 3 列、Tablet 2 列、Mobile 1 列)

核心区域

  • 顶部概览栏:人脉总数、本周新增互动、待处理建议数、订阅状态
  • 数据可视化区
    • 关系健康度雷达图(占位组件,后续接入 ECharts / Chart.js)
    • 本周互动频次趋势折线图
    • 人脉分类饼图(按标签分布)
  • 快捷操作区
    • "新建人物档案" 主按钮
    • "开启 AI 对话" 次按钮
    • 最近会话列表(最多显示 5 条)
  • 动态信息流:最新策略建议、关系风险提醒、里程碑事件

交互细节

  • 卡片支持拖拽排序(桌面端)
  • 数据区域在数据未加载时显示骨架屏
  • 点击数据图表可展开详情面板

2.2 人物档案

视图模式

  • 列表视图:紧凑模式,每行显示头像、姓名、标签、最近互动时间、重要度
  • 卡片视图:大头像 + 关键信息摘要,网格排列
  • 切换按钮位于工具栏右侧(列表图标 / 网格图标)

搜索与过滤

  • 顶部搜索框:支持姓名、备注、标签模糊搜索
  • 过滤器下拉:按标签、重要度、最近互动时间筛选
  • 排序:按姓名 / 重要度 / 最近互动时间 / 创建时间

标签管理

  • 预设标签:同事 朋友 客户 家人 恋爱对象 潜在人脉
  • 支持自定义标签(颜色 + 文字)
  • 标签以胶囊样式展示,可点击筛选

重要度星级

  • 1-5 星评级,点击即改
  • 星级对应颜色渐变(1星灰色 → 5星金色)

档案详情页

  • 基本信息区(头像、姓名、关系类型、重要度)
  • AI 生成的人物画像摘要
  • 关系 Timeline 嵌入
  • 关联对话记录入口

2.3 AI 对话

布局:左右分栏

  • 左侧:会话列表(宽度 280px,可折叠)
    • 置顶会话 / 普通会话分组
    • 每条显示:关联人物头像、最后一条消息摘要、时间
    • 底部 "新建对话" 按钮
    • 支持搜索历史会话
  • 右侧:聊天窗口
    • 顶部栏:当前关联人物(可点击切换)、场景选择下拉
    • 消息区域:气泡样式,用户消息右对齐(浅蓝底),AI 回复左对齐(白底/暗色模式深底)
    • 底部输入区:多行文本框 + 发送按钮(Enter 发送,Shift+Enter 换行)

流式输出动画

  • AI 回复时显示"正在思考..."占位
  • 文本逐字出现(打字机效果),光标闪烁
  • Markdown 内容实时渲染(加粗、列表、代码块)

关联人物选择

  • 对话顶部显示当前关联人物卡片
  • 点击可弹出快速选择器(搜索 + 最近使用列表)
  • 支持多人关联(群体场景分析)

场景选择

  • 下拉菜单选择场景:恋爱追求 职场沟通 冲突化解 人情世故 新人融入 自定义
  • 选择后 AI 针对场景调整策略风格

画像与档案更新确认(流式回复结束后)

  • 当后端判定「我的画像」或「关联人脉档案」信息偏空并返回 profileProposal.reasonincomplete_self / incomplete_person 时:先居中模态说明可补充资料,次要按钮关闭并清除提案,主按钮进入大卡片刻画确认(列表含该侧全部可编辑字段,多行输入 + 逐行勾选,底栏「暂不应用 / 应用所选」)。
  • reasonrefinement(精炼补充)时:底部横条提示 + 短倒计时,用户可随时点开同一确认卡;无需先过居中引导。
  • 应用成功后应刷新人脉列表;设置页「我的画像」应与已提交内容一致。

2.4 关系 Timeline

布局:纵向时间轴

  • 时间轴居中(桌面端)或靠左(移动端)
  • 事件卡片交替排列在轴线两侧(桌面端)或统一靠右(移动端)

事件卡片

  • 类型图标(对话、里程碑、状态变化、AI 建议)
  • 标题 + 简要描述
  • 时间戳
  • 可展开查看完整内容

风险标记

  • 高风险事件:红色左边框 + 警告图标
  • 中风险事件:橙色左边框
  • 正常事件:蓝色/灰色左边框

交互

  • 滚动加载更多(无限滚动)
  • 可按事件类型过滤
  • 点击事件卡片展开详情 / 跳转关联对话

2.5 话术库

布局:左侧分类树 + 右侧内容区

分类浏览

  • 一级分类:恋爱 职场 社交 家庭 通用
  • 二级分类:如恋爱下分 搭讪开场 约会邀请 表白话术 挽回策略
  • 分类以树形/标签页展示

话术卡片

  • 场景标题
  • 话术正文(支持模板变量,如 {对方姓名}
  • 适用场景标签
  • 收藏按钮(星标)
  • 一键复制按钮(点击后显示"已复制"反馈)
  • 效果评分(社区反馈)

收藏管理

  • 独立"我的收藏"标签页
  • 支持创建自定义收藏夹
  • 拖拽排序收藏内容

三、响应式断点

断点范围布局策略
Desktop≥ 1024px完整侧栏(240px 固定宽度)+ 内容区自适应
Tablet768px – 1023px折叠侧栏(仅图标,56px 宽度),点击展开为 Overlay
Mobile< 768px隐藏侧栏,底部 Tab 导航替代(4-5 个 Tab)

断点实现

css
/* Tailwind / CSS 变量 */
--breakpoint-sm: 640px;   /* 小屏手机 */
--breakpoint-md: 768px;   /* 平板 / 大屏手机 */
--breakpoint-lg: 1024px;  /* 桌面 */
--breakpoint-xl: 1280px;  /* 大屏桌面 */
--breakpoint-2xl: 1536px; /* 超宽屏 */

导航适配

  • Desktop:左侧固定侧栏,包含 Logo、导航菜单、用户信息
  • Tablet:侧栏折叠为图标模式,悬停/点击展开
  • Mobile:底部固定 Tab Bar — 首页 | 人脉 | 对话 | 话术 | 我的

四、跨端扩展注意事项

4.1 Electron 桌面端

当前代码:已有初版壳 frontend/apps/desktoppnpm dev:desktop / pnpm build:desktop),以下条目为产品化增强规划,尚未全部实现。

系统托盘

  • 最小化到系统托盘,托盘图标常驻
  • 右键菜单:打开主窗口、新建对话、退出
  • 托盘图标角标显示未读通知数

原生通知

  • 关系风险预警推送系统通知
  • AI 策略建议就绪时通知
  • 支持通知点击直接跳转对应页面

全局快捷键

快捷键功能
Cmd/Ctrl + Shift + S唤醒/隐藏主窗口
Cmd/Ctrl + N新建对话
Cmd/Ctrl + P快速搜索人物
Cmd/Ctrl + ,打开设置

窗口管理

  • 关闭窗口默认最小化到托盘(可在设置中修改)
  • 记忆窗口位置与尺寸,下次启动恢复
  • 支持多窗口:主窗口 + 独立对话窗口

自动更新

  • 集成 electron-updater
  • 后台静默下载更新包
  • 提示用户重启应用更新(非强制)
  • 支持灰度发布通道(Stable / Beta)

深度链接

  • 注册 shice:// 协议
  • 支持从浏览器/其他应用跳转至对应页面
  • 格式示例:shice://person/123shice://chat/456

离线缓存策略

  • 人物档案数据本地 SQLite 缓存
  • 对话历史离线可读
  • 离线时队列化操作,联网后自动同步
  • 话术库增量缓存,优先加载本地版本

4.2 UniApp 移动端 App

底部 Tab 导航

┌──────────────────────────────────────┐
│                                      │
│           (页面内容区域)               │
│                                      │
├────────┬────────┬────────┬───────────┤
│  🏠    │  👥    │  💬    │    👤     │
│  首页  │  人脉  │  对话  │   我的    │
└────────┴────────┴────────┴───────────┘

手势操作

  • 左滑删除:会话列表、人物列表支持左滑出现删除/归档操作
  • 下拉刷新:所有列表页支持下拉刷新
  • 长按操作:长按人物卡片弹出快捷菜单(发起对话、编辑、删除)

原生能力

  • 推送通知:集成 UniPush,支持 iOS/Android 推送
  • 相机:人物头像拍照/相册选择,支持裁剪
  • 分享:分享话术卡片为图片至微信/朋友圈
  • 剪贴板:一键复制话术到剪贴板

iOS / Android 安全区域适配

css
/* 顶部安全区 */
padding-top: env(safe-area-inset-top);

/* 底部安全区(Tab Bar 下方) */
padding-bottom: env(safe-area-inset-bottom);

/* 刘海屏左右安全区 */
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right);

组件库选型

  • wot-design-uni:基于 Vue3 的 UniApp 组件库
    • 原因:组件丰富、文档完善、社区活跃、支持暗色模式
    • 涵盖:按钮、表单、导航、反馈、数据展示等全场景组件
    • 样式定制:通过 CSS 变量覆盖品牌色

4.3 微信小程序

小程序特有限制

限制项限制值应对策略
主包大小2MB核心页面放主包,功能模块分包
分包大小2MB/包,总计 20MB话术库、Timeline 等独立分包
API 差异部分 Web API 不可用条件编译 #ifdef MP-WEIXIN
长连接仅支持 WebSocketAI 流式输出走 WebSocket 通道

微信登录集成

用户点击登录
  → wx.login() 获取 code
  → 发送 code 到后端
  → 后端换取 openid + session_key
  → 返回自定义 token
  → 本地存储 token,后续请求携带
  • 授权获取用户头像/昵称(2022 年后需手动填写)
  • 支持绑定手机号(通过 getPhoneNumber 组件)

分享能力

  • 分享到好友:自定义分享卡片(标题 + 图片 + 路径)
  • 分享到朋友圈:支持生成单页模式分享页
  • 分享话术卡片:生成精美图片,长按保存或直接分享

订阅消息通知

  • 关系维护提醒("距离上次联系 {name} 已 {n} 天")
  • AI 策略就绪通知
  • 需用户主动订阅,每次触发消耗一条额度
  • 长期订阅模板需审核通过

五、动效规范

5.1 页面切换

类型动画时长缓动
前进Fade + Slide Left300msease-in-out
后退Fade + Slide Right300msease-in-out
Tab 切换Fade200msease

5.2 组件动效

组件动画时长缓动
卡片展开/折叠Height 过渡 + Fade200msease-out
弹窗出现Scale(0.95→1) + Fade250msease-out
弹窗关闭Scale(1→0.95) + Fade150msease-in
下拉菜单Slide Down + Fade200msease-out
Toast 提示Slide Up + Fade200msease-out

5.3 数据加载

  • 骨架屏:列表、卡片、详情页在数据加载时显示结构化骨架屏
  • 渐进加载:图片 Lazy Load,先模糊缩略图后清晰大图
  • 空状态:友好插画 + 引导操作按钮

5.4 AI 回复动效

[正在思考...]        ← 三个点循环闪烁动画

逐字出现文本          ← 每字 30-50ms 间隔,光标(|)末尾闪烁

Markdown 实时渲染     ← 加粗/列表/代码块逐步呈现

策略卡片弹入          ← 从底部 slide-up,带 shadow 层级提升

六、无障碍(Accessibility)

6.1 ARIA 标签

  • 所有交互元素必须包含 aria-labelaria-labelledby
  • 动态内容更新使用 aria-live="polite"
  • 模态框使用 role="dialog" + aria-modal="true"
  • 导航区域使用 role="navigation" + aria-label

6.2 键盘导航

操作按键
元素间移动Tab / Shift+Tab
列表项切换 方向键
确认/选中Enter / Space
关闭弹窗Esc
对话发送消息Enter
对话换行Shift + Enter
  • 焦点样式:2px 实线 #2080F0 外框,不可移除
  • Tab 顺序:遵循自然阅读顺序,避免 tabindex 大于 0

6.3 对比度

  • 正文文字与背景对比度 ≥ 4.5:1(WCAG AA)
  • 大号文字(≥ 18px 粗体 / ≥ 24px 常规)对比度 ≥ 3:1
  • 交互元素(按钮、链接)对比度 ≥ 3:1
  • 使用工具验证:Chrome DevTools / axe / Lighthouse

6.4 其他

  • 图片提供 alt 文本描述
  • 不依赖纯颜色传达信息(辅以图标或文字)
  • 动画支持 prefers-reduced-motion 媒体查询关闭
  • 表单字段关联 <label> 标签