Skip to content
Calvin's Blog

设计语言

May 15, 2022 — Thoughts

最近大半年,随着字节跳动、腾讯相继开源了自己的设计语言,又让“Design Language”这个词在业界火了一把。

有的厂商也用”Design System”这个词,都是一个意思,我个人认为”Language”比”System”更好。

关于设计语言的鼻祖,应该就是 Apple 的 Human Interface Guidelines (opens in a new window)。我查了一下资料 (opens in a new window)发现,早在 1987 年,Apple 发布 “Macintosh II” 型号个人电脑的时候,Human Interface Guidelines 就诞生了。

现在的业界老二是 Google 的 Material Design (opens in a new window) , 2014 年才发布,纯纯的后生。

为什么需要设计语言?

很多开发团队会遇到这样的情况,一个按钮很多尺寸,颜色,大小,阴影,每个都要定制,不胜其烦。作为开发人员来说,就很希望设计人员有自己的一套规范,规定好按钮在不同状态下的特性,免得总是做冗余操作。但有时候我们已经有了规范,却遇到各种业务方要求个性化,要不一样,导致整个 APP 设计变的很混乱,这是我们工作中经常遇见的。

我们从内外两个方面来阐述为什么需要设计语言:

对内

很多 APP 因为缺少基础原则,导致 APP 界面每个页面都不一样,风格层次不齐,缺乏统一性,所以对内,设计语言是为了解决统一性和效率为前提下,避免开发工程师重复开发一些组件。

对外

统一的品牌符号,品牌特征,有助于加深产品在用户心中的印象,统一的颜色和交互形式能帮助用户加深对产品的熟悉感和信任感,一个好的设计语言本身可以在体验上为产品加分,也能够更好创造一致性的体验。

设计语言解决了什么问题?

一致性

我说设计语言是为了解决“一致性”问题,应该没人会反对吧。UI 的一致性似乎就是大多数设计师所要追求的品质之一,也是为什么我们需要花大量时间去创建品牌方案、风格指南、组件库的主要原因之一。

那你有没有想过为什么“一致性”如此重要呢?苹果在 1987 年发布第一版《Human Interface Guidelines》的开头就给了我们答案:

“The purpose of visual consistency is to construct a believable environment for users… The transfer of skills is one of the most important benefits of a consistent interface, especially for beginning users.” pg. 10

“…consistency makes it easier for a user to learn new applications; it also makes it less likely that a user who follows habits learned from one application will make a disastrous mistake when using a different one.” pg. xi

效率

对于一些经常用到的组件,颜色,分割线,按钮,图标,字体,tab,表单等组件,如果提前设计统一好,能大大减少重复性设计,能让设计师更加专注在设计品质上加强,也可提升研发效率,对于基础的颜色,字体,间距可以提前开发好,减少重复性开发。

比如各大厂商的组件库,对开发者来说就节省很多人力和时间。

设计语言包含什么内容?

我们主要以 Apple 的 “Human Interface Guidelines”为范本来分析,因为它是最规范、最全面的。

一般来说设计语言包括以下几个方面:

设计价值观

设计价值观为设计者提供评价设计好坏的内在标准,启示并激发了设计原则和设计模式,进而为具体设计问题提供向导和一般解决方案。

我们先看看最新的 Apple iOS 的设计主题(Design Themes):

Apple 对每个平台都有自己的设计主题,会结合平台独有的特性做出改变:

再来看看其他大厂的设计价值观:

Ant Design 阿里巴巴的 Ant Design 应该算是国内最早的设计语言了吧,它的设计价值观包括:自然,确定性,意义感,生长性。

Arco Design

字节跳动的 Arco Design 基于「清晰」、「一致」、「韵律」和「开放」的设计价值观,试图建立务实而浪漫的工作方式。

TDesign 腾讯的 TDesign 为了在开源体系的基础上打造具有自身品牌特色且好⽤的产品,秉承包容、多元、进化、连接的设计价值观。

设计原则

有一个叫”Design Principles (opens in a new window)”的网站,里面收集了 1448 个设计原则,195 个案例。这个网站的首页有个问题:What are Design Principles?

它的答案是:

Design Principles are a set of considerations that form the basis of any good product.

什么是设计原则?每个人都有自己的理解,但大家的目标都是一致的,那就是为了最大化产品的影响力及达到以上设计价值观的目标。

有了设计原则,还可以帮助团队进行决策,一些简单的原则性或建设性的问题将引导你的团队做出适当的决定。

