编者注:UI设计中的间距到底是什么,有什么作用,如何合理有效地使用?本文整理总结了五个方面,帮你掌握间距设计的方法。
前言
很多时候,我们发现自己精心设计的作品总是乱乱的感觉,究其根本,大部分都是文字、图形、色彩处理不当,后续的优化调整也都围绕着这几点进行,这也是为什么设计师在制定设计规范的时候,会把文字(标题、正文、提示的字号)、色彩(主色、辅助、点缀、渐变的使用场景)规范分的很细。然而,有时候即便用好了规范,依然没达到理想的视觉效果,这里就要提到设计规范中很少有人关注、且非常容易被忽视的「间距」问题。
优秀的界面设计应该体现在每个维度,间距在设计中也是不可缺少的部分,尤其是界面元素较为密集时,需要对间距的使用掌握得当,合理的利用间距留白,能将信息更高效的传达给用户。
文字、图形、色彩是 UI 设计的三大组成元素,间距即是这几种元素结合的媒介,如何通过间距给用户带来更舒适的视觉体验是设计过程中极其重要的一环,那么你所理解的间距到底是什么、有什么作用、如何合理有效的使用?笔者进行了整理总结,通过本篇文章揭晓。
一、间距在 UI 中的重要性
1. 什么是间距?
间距指的是界面各元素彼此相隔的距离,可以是文字自身的行距、与图片、与组件、与模块的间距,或是界面两侧的安全距离(如网页的宽度为 1920px,内容区为 1400px,那么安全距离为两侧各 260px)等。
作为 UI 设计师,在设计界面的每一个元素都需要考虑到上、下、左、右以及毗邻元素的属性来合理调整间距,利用各间距之间的规律来组织界面内容,确保信息的节奏性,给用户轻松、预约的浏览体验。
2. 间距的实际作用
间距可以让界面信息更有节奏,提升内容的可读性,还能通过不同的疏密程度来阐述各元素之间的关系,以吸引用户的注意力,所以在控制界面间距时,一定要有"较真"的心态,任何一次的改动与调整都要先考虑清楚为什么,能给产品和用户带来什么。要做好间距,不能仅停留在视觉层面,需要进行多方面思考。
设计师层面:规范的定义间距,不必每个元素都去考虑间距的大小,有效减少决策和思考时间,提升效率。
开发层面:开发可以按照基础间距去定义变量,长期如此,虽然不能炼成像素眼,但仅凭视觉也能看出间距的倍数。例如基础间距以 8px 增量,在使用 8px、16px、24px、32px、48px…等,开发直接使用基础间距 x1、x2、x3…,以此类推,在开发眼中,肉眼定然看不出 1px 的差别,但却能区分出 8px 的差距,不必每次都去测量,还能减少误差,高度还原设计效果。
用户层面:有节奏且具备一致性美感的界面效果,信息的有效传递变的轻松,用户体验能得到很大程度的提升。
3. 间距的统一性
设计规范的目的是提升设计师的工作效率、团队之间的高效沟通、让设计风格始终保持高度统一。同理,间距也是设计规范中非常重要的一环,它作为规范中的最小单元,如果没有遵循统一,将会直接影响界面整体的版式和布局,信息的疏密程度严重影响用户的浏览。不仅是设计师,开发每次面对同样的模块都需要定义不同的间距也是崩溃的,毫无规律可循。
统一的间距能让界面的视觉效果更有节奏,设计师在设计某些相似的模块时可直接复用组件,即便是多人共同完成同个项目或更换成员,也不会因间距不统一的问题造成整个 APP 的风格混乱。
对开发来说,如果清楚间距的使用规律,即便有小的误差,也能自行更正,例如使用 8px 增量,8、16、24…按倍数规律以此类推,若出现 9 的间距,开发会更正为 8、15 则会更正为 16,自行多退少补,虽然设计师需要细心、尽量不出现这种小的出入,但任何事情都没法做到绝对,统一的间距能让减少设计的出入以及与设计师之间的频繁沟通,能进一步提高开发效率。
从上图可以看出,间距不规范、信息就像一锅粥,而规范的使用间距就能将信息自动分组。
二、定义文字间距
文字是 UI 设计中非常重要的信息元素,虽然大多数设计师对文字的属性比较了解,但在真实设计中总会因其他信息的干扰不能合理运用,与上线后的视觉效果预期相差甚大。文字的各种间距处理看似简单,但实际上有很多因素要考虑,例如字间距、行高、段落等,下面带大家一起了解。
1. 字符间距
字符间距一般都是设计工具的默认数值,无需调整。当碰到多行文字需要避开头尾的标点符号时,使用工具中的避头尾功能即可自动调整字间距,如无此功能,则需手动调整,这里并没有所谓的技巧与方法,头尾避开标点符号即可。
另外,在设计卡片、瓷片区的标题时,有时需要通过调整字符间距来提升界面的舒适度,间距数值自行定义,但相同层级的内容标题字间距一定要保持一致。
2. 文字行高
行高是指上边框+下边框+字号的高度之和,这里主要针对多行文本。在平面设计中,行高没有一定的标准,如无特别需要,使用系统默认的行高即可。
在 UI 设计中,文字会有 5~6 个不同的等级,为便于用户阅读,一般会设定行高标准,尤其是新闻资讯类型的应用本身就以文字内容为主,不同的行高对文字的易读性会产生较大的影响。
文字行高一般会设定为字号的 1.2~1.5 倍,具体值跟字号有很大关系,文字越小,行高就越大。例如,我们可以设定字号 32px 为中间值(非绝对),小于或等于 32 的字体、行高为字号的 1.5 倍,大于 32 的为 1.2 倍。另外,也可以直接将所有行高固定在字号的 1.5 倍,不难发现,字体越大其折行的概率就越低,试想一下,如果将 48px 的文字折成几行,界面还能剩下多少空间?
3. 文字段落
文本段落间距的重要性在移动 UI 界面中并不明显,更多体现在网页设计中。需要着重纠正一点的是,部分设计师在设置段间距时习惯性的多敲一次回车键,这种方式并不可取,会造成间距过大、内容脱节。
如有需要,一定要手动设置段间距,这里没有固定的数值和规律,视觉舒适即可。笔者习惯将段间距设定为字号的 0.5 倍,例如字号为 30、段间距为 15,字号为 40、段间距为 20,仅供参考。
三、定义元素/组件间距
定义间距其实并没有一个绝对的标准,主要取决于最小单位,例如 4px、5px、6px、8px 都是可以的,到底使用哪个数值还得根据产品自身定位及内容组织形式,前提是所有间距都要遵循最小单位并基于倍数形成规律。
在设计界面时,需要利用间距来建立信息层级、提升浏览体验以及表达各元素之间的关系,这就是为什么当我们打开新闻资讯、电商类应用会发现信息非常紧凑,而打开工具、社交类应用时感觉信息比较宽松。间距的基数越小、页面就越细碎;基数越大、页面的留白就越多,使用不同的基数,呈现出来的视觉效果也形态各异。
笔者在工作中通常以 8px 作为基数,以此衍生出 8、16、24、32、48、64 这 6 个间距数值,完全能够满足绝大多数的使用场景。当然,针对信息较少的页面也会使用到 120、160、200…其他间距数值,例如缺省页、登录页面等。不难看出,上述以 8px 为基数定义间距数值时,没有 40、56 这两个数值,难道他们不是 8 的倍数吗?我们以 8 和 16 做对比,后者是前者的 2 倍,其间距的变化尤为明显;但如果用 56 和 64 做对比,后者是前者的 1.14 倍,其间距的差别微乎其微。敲重点,设计师在定义间距时,需要遵循倍数规则,但同时也要为考虑界面美观及用户的浏览体验而跳出呆板的规则,当间距数值越大时,根据基数所跳跃的倍数就越大,其实设定字号也是相同的逻辑(后期详解)。
四、定义模块间距
从信息层级角度来看,等级权重越高、间距就越大,在现实世界中也是如此,一个物体周围的空间越大,就越容易吸引人们的注意力。
模块间距分为块内间距(同一模块中不同元素或信息组之间的距离)和块外间距(同一个页面中不同模块的之间的距离),为了更好的区分信息层级,块外间距一定会大于块内间距,也能保持块内信息的亲密性。
如下图所示,将装修序列步骤、官方攻略、常用服务等看作不同的信息模块,每个模块内元素的间距都会比各模块之间的间距小很多。
五、间距的使用技巧及原则
1. 接近性原则
需要通过各元素的间距来体现出信息的关联性,格式塔原理中的"接近性"原则告诉我们,相互靠近的物体被认为比相互距离较远的物体更有关联性,因此,相关联的元素之间靠的越近,用户越能感知到信息的关联,同时更能了解整个界面中各模块信息的逻辑关系。
2. 利用留白强调
很多时候,想让一个元素变的突出,可以用加大字号、修改色值或后加粗等方式进行强调,但这并不是突出信息的唯一方式,当所有元素都变的突出,那就等于什么都不突出了。如果想让界面中的元素不同程度的突出,留白也是一种强调信息的方式,它能引导用户将注意力集中在特定的内容上。
3. 使用栅格系统
善用栅格系统(上述有详细说明),通过最小间距值进行递增,让整个界面看起来更协调。栅格系统可以让设计师在元素的亲疏关系上更快作出决策,后续不管是迭代还是更换设计成员,都能保持统计的间距规范。
4. 文字行高规则
这个问题在很多团队中都是硬伤,甚至在设计验收时还被直接忽略。在主流 UI 设计工具中,添加文本元素时,都会有默认行高,在前面的内容中有讲过多行文本的行高为字号的 1.2~1.5 倍,那么单行文字的行高到底是需要手动设置还是遵循默认,笔者认为都是可以的,但一定要与开发保持一致。
行高决定着文字边缘与定界框的间距,而开发只能看到定界框与其他元素的间距。
① 默认行高
默认行高值会随着字号的变化基于一定的倍数自动增减,需要将此规律或倍数告知开发,开发将此规则植入代码方能最大化还原设计效果。另外在设计界面时,尤其是多组文字元素的上下间距,需要通过计算(文字边缘到定界框的间距+文字元素间距=实际间距)或手动测量才能达到精准状态,下图为例:
② 手动设置行高
手动设置即字号是多少、就将行高设置为多少,确保文字边缘紧贴定界框,在设计过程中调整间距时,无需计算,根据设计工具的智能提示调整即可。
5. 间距值数量设定
在同一 APP 应用中,根据最小基数定义的间隔值数量不易过多,一般在 6 个左右就能满足绝大多数的设计场景。例如以 8px 的基数为 8、16、24、32、48、64 等,以 5px 的基数为 5、10、15、25、40、60 等。数量过多会导致界面不同元素、模块的间距差异化不够明显,数量太少无法满足多元素、模块使用场景,也会导致间距跨度较大。
6. 明显相邻间距值
设定间距值需遵循一个原则"数值越大、递增的倍数就越大"。当相邻间距值的差异化较小时,用户很难感知到界面中信息之间的逻辑关系,我们需要根据栅格系统中间距值的增大、设置更大的区间值,让相邻间距值之间的视觉差异更加明显。
7. 跳出间距的束缚
当界面中的信息较为密集、间距不足以满足信息的突出程度时,需跳出纯粹的间距规范束缚,换种方式或许更好。例如:给元素添加背景让其聚焦、使用分隔线/色块间隔、调整元素大小等,需知「此消彼长」的道理。
六、结语
如果在处理界面信息层级时,改来改去还是觉得很乱,不防从间距角度出发,或许会有不一样的收获。虽然在刚开始的时候,规范间距带来的效果甚微,但随着团队规模不断扩大、界面数量越来越多、内容越来越复杂时就会发现,所有内容统一间距规范,不管是构建一致性界面视觉效果、还是对开发和设计师来说,既能提升用户体验、还能提高团队的工作效率。
间距是否规范使用,决定着界面是否规整、信息传达是否清晰,即便如此,间距也只是解决信息层级方式的其中之一,切不可让其限制设计师的发挥和思考空间。制定设计规范有助于项目的高效运转,间距也好、色彩也罢,设计师依然需要从实际用户场景出发,通过不断的思考和经验总结,打磨出更合理、更符合项目需求的设计规范。
作者:能量眼球