通常,一个项目将有一组预先确定的字体大小,通常以某种方式命名的变量,试图寻求某种秩序和一致性。 任何规模较大的项目都可以使用这样的东西。 始终有标题、段落、列表等。 你可以在任何地方直接明确地设置字体大小(例如 font-size: 18px
)。 原始 CSS,就其本身而言。 我偶尔会看到这种情况——不仅混合大小,而且还混合像 px
、rem
和 em
这样的单位,毫无章法地混乱无序。
这就是为什么项目的 CSS 通常使用变量或 mixin——我们正在寻求结构、可维护性和最终的一致性。 我们都知道命名很困难,看看命名字体大小变量就知道了。 我们应该如何命名一个小字体大小变量,以便清楚地表明它比一个大字体大小变量小? 如果我们需要在它们之间插入一个新的变量怎么办——这个变量的命名是否清楚地解释了它与其他大小变量的关系?
我们将在本文中继续讨论命名字体大小变量。 但实际上,这个问题超出了字体大小,涵盖了任何类型的大小或长度值。 考虑填充、边距、宽度、高度、边框半径等。 这些东西也需要结构和一致性!
您如何在项目中定义字体大小? 它是否使用自定义变量看起来像这样
:root {
/* Font size variables */
--small: 12px;
--medium: 16px;
--large: 24px;
}
或者可能在 Sass 中(我们将在本文中始终使用它)您可能有 $small
、$medium
和 $large
字体大小的变量。
很好。 过了一段时间,假设设计师添加了一个新的 <h1>
标题用于英雄部分。 而且它非常大。 比你在项目中拥有的任何东西都大。 没问题,你会回答。 你向项目中添加一个 $xlarge
,然后继续你的一天。
第二天,设计师制作了一个不错的表单标签,它再次具有新的字体大小。 然而,这个新大小,虽然比小大,但比中等小。

我们开始吧。
你应该叫它什么? $small-medium
? $small-2
? $smedium
? 无论你叫它什么,你都不会满意。 因为没有这个词。
或者你应该重构它吗? 创建一个新的 $xsmall
,并将所有 $small
实例更改为 $xsmall
? 然后你可以将 $small
用于表单标签? 有一个小的风险,即你可能会忘记更改某个地方,嘿,瞧:一个错误。 下次发生什么,当引入比 $medium
变量值更大的大小时? 我们必须重构 $large
和 $xlarge
吗?
我建议始终遵循一个比例。 一个简单的解决方法是进一步抽象,也许放弃数字和大小,转而使用功能性名称,例如 $form-label
而不是 $small-2
或 $xsmall
。
但想象一下拥有一组这样的字体大小
$small: 12px;
$form-label: 14px;
$medium: 16px;
$large: 24px;
这是一个破损的比例。 它将大小概念和组件概念混合在一起。 它引发了问题。 警报或按钮是否允许使用 $form-label
? 太糟糕了。
也许你在进行希腊语命名,将变量命名为 $alpha
、$beta
、$gamma
? 那么让我问你,什么比 $alpha
大? $alpha-large
? 或者等等,$alpha
是小的吗?
我还见过像 $button-font-size
、$label-font-size
、$blockquote-font-size
这样的名称。 在我看来,这就像每个元素使用一个变量,而不是一个比例,而且听起来如果在多个地方使用相同的值,但使用不同的名称,可能会产生很多重复代码。
也许你正在使用一个基本字体大小和仅百分比? 当然,但我认为你需要百分比的变量。 这就是 Geoff 处理字体大小的方式,甚至他承认这种设置让他自己也皱起了眉头。 使用主观命名的变量进行计算可能对你来说很清楚,但对于任何跳入项目的人来说,看起来很疯狂而且很复杂。
h1 {
font-size: clamp(var(--text-size-large), calc(var(--text-size-base) * var(--text-size-scaler)), var(--text-size-huge));
}
我们需要一个更好的系统
不断添加和删除内容是我们想要的工作方式。 这是现代的开发——MVP、敏捷以及所有其他热门流行语。
我们需要的是一个比例语法,它允许有改变的余地。 向比例添加新的尺寸应该很容易,不会引入破坏性更改。 我正在考虑一种既灵活又无限的比例。 它必须比 $small
、$medium
和 $large
更复杂。
它还应该是描述性和直观的。 最好,你不必在设置文件或配置中查找变量名,或者无论你在哪里存储这些东西。 我一点都不知道 $epsilon
是在 $sigma
之前还是之后。 你知道吗?
使用现有系统
在尝试发明新的东西之前,是否存在我们可以利用的现有语法或系统? 以下是我遇到的几个。
国际 单位 系统
当然,您熟悉“千字节”和“兆字节”之类的术语。 欧洲人非常习惯“毫米”和“厘米”。 其他例子是“吉加”、“太拉”和“拍”。 这些前缀可用于长度、重量、体积等。 $centi
字体大小可以工作吗? 在一定程度上,它很直观,也就是说,如果您熟悉公制系统。 这是一个有限的比例。 而且没有空间添加新的尺寸,因为它们已经设置好了。
传统磅值名称
在计算机和桌面出版问世之前很久,书籍和报纸都是用铅字印刷的。 排字工人对不同的尺寸有不同的名称。 这些尺寸参考了一个磅值(pt
),理论上可以用于像素尺寸(px
)。
这个系统中的字号被称为“小字”、“磅值”、“西塞罗”和“大字”,仅举几例。 这些名称因大陆和国家而异。 此外,同一个名称可能有不同的尺寸,所以……相当混乱。
也就是说,我确实喜欢这个系统,因为它就像是对过去时代古老工艺的尊重。 但这些名称太奇怪了,而且专门用于字号,所以将它用于断点和间距似乎有点牵强。
将日常物品放在比例尺上
如何使用我们日常生活中的东西? 比如辣椒。