下面看具体的案例。

Apple 我们依然是先看 Apple 的设计原则,完全照搬过来,一句话都不想删掉,因为写的太好了:

Ant Design

在企业级业务中使用设计模式,可以显着增加研发团队的确定性,节省不必要的设计,保持系统一致性,让设计师专注于创意最需要的地方。

设计模式遵循 Ant Design 设计价值观,并为企业产品中反复出现的设计问题提供通用解决方案。设计者可以直接使用设计模式来完成界面设计,也可以以设计模式为出发点,衍生出更加针对业务的解决方案,以满足个性化的设计需求。

Ant Design 的设计原则包含很多项:

Arco Design

务实的浪漫主义是对设计语言的形容,它也代表着 ArcoDesign 试图建立的工作模式。

浪漫与务实并非矛盾对立, 它们相辅相成,引导设计方向。通过对务实与浪漫的定义得出设计语言的价值观, 这贯穿着整个设计系统。

清晰与一致的价值观意味着务实的方向, 清晰的效率提升是务实的基础, 品牌的一致性是务实的目的。 韵律与开放的价值观意味着浪漫的方向, 推敲设计的韵律是 Bytedancer 的浪漫, 包容开放的体系才能浪漫的解决问题。

设计原则相当于整个语言体系中的修辞手法, 在实际的词语组成中给我们提供模式化的思考结构。它让整个语言体系更丰满。

Arco Design 设计原则包括:

Facebook

在 Facebook(虽然改名叫 Meta 了,但习惯了) 的设计原则语言里面,也首先强调了它们的设计价值观:

在 Facebook 所有设计中,都围绕这几个点作为设计指导准则。

样式指南

从形色质构字全方面深入页面细节,构建全局样式规范。

下面列出一些需要注意的模块:

总结

设计语言的建立是一个系统的、很复杂的过程,前期一般需要比较高阶的设计来完成。设计语言完成后,对于基础的颜色,色彩,字体不要随意去改动,成本会比较高,至少需要保证这些字体颜色,一两年不要大的变化。

设计语言完善之后带来的收益也是很可观的,不仅仅是设计、产品人员有的放矢,对效率提升也是显而易见的。特别是对 Web、App 的研发人员来说,有了设计语言必然需要自己的组件库,而组件库对研发效率来说就是一把宝剑。

附录:国内外各大厂商的设计语言

名称厂商开源组件库支持平台
Arco Design (opens in a new window)字节跳动React、VuePC
Semi Design (opens in a new window)字节跳动抖音团队ReactPC
TDesign (opens in a new window)腾讯React、VuePC、Mobile、小程序、Flutter
Q 语言 (opens in a new window)腾讯 QQ 团队
Ant Design (opens in a new window)阿里巴巴React、VuePC、Mobile
Element Plus (opens in a new window)阿里巴巴饿了么VuePC
ZarmDesign (opens in a new window)众安科技React、VueMobile、React Native
Taro (opens in a new window)京东React、VueMobile、小程序、React Native
NutUI (opens in a new window)京东VueMobile、小程序
NutUI-JDL (opens in a new window)京东物流VueMobile、小程序
Ke.Design (opens in a new window)链家
Zan Design System (opens in a new window)有赞React、VueMobile、小程序
名称厂商开源组件库组件库支持平台
iOS HIG (opens in a new window) (中文版翻译 (opens in a new window))Apple
Atlassian Design System (opens in a new window)Atlassian
IBM Design System (opens in a new window)IBM
Material Design (opens in a new window)Google
MongoDB (opens in a new window)MongoDBReact (opens in a new window)PC
Fluent UI (opens in a new window)MicrosoftReact/Web/Swift/JavaAll
Primer (opens in a new window)GithubReactPC
Pajamas (opens in a new window)Gitlab
Spectrum (opens in a new window)Adobe
Meta (opens in a new window)Meta (Facebook)
Polaris (opens in a new window)shopifyReactPC
Vercel (opens in a new window)Vercel
Patternfly (opens in a new window)RedhatReactPC
orbit (opens in a new window)Kiwi.comReactPC
Elastic UI (opens in a new window)ElasticReactPC
Airbnb Design (opens in a new window)airbnb
Audi (opens in a new window)奥迪React (opens in a new window)PC
Base web (opens in a new window)UberReactPC
Finastra (opens in a new window)ReactPC,Mobile
Bolt (opens in a new window)PegaReactPC,Mobile