质感设计-样式-字体排印Typography

目录

原文:Typography – Material Design 3

本文:http://tommwq.work/blog/%E8%B4%A8%E6%84%9F%E8%AE%BE%E8%AE%A1-%E6%A0%B7%E5%BC%8F-%E5%AD%97%E4%BD%93%E6%8E%92%E5%8D%B0.html

字体排印让文字清晰美观。

1 概览Overview

  • 排版样式包括:显著标题Display、主标题Headline、标题Title、正文Body和标签Label。
  • 应用可变字体,提供更多选择。
  • 使用设计标记定义字体、行高、尺寸、字距和字重。

typography1.png

1.1 亮点Highlights

1.1.1 可变字体Variable fonts

Roboto Flex和Roboto Serif

关于可变字体的考虑因素包括轮廓Grade、宽度Width、光学尺寸Optical Size等维度。

typography2.png

Roboto Flex和Roboto Serif在大尺寸下具有连续的变化范围,从极细到极粗各种样式。

1.1.2 五种字体样式Five type styles

样式类型按照五种职责进行定义:显著标题display、主标题headline、标题title、正文body和标签label。

以职责命名可以传递更多意义,能够在更广泛的用例中轻松运用。

typography3.png

图3  质感设计第三版拥有5中不同的字体样式:显著标题、主标题、标题、正文、标签。

1.1.3 字体排印标记Typography tokens

质感设计早期版本对字体排印样式采用硬编码。设计标记提供了在产品中定义字体排印的改进方法。标记为元素样式分配一个可配置项,而非固定编码。

字体职能规定了尺寸,如小号、中号和大号,让排印能够匹配设备或环境。

typography4.png

图4  字体排印标记提供多种尺寸以适配设备或设置。

2 字体Fonts

2.1 默认字体Default typefaces

安卓系统的默认字体是Roboto。

Roboto包含3300多个字形,包括世界上的数百种文字。

要获得额外的字体排印灵活性,可以使用Roboto衍生的可变字体Roboto Flex。它扩展了字重、字宽和其他可定制属性(如特定尺寸设计)的范围,还包括900多个字形,支持拉丁字母、希腊字母和西里尔字母。

typography5.png

图5  Roboto Flex包含全部Roboto样式,以及更多字重和字宽,为更多尺寸提供优化。

Roboto Serif是另一个可变字体系列,旨在创造舒适阅读体验。体积虽小,功能强大,可以用到任何地方(包括应用界面),因为它在多种尺寸上具有可扩展的字重和字宽。

typography6.png

图6  Roboto Serif提供了多种字重和字宽。

Noto是一种全球字体集合,支持所有现代和古代字符。

Noto Sans字体系列与Roboto字体兼容。Noto Sans支持150多种花体和数千种文字。对于不支持的文字,Note可作为“后备”字体。

了解更多关于文字字体排印的思考

typography7.png

图7  不同书写系统下的多种Noto Sans字体

3 字体等级和标记Type scale & tokens

3.1 字体等级Type scale

字体等级是在整个应用中使用的一系列字体样式,提供灵活一致的样式以实现多种目标。质感设计字体等级由15种不同样式组成,每种都有特定应用和意义。样式按照用途分配(例如显著标题或主标题),根据尺寸(大或小)归类。在质感设计默认字体等级中,标题、标签、正文均采用Roboto字体,提供一致体验。

typography8.png

图8  字体等级是一组不同的样式,以满足产品环境和内容的不同要求。单一产品很少使用所有的字体样式。应当从字体等级中选择适合样式。

3.2 字体排印标记Typography tokens