有很多种辣椒。 $habanero
比 $cayenne
辣,$cayenne
比 $jalapeno
辣。 那将很有趣,是吗?
但是,尽管我喜欢写 font-size: $tabasco
的想法,但我看到了两个问题。 如果你不喜欢辣椒,你就无法知道哪种辣椒比另一种辣椒更辣——所以,它不是普遍直观的。 此外,甜椒在史高维尔辣度单位上为 0,没有比这更低的。 卡罗来纳死神是世界上最辣的辣椒,所以这个比例是有限的。
是的,辣椒从比例上来说不是更大或更小,而是更辣。 糟糕的概念。 也许更常见的东西,比如球的类型?

有很多种不同的球。 你有手球、足球、排球等。 需要比药球更大的东西吗? 使用 $beach
。 比网球小的东西? 使用 $pingpong
。 这非常直观,因为我想每个人都在某个时候玩过各种球,或者至少从体育运动中熟悉它们。
但乒乓球比高尔夫球大吗? 谁知道呢? 此外,保龄球和足球实际上是同样大小。 所以……同样,并不完美。
扩展到行星可能行得通,但你需要精通天文学。
如何直接使用数字? 我们无法单独使用数字,因为像stylelinter 这样的工具会提出异议。 但像这样可以工作吗
$font-14: 14px;
$font-16: 16px;
$font-24: 24px;
嗯,它是无限的,因为总有空间可以添加新内容。但它也非常具体,而且将实际值作为名称的一部分有一些缺点。假设 $font-18
在很多地方使用。现在,他们说,所有使用 18px
的地方都要改成 19px
(因为某些原因)。现在我们需要将变量从 $font-18
重命名为 $font-19
,然后将 $font-19
的值从 18px
改成 19px
。在我们最终将所有使用 $font-18
的地方更新到 $font-19
之前,这就是我们要做的。这几乎就像使用原始 CSS 一样。可维护性得分很低。
动物界怎么样呢?

