第四章:视觉语言系统

色彩体系、字体规范、图标风格、间距网格——这四个东西,说白了就是多屏系统的「通用语言」。

我见过太多项目,每个屏幕各搞一套视觉风格。结果呢?用户在不同设备间切换时,就像在逛不同的产品。嗯,这其实是个很糟糕的体验。

4.1 色彩体系:别让颜色「各自为政」

色彩是视觉语言里最敏感的部分。我个人习惯把色彩体系分成三层:

  • 品牌色:主色 + 辅助色,控制在3-5种以内
  • 功能色:成功、警告、错误、信息提示色
  • 中性色:背景、边框、文字层级色

我在项目中遇到过一个问题:同一个「确认按钮」,在车载屏上是蓝色,在手机App上变成了绿色。用户反馈说「感觉不像同一个系统」。后来我们统一了色彩映射表,才解决这个问题。

核心原则:所有屏幕共享同一套色板,但允许根据屏幕特性做微调。

举个例子,车载屏的亮度通常比手机高,所以车载屏上的品牌色饱和度可以降低10%-15%,避免刺眼。但色相值必须保持一致。

色彩属性 手机端 车载屏 智能手表
主色 H值 210° 210° 210°
主色 S值 85% 72% 80%
主色 L值 50% 45% 55%

小技巧:用HSL而不是RGB来定义颜色。H值固定,S和L值根据屏幕特性调整,这样能保证「色相统一」。

4.2 字体规范:别让文字「变形」

字体这块,我踩过不少坑。最典型的是:同一个字号,在不同屏幕上的物理尺寸完全不一样。

为什么会这样?因为屏幕的PPI(每英寸像素数)不同。车载屏通常PPI较低,手机屏PPI较高。如果都用「16px」,车载屏上看着刚好,手机屏上就小得可怜。

我的解决方案是:用物理尺寸(pt)而不是像素(px)来定义字号

/* 错误做法:直接用px */
.button-text {
  font-size: 16px;  /* 在不同PPI下物理尺寸不同 */
}

/* 正确做法:用pt或rem */
.button-text {
  font-size: 12pt;  /* 物理尺寸固定 */
}

/* 或者用rem配合基准字号 */
:root {
  font-size: calc(12pt * (100vw / 1920));  /* 根据屏幕宽度动态调整 */
}

另外,字体族的选择也要统一。我建议使用系统原生字体,而不是加载自定义字体。原因很简单:加载字体需要时间,而且不同系统对字体的渲染效果不同。

注意:不要在所有屏幕上使用完全相同的行高。车载屏的行高建议增加10%-15%,因为驾驶场景下阅读距离更远。

4.3 图标风格:统一「语言」的视觉符号

图标是跨屏幕的「通用语言」。但前提是——这套语言必须统一。

我记得有一次评审,设计师在手机端用了线性图标,在车载屏上用了面性图标。用户说「感觉图标不像是同一套」。嗯,这其实是个很常见的坑。

图标风格统一,我总结了三个要点:

  • 线面统一:要么全线性,要么全面性,要么统一混合(比如填充+描边)
  • 圆角统一:所有图标的圆角半径保持一致,比如统一用2px或4px
  • 视觉重量统一:不同图标的线条粗细、面积占比要接近

举个例子,如果你在手机端用1.5px的线条,车载屏上建议用2px。因为车载屏的观看距离远,细线条会看不清。但图标的「骨架结构」必须完全一致。

避坑指南:我曾经在项目中用了一套第三方图标库,结果不同屏幕上的图标风格差异很大。后来我们自建了一套SVG图标库,统一了所有图标的viewBox和路径规范。

4.4 间距网格:让布局「有迹可循」

间距网格,说白了就是让所有屏幕上的元素间距遵循同一套「节奏」。

我个人习惯用8px网格系统。为什么是8?因为大多数屏幕的像素是整数倍,8px能整除大多数常见尺寸(比如16、24、32、40、48)。

但这里有个坑:不同屏幕的物理尺寸不同,直接用8px会导致小屏上间距太大,大屏上间距太小。

我的做法是:定义一套「间距等级」,每个等级对应一个物理尺寸

间距等级 手机端 车载屏 智能手表
xs 4px 6px 3px
sm 8px 12px 6px
md 16px 24px 12px
lg 24px 36px 18px
xl 32px 48px 24px

你想想看,如果所有屏幕都用「md」这个等级,手机上是16px,车载上是24px,手表上是12px。虽然数值不同,但视觉比例是统一的。这就是「间距网格」的核心思想。

小技巧:在代码里用CSS变量来定义间距等级,这样改一个值,所有屏幕的间距都会同步更新。

4.5 统一设计的关键:建立「视觉语言规范文档」

说了这么多,最后我想强调一点:所有规范必须文档化

我见过太多团队,规范都在设计师脑子里。结果设计师一离职,新来的设计师完全不知道该怎么画。嗯,这其实是个管理问题。

一份好的视觉语言规范文档,至少应该包含:

  • 色彩体系:色板、使用场景、禁用场景
  • 字体规范:字号等级、行高、字重、字体族
  • 图标规范:风格定义、尺寸规范、使用示例
  • 间距网格:等级定义、计算公式、适配规则

而且这份文档要放在团队都能访问的地方,比如Confluence或者Notion。每次更新都要通知所有人,避免出现「各用各的版本」的情况。

总结一下:色彩、字体、图标、间距——这四个东西统一了,多屏系统的视觉语言就成功了一半。剩下的,就是严格执行和持续迭代。

下一章我会讲交互模式的一致性设计,包括手势、动画、反馈机制。到时候再聊。