07 | 设计规范:如何统一设计规范,提高沟通效率?

前言

本文来自拉勾网课程整理

作为iOS工程师,我们开发的绝大部分功能都是与用户界面用户交互有关。所以,和设计师协调沟通也成了我们的日常工作之一。在这个过程中,就免不了和他们争论有关间距大小,字体粗细,字号大小,颜色深浅等问题。想必有时候你也很烦恼,怎么和这些设计师们沟通就那么麻烦呢!

其实,这些问题都可以用一套统一的设计规范来解决,从而有效降低沟通成本。有了规范,设计师可以根据明确的指引和预定义好的设计元素,来设计出新的界面;而开发者也能使用预先封装好的、可重用的设计组件实现快速开发。最后,开发的产品为用户提供一致的体验。

那一套统一的设计规范到底是怎样的呢?它通常包括间距、字体、颜色、图标常用组件等,这一讲,我们就一起看看怎样定义这些设计规范吧。

间距

间距(Spacing)是父子组件之间,以及平级组件之间的留白,合理使用间距能有效分离和组织内容,也能保证页面风格一致,提升用户体验。

但是,在实际工作当中,你有没有遇到过打开设计师给的设计稿后发现,同一个界面里的间距定义杂乱无章,不同页面类似组件的间距也大不相同,这样导致的结果是,开发出的 App 在视觉上会给人风格混乱的感觉。

那怎样定义统一的间距呢?其实很简单,我们只保留几个可用的间距,并给它们赋予定义,下面是我们Moments App 的间距定义。

33320b76303566e7e62176bf6a827420

根据我们的经验,在选择间距的值时,为了具有和谐感,我们把间距分成三组:小(Small),中(Medium),大(Large)。两个小间距之间的差别是 4pt,中间距与小间距相差6pt,而大间距直接相差 8pt,给用户一种循序渐进的感觉。这些间距的定义能覆盖 App所有的使用需求了.

有了统一的间距定义,设计师就可以在设计稿里面标注间距的定义,而不是具体的值。开发者也可以通过代码中原先定义好的间距,而无须每次都硬编码(Hardcode)间距的值。

除了iOS以外,统一的间距还可以用到AndroidWeb上,如下面是开源设计规范Backpack 所定义的间距,其包含了iOSAndroidWeb 三个平台。

00bd338fb43b445bf00b24b110b38d17

有了这些间距的定义以后,设计师只需设计一份设计稿,不同平台的开发者都可以使用同一份设计稿进行开发。

字体

任何一款App,都离不开文字,除了其本身传达信息,文字的各种样式,包括字体类型、大小、粗细,在其中也承担着重要角色。比如合理使用行楷会给人美感;字体放大可以暗示优先阅读;字体加粗,会起到强调的作用,吸引用户关注等等。

在开发当中,字体类型、字号大小、字体粗细分别由 Font familyFont sizeFont weight 属性定义。除非有特殊的原因(如品牌需要,或者为了增强游戏体验),iOSApp 一般都使用iOS系统所自带的字体系列。这样更能符合用户的阅读习惯。在自带的字体系列的基础上,通过把字号大小和字体粗细组合起来定义一些字体类型。下面是我们 Moments App 所定义的字体规范。

1bc990c69f15d6f653ff13f3a5696bdf

根据字体类型的时候,我们分成四组:

  • 大标题(Display),用于显示这个页面的唯一标题,使用特大字号(如 42pt36pt);
  • 标题(Titile),用于显示段落的标题,我们提供了五种不同的段落标题,其字号由大变小;
  • 文本(Body),用于显示一般的内容文本,我们提供了普通和加粗两种类型来呈现不同的文本;
  • 小文本(Small text),使用较小的字体来显示辅佐内容,例如备注,版本信息等等。

为了让读者有更好的阅读体验,我们在字体粗细上都统一选择了偏细的字重,比如使用semibold而不是bold,并且选择light而不是regular来定义这套字体。

有了这些字体类型的定义,设计师可以很方便地选择字体,比如在设计文章内容部分时,可以从body或者bodyBold中选择出来,而不需要思考到底是使用 14pt, 15pt 还是 16pt。同时,开发者也可以使用原先定义好的字体组件,提升效率。

除此之外,还有动态字体,因为我们在此之前已经对字体的类型、大小、粗细做了定义,设计师只需要做一个设计稿就行了,无须为不同的字体设计出不同的版本,而我们开发者只需要通过封装好的字体组件来支持即可。

颜色

在一款App的视觉体验中,颜色毫无疑问在其中占据很重要的位置。如果颜色搭配不当,很容易被用户吐槽甚至弃用。所以设计之初,就要对颜色做好规范。

