设计3分钟——建立一套字体系统

2018-11-15  本文已影响0人  william吴

Hello,大家好,G哥又来了,这次给大家更新一个炒鸡有用的快速建立一套字体系统的方法。众所周知,在UI设计领域,字体规范的建立是一个重头戏。那么如何建立一套自己的字体系统呢?

参考资料:Youtube设计博主的这个视频教学(科学上网)的快速建立一套字体系统的方法,有兴趣的小伙伴自己可以看看。本文还参考了阿里Antdesign的字体模块,感兴趣的可以去看看。

——废话少说,开始正文——

字体系统目前的设定主要有几点需要注意(新手向,老手可跳至下一个分割线):

字族 / 字重 / 字号 / 行高 / 对齐方式 / 字体样式 / 字色 / 字体用途


字族:字体种类——比如微软雅黑,苹方分别属于不同的字族;open sans和open serif也属于同一字库下的不同字族;这里还有衬线体,无衬线字体,花体等不同风格的字体,这个网上介绍比较多,就不多言了。

字重:字体的分量——比如常见的正体(常规),粗体,细体,中粗体;regular,bold,light等;

字号:字体的大小

行高:每行字体的高度

字体样式:下划线,斜体,这个因软件而异

字色:字体颜色

字体用途:字体在当前场景下的用途,是标题,正文,标签,说明文字等

——真正的开始——

字族,字重,字体样式,字色这4个基本都是比较简单向的常规操作,这里就不再赘述。下面重点介绍一下字号和行高的确定。

/字号

字号确定方式跟数学有莫大的关系,5层的字级关系可以有下面几种方式实现:

1.等差

——相邻字号差值固定

例:16px,18px,20px,22px,24px ... 差值为2(差值可自定义)

缺点:差值过小时字号对比层次不够明显,可以将差值调整合适范围,也可将差值构成斐波那契数列

2.等比

——相邻字号比值固定

例:16px,23px(16*1.414),33px(23*1.414),47px(33*1.414)... 比例为1.414,一般字号四舍五入取整数。

本方法是主流使用方法,这边提供一下比值,由小到大依次为(常用比例数值加粗): 

15:16 —— 1.067(小二度)

8:9 —— 1.125(大二度)

5:6 —— 1.200(小三度)

4:5 —— 1.250(大三度)

3:4 —— 1.333(完美四度)

1:√2—— 1.414(对角四度)

2:3 —— 1.500(完美五度)

5:8 —— 1.600(小六度)

1:1.618 —— 1.618(黄金选择)

3:5 —— 1.666(大六度)

9:16 —— 1.777(小七度)

8:15 ——1.875(大七度)

1:2 —— 2(八度)

2:5 —— 2.5(大十度)

3:8 —— 2.66(大十一度)

1:3 —— 3(大十二度)

1:4 —— 4( 双八度)

可以根据需求使用,关于不同系数的对比将在以后更新(可能是个坑)

这里有字号大小比例对比的参考网站,可以在线预览不同缩放比例效果:

http://type-scale.com/   和   https://www.modularscale.com/


3.斐波那契数列(黄金分割)

——相邻字号的和为下一个字号的值

例:16px,16px,32px(16+16),48px(32+16),80px(32+48) ...

缺点:字号对比略大,建议信息层级少的情况下使用

字号的确定关键点在于基础字号的确定。基础字号要大于等于平台最小可识别文字(最小可识别文字:网页12px,移动端2倍下24px,平面印刷一般6点)

所以,把这个比例用到自己的字体系统中去,必定会更加有韵律。这一点不论是UI设计,对于视觉设计,应当是共通的。


/行高

行高是一个比较纠结的地方,目前没有一个统一定论。

根据文本内容不同一般在 

1——1.2——1.3——1.4——1.5——1.6——1.8——2——2——2.2——2.4——2.5倍行距内选择。

Web

目前的现有的antdiesign解决方案里,通过字号+8的方式来确定行高,原地址,截图如下:

上下对比红蓝框可得出8的差值

在工作中我也使用过这套方案,唯一的感受就是,在非大量阅读文本下很不错,但是在针对长时间阅读性文本建议还是1.6或1.8倍的行距。(对于antdesign的字号大小一直没搞懂规律,关于5音阶的参考找到了国外文章但是对方是使用17个音阶,自然律是e=2.71828……,只能大致计算相邻字号比例近似约1.2,期待有朋友解答 ——  。——)

其实还有小伙伴有一些经验这里做一个收录:

APP中的行高,你做对了吗?——主要介绍行高的作用和常用参数

你不知道的sketch字号、行高、段落的秘密!——近期的文章,iOS 文本行高标注解决方案


UI

由于中西文字体的差异,以及不同平台的字体也不同,在这里针对不同平台提供sketch中文行高修正插件:

安卓修正(Auto Fix Android Text LineHeight);

Android 默认字体为思源黑体,但修复行高后会出现错位,实际使用中可考虑使用苹方替代(汉字高度字型接近)视觉不受影响,至于修复后文字上下位移问题,建议先修复行高再调整上下元素间距。

ios修正(Auto Fix iOS Text Line Height);

仅针对 iOS 字体行高在程序开发中的还原(仅测试过苹方字体)


UI设计中的字体系统(sketch)

在UI设计中字体系统规范就根据上面的基准——对文本样式命名(sketch里对组件命名能快速高效整理你的设计和团队协作):

P/Roboto/black/center/regular

lable/opensans/white/left/bold

用途/字族/字色/对齐方式/字重 (如果只用一个字族就可以省略此项)

最终得到的层级关系:

总层级/子层级一/子层级二/子层级三/子层级四

创建symbol的层级关系用斜线区分总层级和子层级——不区分中英文输入法,不用加空格)

这种命名方式在sketch里非常高效,虽然刚开始比较麻烦,但是一旦后期规范建立,效率嗖嗖的。

Sketch52之前的版本创建文本的符号(Symbol)按照此规则命名就可以创建自己的一套文字规范。

Sketch52之后创建符号(symbol)结合创建不同样式,只要按照命名规则分类,能更快速的创建文字规范,而且更换的时候并不会内容初始化。

接下来会写一篇关于sketch52更新的一些功能尤其是关于组件和样式的巨大变化(更加不一样的组件化),请小伙伴们敬请期待。

上一篇 下一篇

猜你喜欢

热点阅读