表1  字体排印样式
职能尺寸样式设计标记默认值
显著标题大号字体md.sys.typescale.display-large.fontRoboto
行高md.sys.typescale.display-large.line-height64
尺寸md.sys.typescale.display-large.size57
字距md.sys.typescale.display-large.tracking-0.25
字重md.sys.typescale.display-large.weight400
中号字体md.sys.typescale.display-medium.fontRoboto
行高md.sys.typescale.display-medium.line-height52
尺寸md.sys.typescale.display-medium.size45
字距md.sys.typescale.display-medium.tracking0
字重md.sys.typescale.display-medium.weight400
小号字体md.sys.typescale.display-small.fontRoboto
行高md.sys.typescale.display-small.line-height44
尺寸md.sys.typescale.display-small.size36
字距md.sys.typescale.display-small.tracking0
字重md.sys.typescale.display-small.weight400
主标题大号字体md.sys.typescale.headline-large.fontRoboto
行高md.sys.typescale.headline-large.line-height40
尺寸md.sys.typescale.headline-large.size32
字距md.sys.typescale.headline-large.tracking0
字重md.sys.typescale.headline-large.weight400
中号字体md.sys.typescale.headline-medium.fontRoboto
行高md.sys.typescale.headline-medium.line-height36
尺寸md.sys.typescale.headline-medium.size28
字距md.sys.typescale.headline-medium.tracking0
字重md.sys.typescale.headline-medium.weight400
小号字体md.sys.typescale.headline-small.fontRoboto
行高md.sys.typescale.headline-small.line-height32
尺寸md.sys.typescale.headline-small.size24
字距md.sys.typescale.headline-small.tracking0
字重md.sys.typescale.headline-small.weight400
标题大号字体md.sys.typescale.title-large.fontRoboto
行高md.sys.typescale.title-large.line-height28
尺寸md.sys.typescale.title-large.size22
字距md.sys.typescale.title-large.tracking0
字重md.sys.typescale.title-large.weight400
中号字体md.sys.typescale.title-medium.fontRoboto
行高md.sys.typescale.title-medium.line-height24
尺寸md.sys.typescale.title-medium.size16
字距md.sys.typescale.title-medium.tracking0.15
字重md.sys.typescale.title-medium.weight500
小号字体md.sys.typescale.title-small.fontRoboto
行高md.sys.typescale.title-small.line-height20
尺寸md.sys.typescale.title-small.size14
字距md.sys.typescale.title-small.tracking0.1
字重md.sys.typescale.title-small.weight500
正文大号字体md.sys.typescale.body-large.fontRoboto
行高md.sys.typescale.body-large.line-height24
尺寸md.sys.typescale.body-large.size16
字距md.sys.typescale.body-large.tracking0.5
字重md.sys.typescale.body-large.weight400
中号字体md.sys.typescale.body-medium.fontRoboto
行高md.sys.typescale.body-medium.line-height20
尺寸md.sys.typescale.body-medium.size14
字距md.sys.typescale.body-medium.tracking0.25
字重md.sys.typescale.body-medium.weight400
小号字体md.sys.typescale.body-small.fontRoboto
行高md.sys.typescale.body-small.line-height16
尺寸md.sys.typescale.body-small.size12
字距md.sys.typescale.body-small.tracking0.4
字重md.sys.typescale.body-small.weight400
标签大号字体md.sys.typescale.label-large.fontRoboto
行高md.sys.typescale.label-large.line-height20
尺寸md.sys.typescale.label-large.size14
字距md.sys.typescale.label-large.tracking0.1
字重md.sys.typescale.label-large.weight500
中号字体md.sys.typescale.label-medium.fontRoboto
行高md.sys.typescale.label-medium.line-height16
尺寸md.sys.typescale.label-medium.size12
字距md.sys.typescale.label-medium.tracking0.5
字重md.sys.typescale.label-medium.weight500
小号字体md.sys.typescale.label-small.fontRoboto
行高md.sys.typescale.label-small.line-height16
尺寸md.sys.typescale.label-small.size11
字距md.sys.typescale.label-small.tracking0.5
字重md.sys.typescale.label-small.weight500

质感设计字体等级包含两种参考标记类型:品牌和基础。你可以在设计中使用两个不同的字体系列。品牌字体(标记为md.ref.typeface.brand)建议用于大号文字,如主标题Headline和显著标题Display。基础字体(标记为md.ref.typeface.plain)则用于小号文字,如正文字体Body和标签Label。

3.3 定义字体等级Customizing your type scale

如果需要支持不同尺寸的设备,可以定义字体等级,添加或移除样式,甚至使用其他字体替换Roboto。

质感设计采用以14号为基准尺寸的大二度字体等级。基准尺寸是排版正文最常用的样式。

typography9.png

图9  质感设计字体等级采用大二度比例(1.125)。

字体等级渲染尺寸应当以产生显著区别为目标,避免细微差异。

typography10.png

图10  质感设计字体等级包含15种样式。

typography11.png

图11  你的产品大概不会使用质感设计字体等级中全部的样式。在本例中,我们选择五种字体尺寸,忽略其他样式。

typography12.png

图12  如果质感设计字体等级无法满足需求,你可以修改相应数值。本例中,我们将中号显著标题样式修改为不同的尺寸。

在定制字体排印时,首先将选定字体应用到现有样式,匹配字体尺寸和字重。然后调整行距和字距来满足定制要求。粗字体需要大字距,长字符也需要不同的间距。

typography13.png

图13  自定义字体创造独特表现力。

3.3.1 字体尺寸单位Font size unit

下列单位用于描述Android和Web应用字体尺寸。

平台AndroidWeb
字体尺寸单位sprem
转换比例1.00.0625

Web浏览器按照根元素尺寸计算rem(基准em)。当代Web浏览器的默认值通常是16像素,转换关系为SP_SIZE/16 = rem。

