Skip to content

设计令牌 ​

设计令牌就是把颜色、字号、间距、圆角、投影、动效写成一份数据,所有端从这一份数据取值。改一处,网页、H5、小程序、后台同步更新,不会出现「这个页面的红和那个页面不一样」。

tokens.json(唯一数据源)经 build.mjs 自动生成六种产物:

  • tokens.css:网页 CSS 变量
  • _tokens.scss:SCSS 变量
  • vant-theme.js / .css:H5(Vant 4)主题
  • element-plus-theme.css:后台(Element Plus)主题
  • tokens.wxss:微信小程序
  • tailwind-preset.cjs:Tailwind 预设

怎么引入 ​

端引入方式
普通网页import '@jiaoshanshi/tokens/css',然后用 var(--jss-color-red-500)
SCSS 项目@use '@jiaoshanshi/tokens/scss' as *;,然后用 $jss-color-red-500
Vant 4(H5)<van-config-provider :theme-vars="vantTheme">,import { vantTheme } from '@jiaoshanshi/tokens/vant'
Element Plus(后台)import '@jiaoshanshi/tokens/element-plus',放在 Element Plus 样式之后
微信小程序把 tokens.wxss 放进项目,在 app.wxss 里 @import "tokens.wxss";
Tailwindpresets: [require('@jiaoshanshi/tokens/tailwind')]
JS 取值import { flat, palette } from '@jiaoshanshi/tokens'

还没有接入私有 npm 时,可以直接在下载中心 · 开发下载打包好的文件。

颜色 ​

标准色与色阶 ​

500 是标准色本身。50~400 是加白变浅,600~900 是加深(暖米白加深时混深酱棕,保持暖调)。只能从色阶里取值,不得另调新色。

暖米白cream
阿胶枣红red
金汤金gold
深酱棕brown

语义色 ​

页面开发优先用语义变量,不直接写色阶。这样以后换肤只改映射。

变量取值用途
--jss-color-bg-pagecream.500 #F7EEDF页面底色
--jss-color-bg-surface#FFFBF4卡片、弹窗底色
--jss-color-bg-sunkencream.600凹陷区、分组底
--jss-color-text-primarybrown.500 #412011正文
--jss-color-text-secondarybrown.400次要文字
--jss-color-text-brandred.500 #95190D品牌字、标题强调
--jss-color-text-on-brandcream.500枣红底上的文字
--jss-color-action-primaryred.500主按钮
--jss-color-action-secondarygold.500 #D09137次按钮(金色底,字用深酱棕)
--jss-color-pricered.500价格
--jss-color-borderbrown.100分割线、边框
--jss-color-line-goldgold.500金色装饰线

状态色 ​

宪章不允许蓝、绿、紫,所以状态色全部由四色派生。为了不靠颜色区分(长辈和色弱用户分不清相近的颜色),每种状态都必须同时有图标和文字,组件已内置。

状态文字色底色图标例子
错误red.500red.50叉号手机号格式不对
警告gold.800gold.50感叹号优惠券今天到期
成功brown.500cream.600对勾预约成功
提示brown.400cream.400圆圈 i结果供健康参考
状态提示

字体与字号 ​

变量值用途
--jss-font-serif思源宋体 / Noto Serif SC标题
--jss-font-sans思源黑体 / Noto Sans SC / 苹方正文
--jss-font-size-caption14px辅助说明(最小,不能更小)
--jss-font-size-body16px正文
--jss-font-size-body-lg18px长辈模式正文、重点说明
--jss-font-size-title-sm20px卡片标题
--jss-font-size-title24px页面标题
--jss-font-size-title-lg28px大标题
--jss-font-size-display36px首屏口号
--jss-font-size-price22px价格
--jss-font-size-price-lg32px详情页主价格

小程序版本自动换算为 rpx(×2)。网页字体用 @jiaoshanshi/ui/src/fonts.css 引入,已经按字符分片,只下载页面用到的字。

间距、圆角、投影、动效 ​

类别取值
间距4 的倍数:0 / 4 / 8 / 12 / 16 / 20 / 24 / 32 / 40 / 48 / 64
圆角sm 4 / md 8 / lg 12 / xl 16;拱门形状用 arch
投影光源统一来自左上方,投影偏右下,用深酱棕而不是纯黑:sm md lg 三档
动效fast 150ms / normal 240ms / slow 400ms;热气类动效用 steam 缓动

对比度自动检查 ​

tokens.json 里登记了所有「文字色 + 背景色」配对,站点构建时自动计算对比度,正文低于 4.5 : 1、大字低于 3 : 1 就构建失败。新增配色时先在 色彩对比检查 里试一下。

停用色 ​

#FBF6EC、#D9A441、#7A2E22 已停用,登记在 tokens.json 的 deprecated 里,色彩检查工具输入这几个值会直接报错。

本站标准适用于胶膳师品牌全部视觉产出与门店空间。更新记录