大自然在这个地球上提供了无数的物种,这对这种情况很有帮助。想象一下这样的情况
$mouse: 12px;
$dog: 16px;
$hippo: 24px;
需要比老鼠更小的东西?使用 $bee
、$ant
或 $flea
。比熊大?尝试 $moose
或 $hippo
。比大象更大?好吧,你有 $whale
,或者,我们可以回到史前时代,使用 $t-rex
。这里总有动物可以挤进来。非常灵活,非常直观,也是无限的(几乎)。而且也很有趣——我不介意使用 font-size: $squirrel
。🤩
但话说回来,即使那样也可能需要引用变量,除非我们确切地知道我们的字体大小动物园中包含哪些动物。但也许这不是什么大问题,只要它能够扩展。
我已经花了太多时间思考这个问题了
或者我没有?代码库是你花费工作时间的地方。它是你的工作环境,就像椅子和显示器一样。工作场所应该是一个不错的地方。
你如何处理你的字体大小比例?你有一个系统用于字体,另一个系统用于边距等?任何人都可以跳进你的代码并理解所有内容是如何组织的吗?请在评论中告诉我!
是的,我去年一直在思考同样的问题。
对于数值,我只是在名称中包含数字。
或者为了避免使用幻数,直接使用排版比例,这样变量中的数字就有意义了。此外,垂直节奏也有助于以相同的方式实现间距。
对于颜色,我使用诸如
primary
、secondary
、tint
、accent
等关键字。很棒的写作和比较。这说明了这个问题有多复杂!
我肯定发现自己在使用
--small
,然后是--smallest
和--smaller
,这是一个很滑的斜坡!在理想的世界中,我们可以使用扩展的命名系统,并且在编码时记住它们,但我认为无论如何我们都会经常查看定义,无论是颜色、字体名称等等。
也许这里有太多反语义思维?“大”与 H1 不同,H1 可能比 H2 小,或者可能是特定于上下文的。
作为一名排版人员而不是一名编码人员,一切都变成了正文大小的百分比,这是唯一的固定值。
H1-H6 始终是大到小,例如,如果你需要 H1 的变体来处理特殊情况,它就会变成 H1-large 或 H1-landing 或其他什么,并没有太多这样的情况。
就像标题或法律文本一样,它们是罕见的例外,名称足以让人猜到它们会很小,而不是很大。因此,按用例命名对我来说足够有意义。
你可以参考音乐命名法中的半音,使用
$smallSharp
、$mediumFlat
(甚至可能$bMedium
),或者(我的偏好)$demiMedium
将项目放在$small
和$medium
之间$subMedium
(但不是$superSmall
——那会很混乱)、$semiSmall
、$lesserMedium
、$greaterSmall
、$underMedium
和$greaterSmall
也浮现在脑海,虽然没有那么有用。这很适合模块化比例。很可能有很多东西可以从音乐中借鉴,然后直接将其应用到 CSS 中,作为整体结构/规则。
我认为,一般来说,一个网站只应该使用有限数量(少数)的字体大小,因此名称列表不需要很长。一个想法是使用
font-weight
比例来表示类型,就像$size-100
是最小的,$size-900
是最大的,你可以在两者之间使用所有内容。需要在100
和200
之间添加一个大小,尝试150
。我正要评论来说明这个确切的情况!
Andy Bell 的 Cube CSS 向我介绍了这一点,对于以 400 为“基准”提供立即可见的比例非常有用。
我个人喜欢使用严格的排版比例(如 Utopia 生成的那些)以 100 为倍数,如果我需要临时大小,就把它们放在两者之间合理的位置。
我喜欢它,我会尝试一下。
颜色也是如此,你的调色板从“green-100”到“green-900”,在极少数情况下你需要一个不在其中的色调(或者非常接近一个……),你总是可以使用“green-150”。
嗨!我是 UX/UI 设计师。设计师可以而且应该解决这个问题。沟通良好的团队倾向于将这个问题告知所有团队成员,这些更改应该基于不断发展的设计系统。但设计师并不是那种无法无天、无法控制的生物。他们需要标准化,或者至少要保持一致。
现在,如果你是一名独自工作的全栈开发人员,偶尔与设计师合作,你最好让他们知道,否则你会变得疯狂。
这通常是我最终使用的方法。我会说服设计师,让他们实际制作一份排版参考表,并倾向于使用他们想出来的名称。标题、标题、副标题、正文、导语、说明等等。
然后,有一半的时间,他们会想出一些非常懒惰的名称,比如“large bold”,然后我又要开始即兴创作。
并不是最直观,但我倾向于使用 ‘smaller’ < ‘small’ < ‘smallish’,在 ‘big’ 端也是类似的,以在我的比例中增加一些额外的点。对于大型项目,我可以使用 ‘tiny’ 和 ‘huge’ 集,虽然我从来不需要。
我们是不是走错了方向?大小不应该反映含义吗?
假设你从 normal-text 开始;headline;sub-headline;footnote;citation 等等,你总是可以添加 big-headline 和 small-headline 以及 tiny-footnote,每个人都知道它们是什么。
我实际上喜欢这种方法。
不完全是。因为“headline”的大小在主页上、法律政策页面上和产品页面上很容易不同。对我来说不行。
我使用排版比例变量,这些变量在数值上是相对的,但并不代表像素大小。我的基本文本大小是
--scale0
。比基本大小小一个尺寸的是--scale-1
。比基本大小大一个尺寸的是--scale1
。以下是五步比例可能的样子,从小到大我在 这篇文章 中更详细地解释了这一点。
这里提出的可扩展大小命名系统当然是一项有用的尝试。但是,设计师应该保持更高的标准;更具决定性(例如,更少的尺寸划分)和/或更刻意(例如,合理的比例)。主要影响是改善视觉层次结构/UX,次要影响是开发人员的可复制逻辑。
我花了一些时间思考这个问题,想出了一个系统。它并不完美,但解决了这里提到的部分问题。我最初试图解决的问题是我不喜欢 small 和 large 是幽灵,而 medium 只是中间的呆板。此外,extra/x 并不暗示光谱上的任何方向,例如,xmedium 毫无意义。因此,我尝试使用减号和加号,分别用 m 和 p 表示,而不是使用多个 m 和 p,我使用数字。这将看起来像这样(我使用“regular”作为字体命名中的常见用法,但“medium”也可以):
small-m2
small-m
small
regular-m
regular
regular-p
large
large-p
large-p2
…这将等同于
xxxsmall
xxsmall
xsmall
small
medium
large
xlarge
xxlarge
xxxlarge
一个优势是,你仍然拥有基本的 small、regular(或 medium)和 large,并且可以扩展它们。如果你需要,你甚至可以在两者之间添加一些内容,比如 large-p1-2。我认为后缀看起来比前缀更简洁。
我要求我的设计师首先制作一个样式指南,并在重新设计之前一直遵循它。:) 我通常会要求他们定义标题 h1-h6、段落、链接、标签。之后,我设置一个系统,从 $font-size-xxs 到 $font-size-xxl,通常将段落设置为 $font-size-normal,并跳过其他每个尺寸。
我即使开始我的 UI 开发人员生涯也陷入了这种困境,但很快找到了一个对我来说无所不能的解决方案。
我从一个基础 $fontSize 开始,然后向上移动,比如 $fontSizeLarge,然后 $fontSizeLarger,然后 $fontSizeLargest,你基本上可以对更小的字体做同样的事情。如果你需要更多,添加 kilos 和 centis,你将得到一个灵活的变量混乱。
我将组件上下文用于大多数内容,并将实用程序命名用于其他任何内容
--hero-heading
--fs-24
这让我同时获得了所需的易读性和可维护性。
我会使用一堆变量:从 xs 到 xl,然后针对特定需求使用原始值。因为它已经像这样 ^^ 太复杂了。
至少我为边距和填充是这样做的。
实际上,我倾向于对特定需求使用基本变量上的 calc 函数…
而且我会在每个新项目中重新排列所有内容… 所以…
除了在整个布局断点上的主体之外,我已经停止为字体大小使用变量。例如
除此之外,我在 CSS 类/组件中使用直接值,因为字体大小变量不会带来任何额外的一致性或可维护性优势。
不仅仅针对字体大小,但可以用于任何可能存在中间值的场景:100 点刻度。或者任何适合你正在做的事情的刻度。
无论你定义变量还是类名,都将最小/最小的内容分配给
--font-1
,并将最大/最大的内容分配给--font-100
。然后,你的值在事物之间的关系方面有点像百分比,而不是实际值。如果你需要大于 100 的东西,说它是“200%”的大小是可以的。为了防止不足,将零值选择为非常小,以至于你永远不会使用它。通过这样做,你可以在现有定义值之间获得所需的空间,并且你也可以估计某个东西相对于其他东西的大小,而无需了解任何特定时间的实际值。你还可以更改底层值,而无需担心重命名事物。即使线性也不必要,只要
--thing-25
小于--thing-30
就可以了。这里有一个想法 - 首先将你的所有排版比例命名,然后选择你运行时所需的标记。
在运行时,我只需要
不确定这是否有意义,但我们保持预定义的常量不变,即使在运行时比例不是按时间顺序排列的。
我使用 tailwind,因此我使用的语法是
–text-sm
–text-md
–text-lg
…
如果在开发过程中出现新的字体大小,我会哭一会儿。然后我会修补我的变量。
–text-sm-bis
–text-sm-ter
通常,一个好的设计不需要超过 3/4 个字体大小。因此,如果设计师变得疯狂,也许他需要被送到古拉格。
我使用标准的 xs、sm、md、lg 缩放,如果我必须在中间放点东西,我只需混合字母,比如 sm、smd、md。需要在 smd、smdd md 之间再放点东西,是的,我希望你能理解这里面的逻辑。
我使用类别/类型/项目 (CTI) 和轮廓级别进行命名。
我根本不使用这样的类。我的标记嵌套了文章元素以及标题和页脚。
如果我收到一个请求,要求将嵌套页脚设置为特定大小,我可能会使用像这样的选择器
article article > footer { font-size: 0.8 rem; }
如果更多内容需要相同的大小,我会将它们列在这个相同的块中。因此,如果字体大小需要设置为 0.9rem,我可以一次性更改所有这些地方。
我还可以进行多个选择器组,这些选择器组当前恰好使用相同的字体大小,但在未来可能会朝不同的方向发展(例如,“小文本”/脚注与文章页脚)。两者现在可能都是 0.9rem,但它们是不同的上下文,所以我将它们放在不同的选择器组中。脚注在未来比正文文本更小,这更有可能,而页脚的样式更像是一种趋势。
此外,可访问性会自动得到改善,因为内容不仅仅是 div 的集合。
我使用 inc 和 dec 后缀
small_inc - 大于 small
medium_dec - 小于 medium
我一直遵循 Bootstrap 的颜色 100 到 900 的方法。
我认为这适用于字体大小。font-size-500 可以是常规的,上下有很大的空间。需要一个新数字:font-size-352 来救援。
这样做的一大优势是,人们不太可能认为 font-size-200 是 200 点。
我认为它足够抽象,甚至可能对设计师有效。
我也考虑过这个问题。
使用描述性变量怎么样?
以及功能性变量?
添加新的描述性或功能性变量并重新分配将非常直观。
我认为这没有用,因为你不用写“–fontSize-12”,可以直接写“12px”,对吧?
为什么不使用与颜色主题相同的数字呢。
400 表示正常大小的字体
500 .. 900 表示更大尺寸的步骤,理想情况下以 100 为步长,如果需要,可以在中间以 50 为步长甚至以 10 为步长。
300 ..100 表示更小的字体大小
我会做类似的事情
我遇到了类似的颜色困境,我首先定义了基本的品牌颜色变量,这些变量随后被分配到基于上下文的变量中
例如
我们使用按人口排序的城市名称来表示所有字体大小。如果你使用像美国这样的国家,它们很容易扩展 - 如果你需要在 12px 和 15px 之间使用新的字体大小,只需选择一个人口位于两者之间城市即可。而且它们与 UI 无关,因此可以灵活地跨不同组件重复使用。
“T 恤”系统。
不确定这是什么架构/技术,但在我的当前工作中,我们坚持以下风格
$color-blue
$color-white
$font-size-body
$font-size-body-small
$font-size-body-smaller
$spacer-small
$spacer-medium
$spacer-large
我发现它非常实用且易于遵循。
我一直使用 tailwind 命名约定,并使用 xxs、xs、s、m、l、xl、xxl 等等。
好吧,我通常保持简单,使用“rem”或“em”。因此,我定义了一个公共字体大小(通常是 18px),其他每个元素都是通过它定义的(例如 2.0rem)。
这样做的优势是,我可以轻松地更改主字体大小,其他每个元素都会相应地更改。
因此,我不为字体大小使用变量。
我们通常将其作为一种比例,使用一个基本单位。非常类似于字体粗细。
例如,如果我们的
body
文本的基本单位是16px
,则字体大小将是$size-fnt--100
。然后我们根据需要从那里创建比例,但尽量避免添加新的比例,除非 100% 必要。所以$size-fnt-body--100
是16px
。我们可以将其设置为$size-fnt-body
来创建一个默认返回。$size-fnt-body--150
是16px * 1.5
或24px
$size-fnt-body--75
是16px * .75
或12px
$size-fnt-body--200
是16px * 2
或32px
对于任何其他新的字体
类型
,我们将遵循相同的模式。比如header
的基本单位是22px
$size-fnt-header--100
是22px
。我们可以将其设置为$size-fnt-header
以创建默认返回值。$size-fnt-header--150
是22px * 1.5
或33px
$size-fnt-header--75
是22px * .75
或16.5px
$size-fnt-header--200
是22px * 2
或44px
或者,我们可能想引入一个以
10px
为基准的caption
大小...$size-fnt-caption--100
是10px
。我们可以将其设置为$size-fnt-caption
以创建默认返回值。$size-fnt-caption--150
是10px * 1.5
或15px
$size-fnt-caption--75
是10px * .75
或7.5px
$size-fnt-caption--200
是10px * 2
或20px
将其与 CSS 变量配对,以便更灵活地控制响应式,或对变量进行作用域划分...
首先,将
--size-fnt-body: 16px
添加到您所在的任何作用域。首先,将
--size-fnt-body: 18px
添加到新的媒体查询(例如>1280px
)。首先,将
--size-fnt-body: 14px
添加到某个修改类以更新比例(我们将其称为.--some-modified-class
)$size-fnt-body--100
是var(--size-fnt-body)
。我们可以将其设置为$size-fnt-body
以创建默认返回值。@>1280px
返回值:18px
.--some-modified-class
返回值:14px
其他分辨率
返回值:16px
$size-fnt-body--150
是var(--size-fnt-body) * 1.5
@>1280px
返回值:27px
.--some-modified-class
返回值:21px
其他分辨率
返回值:16px
$size-fnt-body--75
是var(--size-fnt-body) * .75
@>1280px
返回值:13.5px
.--some-modified-class
返回值:10.5px
其他分辨率
返回值:16px
$size-fnt-body--200
是var(--size-fnt-body) * 2
@>1280px
返回值:32px
.--some-modified-class
返回值:28px
其他分辨率
返回值:16px
仅在绝对必要时添加或删除比例...
$size-fnt-body--100
是16px
。我们可以将其设置为$size-fnt-body
来创建一个默认返回。➡️➡️➡️
$size-fnt-body--125
是16px * 1.25
或20px
$size-fnt-body--150
是16px * 1.5
或24px
$size-fnt-body--75
是16px * .75
或12px
$size-fnt-body--200
是16px * 2
或32px
我们在颜色、间距、海拔、字体大小和段落宽度上都使用了这种方法。当与 Intellisense 配合使用时,这种方法非常有效,而且您知道如何“查询”变量,这需要一些学习曲线才能掌握命名法。一旦确定,这种方法就非常可扩展。
$size-{{ namespace }}-{{ type }}--{{ scale }}
:尺寸变量$size-fnt-{{ type }}--{{ scale }}
或$size-fnt-header--75
$size-spacing-{{ type }}--{{ scale }}
或$size-spacing-ui--100
$size-p-{{ type }}--{{ scale }}
或$size-p-width--75
$clr-{{ namespace | type }}--{{ category }}--{{ type | scale }}--{{ modifier }}
:颜色变量(语义或非语义)源颜色
$clr-banana--{{ scale }}--{{ modifier }}
或$clr-banana--100
或$clr-banana--100--hover
语义颜色
$clr-ui-surface--{{ category }}--{{ scale }}--{{ modifier }}
或$clr-ui-surface--bg--100
或$clr-ui-surface--bg--100--hover
我确实很喜欢这种方法!变量名声明了比例系数,您可以在将来轻松地添加任意数量的比例系数,而不会破坏它。
我从一组变量的基础开始,这些变量将映射到所需的标题大小
fontSize100 => h1
fontSize200 => h2
fontSize300 => h3
等等。
然后,在设计中使用正确的槽位/比例填充其他所需的大小
fontSize50 > h1
h1 > fontSize150 > h2
h3 > fontSize320 > h4
h3 > fontSize340 > h4
h3 > fontSize360 > h4
此外,还有其他辅助变量,有时只是分配了先前数值 fontSize 变量之一。如果能节省一点脑力,一些冗余也无可厚非。
fontSizeText
fontSizePullQuote
fontSizeCaption
我就是这么做的,我认为数字比例很有道理,而且它与其他类型的内容相匹配。
/* 显示 */
–display-1: 80px;
–display-2: 72px;
–display-3: 64px;
–display-4: 56px;
–display-5: 48px;
–display-6: 40px;
我以前使用过
title
、subheadline
和body
这样的名称来表示字体大小变量。我发现的问题是,在处理不同的设计时,您可能希望使用更大或更小的字体大小,然后语义就会失效。因此,您的解决方案最终会包含无数个变量,其中一些变量具有相同的值。如果您结合使用不同的属性(如字体大小、字体系列、行高、字母间距等),语义命名更有意义。
对于字体大小,我已经改用线性比例,这样可以提供有关大小相对于其他大小的足够信息
并使用类来描述排版的语义用途