3.3.2 转换示例Example conversions
AndroidWeb
10sp0.625rem
12sp0.75rem
24sp1.5rem
60sp3.75rem
3.3.3 字距单位Letter spacing units

下列是界面中的字距单位。

平台AndroidWeb
字距单位emrem
转换比例字距像素值/字体尺寸sp值字距像素值/字体尺寸sp值
3.3.4 字距示例
AndroidWeb
(0.2字距/16sp字体尺寸)=0.0125em(0.2字距/16sp字体尺寸)=0.0125em

3.4 调整维度Adjustable axes

尽管可变字体可以拥有很多种属性,就于产品设计而言,其中最有用的四种样式属性(或维度)是:字重、轮廓、宽度和大小。

3.4.1 字重Weight

字重是定义字体中字形笔画粗细的属性。常用的字重有常规regular和粗体bold。字重范围可以包括从极细到极粗的各种样式。

可变字体通常会提供一系列连续的笔画粗细变化,提供无限多种字重。

typography14.png

图14  可变字体Roboto Flex提供了连续变化的字重范围。

3.4.2 轮廓Grade

轮廓是对字体笔画粗细的次要调整,和字重是不同的维度。字重和轮廓都会影响笔画粗细,轮廓调整更为细腻,不会改变字符宽度和换行位置。

typography15.png

图15  Roboto Flex提供的轮廓范围从-150到+200。

typography17.png

图16  在深色与浅色模式切换时,同一样式的字符可能变得粗重。此时可以用负轮廓抵消影响。

typography18.png

图17  轮廓可以改变显著程度,不影响文字布局。

3.4.3 宽度Width

宽度是字符占据的水平空间大小。宽度小每行能包含更多字符,宽度大能够体现个性。

typography19.png

图18  Roboto Flex提供的宽度范围从25至150。

typography20.png

图19  正例:宽度小包含更多字符,适合于小区域(如标签)。

typography21.png

图20  反例:宽度大占空间,避免用在空间受限区域(如顶部应用栏)。

3.4.4 光学尺寸Optical size

光学尺寸是同一字体在不同尺寸下的优化版本。小号字体注重可读性。大号字体充分展现文字形态细节,提供多种字重和宽度。

typography22.png

图21  Literata字体提供了7pt到72pt的光学尺寸。

typography23.png

图22  正例:请使用与字体尺寸相匹配的光学尺寸。

typography24.png

图23  反例:不要在小号字体中使用大号光学尺寸。选用较小的光学尺寸。

4 选择字体样式Applying type

字重、尺寸、行高和字距的差异可以表现层级结构。质感设计最新的字体等级将样式分为五种职责,按用途命名:显著标题Display、主标题Headline、标题Title、标签Label和正文Body。这些职责独立于具体设备,易于应用到多种场景。

4.1 字体职责Roles

4.1.1 显著标题Display

有三种显著标题样式:大号、中号、小号。显著标题是屏幕上最大的字体,用于简短的重要文字或数字,在大尺寸屏幕上效果最好。显著标题建议选用表现力强的字体,比如手写体或花体。并尽量选用适当光学尺寸。

typography25.png

图24  表现力强的字体可用于显著标题。

typography26.png

图25  使用显著标题卡片。

typography27.png

图26  强表现力字体用醒目设计吸引读者。

4.1.2 主标题Headline

主标题适合在小屏幕上显示简短的强调文字。这类样式用于标记重要段落或内容。主标题可以使用表现力强的字体。为了维护可读性,要选择适当的行高和字距。

typography28.png

图27  主标题可以选择表现力强的字体。

typography29.png

图28  小屏幕上显示的短文本采用主标题样式。

typography30.png

图29  使用主标题样式的对话框。

4.1.3 标题Title

标题比主标题小,相对较短的中等强调程度文字。例如,用标题样式来区分次要段落或内容。标题不建议使用表现力强的字体,如展示字体、手写体和花体。

typography31.png

图30  新闻标题采用标题样式吸引读者注意。

typography32.png

图31  使用标题样式的顶部应用栏。

typography33.png

图32  要闻:在分类头部使用标题样式的示例。

4.1.4 正文Body

正文样式用于在应用中展示的大段文字。适合正文样式的字体应该是在小尺寸下可读性强的,可以让用户舒服的阅读大段文字的。不要使用表现力强的或装饰性的字体,它们在小尺寸下难以辨认。

typography34.png

图33  正文样式必须保证大段文字的可读性强。

typography35.png

图34  一篇使用正文样式的介绍食谱的文章。

typography36.png

图35  示例:在设置流程中使用正文样式。

4.1.5 标签Label

标签样式是较小的、面向功能的样式,用于组件内的文字或内容中的小号文字,比如图片说明等。例如,按钮组件使用大号标签样式。

typography37.png

