字体Typography
不引入网络字体。标题走系统圆体,呼应标志的圆角轮廓;正文和控件走系统无衬线,保证中西文混排清晰;代码和数值走等宽。三组字体栈都是令牌。
三套字体
下面的字体栈是从 :root 上的令牌读出来的。在你的系统上实际用到哪一款,取决于装了哪些字体:以苹果设备为例(没装 Inter 时):标题是 SF Pro Rounded,正文是 SF Pro 配苹方,等宽是 SF Mono。
Display · 标题
--ok-font-display…
UI · 正文与控件
--ok-font…
Mono · 代码与数值
--ok-font-mono…
字阶
十一级。标题五档的字号是令牌 --ok-fs-display / -h1 / -h2 / -h3 / -h4:桌面 56 / 40 / 28 / 20 / 17,视口窄于 520px 时收到 38 / 30 / 24 / 18 / 16;正文以下各档字号固定。右侧标注的是当前视口下的实际字号,把窗口拉窄到 520 以下可以看到标题档变化。
墨色方块,粉色鼻子
安静而利落的界面
动效用来解释因果
窗口模式与主题色
通知与提醒
一块利落的方块,压着一只会拱的鼻子。
更改会同步到你的所有设备,随时可以撤销。
保存更改 Save changes
上次同步:今天 14:02
New · Beta · Pro
⌘K 240ms --ok-r-4
字重
只用 450 / 500 / 600 / 700 四档。按钮、分段、选择器上的文字统一 600;菜单项 500,选中的那一项加粗到 600。
字重 450 Aa正文字重 500 Aa说明、菜单项、等宽字重 600 Aa小标题、标签、按钮字重 700 Aa大标题、Micro
- 悬停不改文字。悬停只换底色或线色,不改字号、字重,带文字的元素也不位移;否则周围的内容会被挤动。
- 选中加粗但不变宽。菜单打开前按“全部加粗”量一次宽度,切换选中项时菜单不会跟着变宽。自己做类似的列表时,也要先给加粗后的宽度留位置。
排版规矩
会变化的数字用等宽
计数、百分比、时间这类会跳动的数值开启 tabular-nums,数字宽度一致,旁边的内容不会跟着抖。库里的计数、进度、步进器、滑块、分页、表格等组件已经开了。
默认(比例数字)10.88% · 1,088 次tabular-nums10.88% · 1,088 次
- 中西混排。中文与西文、数字之间留一个半角空格;中文旁边的标点用全角。
- 行长。正文每行 28–38 个汉字为宜;说明文字不超过两行。
- 三级文字色只做装饰。
--ok-text-3的对比度不足 4.5:1,正文和必须读到的信息用--ok-text或--ok-text-2,见 色彩。
在代码里用
用 Text 和 Heading 组件,或者直接加 .ok-t-* 类名;自己写样式时引用字号和字体令牌。
tsx
import { Heading, Text } from 'oink-ui';
<Heading level={2}>区块标题</Heading> {/* 默认 h2 字阶;variant 可以和语义层级分开 */}
<Heading level={3} variant="h4">小标题</Heading>
<Text variant="caption" tone="neutral">上次同步:今天 14:02</Text>
/* 不用组件时:直接加类名,或者引用令牌 */
<p className="ok-t-body-l">导语</p>
.my-title { font: 700 var(--ok-fs-h2)/1.25 var(--ok-font-display); }组件的属性见 Text / Heading 文字。