Files
2026-07-20 15:31:52 +08:00

3.1 KiB

Design System

Overview

HashMall 客服前台采用轻量、克制的移动产品界面。用户在商城浏览或订单处理过程中进入,因此页面应像商城内部的原生工具,而不是独立活动页。默认使用浅色主题,消息阅读区保持低干扰。

Color

  • Brand primary: #7934F6
  • Brand pressed: #6426D8
  • Brand soft: #F2EBFF
  • Page background: #F5F5F7
  • Surface: #FFFFFF
  • Primary text: #1A1A1D
  • Secondary text: #5F6068
  • Muted text: #777983
  • Divider: #E7E7EC
  • Success: #168A5B
  • Warning: #A45A00
  • Error: #C93636

品牌色只用于主按钮、本人消息气泡、焦点和少量状态标识。客服消息使用白色表面和清晰正文色。

Typography

使用平台系统无衬线字体。H5 优先 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif,小程序沿用系统字体。

  • Page title: 17px / 600
  • Section or state title: 16px / 600
  • Message body: 15px / 400, line-height 1.55
  • Supporting text: 13px / 400
  • Caption and timestamp: 12px / 400

消息正文允许换行和长字符串断行,不使用装饰性字体。

Layout

  • 页面采用纵向三段结构:状态/导航、可滚动消息区、固定输入区。
  • 内容宽度在桌面 H5 最大 720px,移动端占满视口。
  • 页面横向安全间距 16px,气泡最大宽度约 76%。
  • 使用 4、8、12、16、24px 的间距节奏。
  • 输入区适配底部安全区和软键盘,不用固定像素高度锁死页面。

Components

Message bubble

  • 本人消息:紫色实底、白字,圆角 14px,右上角保留较小圆角以区分方向。
  • 客服消息:白色实底、深色文字,可使用 1px 中性边界,不叠加宽阴影。
  • 气泡内文本可选中;URL、图片、卡片按明确组件渲染。

Composer

  • 白色表面与顶部细分隔线。
  • 文本输入框使用中性浅灰背景,圆角 12px。
  • 图片与更多操作使用至少 44px 的触控区。
  • 发送按钮使用品牌色;空文本时为明确禁用状态。

Context card

  • 商品或订单上下文在输入区上方单层展示。
  • 使用缩略图、两行标题和一组关键元数据,不嵌套卡片。
  • 提供“发送”与“移除”两个清晰动作。

Status feedback

  • 连接中、离线、轮询中显示在顶部状态条,状态文字与图标同时变化。
  • 发送失败在对应消息旁展示“重新发送”,不使用全屏弹窗。
  • 首屏使用消息骨架,空状态提供简短欢迎语和可执行提示。

Motion

  • 状态切换和新消息定位使用 150 至 220ms 的 ease-out。
  • 不做页面入场编排或弹跳动画。
  • 系统启用减少动态效果时取消非必要过渡。

Responsive and platform behavior

  • H5 与微信小程序均使用 uni-app 原生组件。
  • Socket 使用 uni.connectSocket,图片使用 uni.chooseMedia/兼容接口和 uni.previewImage。
  • H5 处理 100dvh 与 iOS 软键盘;小程序处理 safe-area-inset-bottom、导航栏和 cursor-spacing。
  • 不使用浏览器全局 WebSocket、DOM 文件选择器或 iframe 作为核心能力。