为了给用户提供颜色一致的体验,在 App设计中,我们一般采用统一的调色板(Color palette)来完成。在实际工作当中,你可以和设计师一起在各类开源设计网站中寻找,比如,以天蓝为主色调的 Backpack,还有谷歌的 Material Design还提供了调色板生成工具,你可以根据自己品牌的颜色来生成一个调色板。

8625a0244bed7425fe512adbaee6b259
3fd979487f96d3a66e565a404905fa38

有了调色板,我们就可以在设计常用组件时(如按钮,卡片,警告信息等)使用调色板里面的颜色。例如 Backpack 的主色是天蓝色,在设计按钮时,主按钮的背景可以使用天蓝色(#0770e3)。

为了照顾不同用户的使用习惯,提高夜间视觉体验,iOS系统在原有的浅色模式之外,还提供了深色模式。我们在设计调色板的时候,也最好考虑到对深色模式的支持。

2f153293a7884b7905c8e50f629ffbfb

Moments App 项目中,我们采用Backpack 的调色板来设计深色模式下的颜色。该调色板定义了一组语义化的颜色(Semantic color)供我们选择。比如设计师在选择背景颜色的时候可以根据需要从背景主色、背景副色、背景第三色中任选一个,Backpack 每种颜色都提供了浅色模式和深色模式两种类型,设计师在设计过程中就不需要为这两种模式制作不同的设计稿了,开发者也可以使用定义好的颜色组件来同时支持两种模式,不需任何额外的工作。

需要注意的是,在定义语义化颜色时要特别注意颜色之间的对比度,例如使用了Text Primary Color的文本在使用Background Color的背景下能容易阅读,而使用灰色的背景再使用黑色的文本会难以阅读。

如果你所在团队没有专门的设计师来定义这些颜色,也可以使用iOS提供的动态系统颜色(Dynamic System Colors),它为我们定义了同时支持浅色和深色模式的各种颜色。

图标

图标(Iconography)在App 设计中也承担重要的作用,它可以有效地把功能呈现给用户,例如一个加号(+)的图标能让用户知道点击的时候可以进行新增操作。图标也能简化界面的设计,让页面更加吸引用户,例如在买房的 App 里面我们可以使用一辆车的图标表示多少个车位,一个浴缸的图标表示多少个洗手间,这样能省去大量的文件描述。图标还能帮助用户导航。因此我们在设计App的时候也需要合理地使用图标。

如果你们公司没有专门的图标设计师,那么你可能会购买或者使用一些开源的图标。这里我有一些建议。

首先,同一个App只需要一种图标,千万不要把不同风格的图标混合使用。

其次,如果没有特殊要求,我推荐直接使用苹果公司提供的。具体来说,在 iOS 系统内置的SF Symbols 为我们提供了3150个一致的、可定制的图标,如下面的例子。

6066023a5813fee74011c20f17ef82a4

SF Symbols 有很多优点:

  • 它数量巨大,几乎覆盖所有应用场景;
  • 整合了 San Francisco 字体系统,当用户改变字体大小的时候,这些图标都会自动对齐;
  • 所有图标都支持颜色,我们可以根据需求搭配不同的颜色;
  • 使用这些图标时也无须安装,可以减少App的体积。
  • 我们的 Moments App 也使用到 SF Symbols 来呈现点赞按钮。
86e25fae372e8212fe2b94fc5dd34dc0

SF Symbols 里绝大部分的图标都通过了轮廓和填充两个版本,我们可以使用填充的图标表示选中状态。

737d59cef4b217b58adde783b73066d0

SF Symbols 简介
symbols

常用组件

随着App功能的增多,你会发现一些UI会出现在许多地方,例如下图的用户头像,分别出现在个人主页、朋友圈、点赞处。

6bfdf5dd351d8a307f2a860935850536

在这种情况下,我们就可以把这个重复出现的UI封装成一个常用的设计组件,并纳入我们在制定设计规范中。常用的组件一般有按钮(Button)、用户头像(User avatar)、复选框(Checkbox)、徽章(Badge)等等。下面是 Moments App 设计规定中用户头像组件的定义。

e4b6e6af6492457170260209590c3528

有了用户头像组件,设计师在设计过程中就不需要考虑在呈现头像是需要怎样设计,使用的圆角到底要多少度,是否需要阴影和边框等等。开发者也可以使用原先封装好的组件来加快开发。

需要注意的是,UI组件是在开发过程中发现某个UI反复使用后才封装的,在开始的时候不要贪多,避免定义一堆不用的组件。

总结

我们通过间距,字体,颜色,图标和常用组件为例子来讲述一套统一的设计规范。有了它,能极大降低设计师与开发者的沟通成本,也节省设计师和开发者在设计或实现过程的时间,一举多得

7e32032f5cf2ab8facf18bb8cce4ac77
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容