图36  标签样式应当能在小尺寸下快速阅读,例如在按钮中。

typography38.png

图37  使用标签样式显示时间的音乐播放器。

typography39.png

图38  使用标签样式显示目标文字的导航栏。

4.2 排版Typesetting

垂直排版使用内边距、外框盒子和基线来保证文字在任何尺寸下的可读性。

在设计排版时要考虑工程实现和平台规范,包括字体缩放、密度和自适应布局中的文字。

4.2.1 使用内边距和外框盒子排版Using padding and bounding boxes

适用于Web和iOS应用。某些设计工具也使用外框盒子排版,但方法不同,需要适配工程实现。在Web界面中,行高与外框盒子高度相同。文字在外框盒子内垂直居中,遵照CSS的“半行间距”标准。文字的垂直位置不能直接设置,是通过外框盒子和字体度量共同决定。

typography40.png

图39  外框盒子高度由指定的行高决定,文字上方和下方的空白距离相同。

内边距是界面元素之间的空白,例如图片与外框盒子,或外框盒子内边缘与文字之间的空间。

typography41.png

图40  外框盒子里文字周围的内边距。

指定界面元素到固定参照点(如容器边缘)的距离。Web应用可以使用Sass或CSS自动计算属性值。

typography42.png

图41  在Web和iOS应用中使用行高、内边距和容器尺寸设定排版。

使用内边距和外框盒子实现垂直对齐:

  1. 行高 外框盒子高度。
  2. 居中 使用居中对齐让外框盒子内部上下两边有相等的距离。
  3. 距离 利用外框盒子高度和上下内边距来确定距离。

typography43.png

图42  1. 行高 2. 居中 3. 距离

4.2.2 使用基线排版Using the baseline

适用于Android应用和跨平台应用。基线是一个虚拟线,文字排列在基线之上。在质感设计中,基线是衡量文字与其他元素间垂直距离的重要规范。

typography44.png

图43  一行文字排列在不可见的基线上。

对于Android平台,指定相对于基线的距离可以实现精确排版。基线可以在设计师之间传递文字位置信息,不受平台或设计工具的影响。

typography45.png

图44  Android屏幕依赖于到基线的距离。

使用基线实现垂直对齐:

  1. 行高 从一行文字的基线到另一行文字基线的距离。
  2. 居中 以中心对齐为参考,而非测量到基线的距离。
  3. 距离 使用基线到固定参照点的距离。

typography46.png

图45  1. 行高 2 居中 3 距离

4.3 确保可读性Ensuring readability

4.3.1 行高Line height

行高是指每行文字之间的距离,与字体大小直接相关。质感设计类型标记针对尺寸和用途进行了优化。

typography47.png

图46  使用标题、主标题、显著标题的大号文字建议使用1.2倍行高保证可读性。

typography48.png

图47  使用正文和标签的小号字体建议使用1.5倍行距。行高过于紧密将破坏文字流畅性,行高过于宽松,各行之间不连贯。

4.3.2 表格数字Tabular number

在表格或数值频繁变化的地方(例如时钟),使用表格数字(也称等宽数字),不要使用比例数字。使用等宽数字来保持数值在视觉上对齐,便于浏览。

typography49.png

图48  1 比例数字 2 等宽数字

typography50.png

图49  使用等宽数字防止当数值改变时布局发生位移,例如时钟界面。

4.4 在排版中使用质感符号Using Material Symbols with typography

质感符号的设计借鉴了字体设计决策。符号经常出现在文字旁边。合适的图标能将界面内容紧密联系起来,增强产品整体的品牌感。

typography51.png

typography52.png

图51  正例:符号和文字尺寸一致。

typography53.png

图52  反例:混用不同尺寸的符号和文字。

typography54.png

图53  正例:符号和文字线条粗细一致。

typography55.png

图54  反例:符号和文字线条粗细不同。

typography56.png

图55  正例:符号基线下移文字尺寸的11.5%。

typography57.png

图56  反例:符号和文字使用相同基线。

4.5 无障碍性Accessibility

4.5.1 色彩与对比度Color & contrast

选择合适的文字背景对比度提供视觉无障碍性。色彩对比是两种色彩亮度之间的感知差异,用对比度衡量。关键对比度表明了无障碍对比级别。

typography58.png

文字应当与背景色之间产生足够的对比度。足够的对比度取决于字体大小和需要的无障碍级别。

typography59.png

typography60.png

排版文字的默认色彩是表面前景色彩on surface。表面前景色彩on surface variant是一个很好的备选项。

typography61.png

图60  排版文字的默认色彩。

在表面色彩展示上的超链接文字使用主要色彩primary color或第三色彩tertiary。超链接文字应当加下划线。

typography62.png

图61  超链接文字应当加下划线,使用主要或第三色彩。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值