为什么要进行 size修改?

进行 size 修改的主要原因有二,一是来自大量用户的反馈,希望能提供更小的尺寸,以提高页面的信息密度。例如吐槽默认的 40px 的 button 和 input 组件太大,一页摆不了多少东西。
二是 Element UI 原本的 size 系统存在一些不合理的地方,例如四个 size 中的 medium 较少应用,有点累赘。 padding的设定也有不够合理之处。

修改的方向

结合灵活,扩展的设计原则,修改的方向主要有两个,一是提供更小尺寸的组件,满足高信息密度需求。例如 提供24px 的 button、input,32px 的表格等。
二是让 参数变化和分布更为合理,有据可依,有规则可扩展。
三是尽可能的继承 Element UI 的相关参数,避免无意义的修改。

具体而言,将 size 体系由 default/medium/small/mini 切换为更自然的 large/default/small ,以 default 为基础,需要加大则选择 large,需要缩小则选择 small。需要更大或者更小的尺寸也能自由增加 x-large,x-small 等尺寸。

padding方面则优化为更通用的 4px体系,采用 4/8 px作为原子单位控制整个系统的 padding一致性。全局变化节奏定为大组件 padding也大,小组件 padding 也小的一致节奏。

字体方面,要不要添加更多16px 的 font-size到默认组件中是个核心问题。参考 Ant Design 的研究成果,14px 字体已经可以保证在多数常用显示器上的用户阅读效率最佳。加之本次修改的初衷是为了更好的满足高信息密度的需求,同时又要尽可能的继承 Element UI 的相关参数,避免无意义的修改等因素。综合考虑后选择不添加16px 的 font-size 到默认组件中。

修改的具体范围

主要涉及的组件为 Button、Radio、Checkbox 、Input、ISelect、DateTimePicker、From等表单组件和Table、Tag 等其他有 size 属性的组件。
主要涉及属性为padding、 margin等 padding属性修改、 font-size 等字体和图标大小修改等。

size属性命名的调整

去除 medium 属性

前文说过, medium 属性在实际生产中较少得到应用,显得有些累赘多余。而且切换为更自然的 large/default/small 的 size 体系后,用户如果需要更大或者更小的尺寸,可以自由的增加 x large,x small 等尺寸,也没有了 medium 属性的容身之处。
在语义上 medium 属性与 default 也有混淆之处,抛开实际的 size 参数,在语义上是很难区分 medium 和 default 谁大谁小的。

切换为large/default/small 属性

Element UI Element Plus
default large
medium 已删除
small default
mini small

去除 medium 属性后,对剩余的 default/small/mini也做了调整。将 default 设定为默认的大小,然后再拓展更大的 large 或者更小的 small ,比 Element UI 中 default 就是最大属性要更自然。
Element UI 中的 mini属性,作为比 small 更小的 size,在新size体系中也不再出现,但可以作为扩展命名使用。建议更小的扩展命名为 mini,更大的扩展命名为 max。

参考

Element UI Element Plus
default large
medium 已删除
small default
mini small
size
Ant Arco Semi TDesign
large large large large large
default default default middle medium
small small small small small
mini

其中 Semi 的 RadioGroup 的 buttonSize 定为【 small、middle、large 】,为什么不和按钮一样定为【 small、default、large 】呢?名称不是统一更好吗哈哈,这个问题经过官方人员确认,是 API 设计问题,应该一致成【 small、middle、large 】的。

TDesign 的medium 参数加不加都一样。所以会有些有,有些没有。

名词说明

有个前端和设计协同的问题是,设计稿上的 20像素的左边距,在开发实现上可能是 19px padding+1px border,这个导致开发跟设计说的 padding 可能不完全相等。
为了简化沟通成本,当使用 【padding】 时,指的就是对应的前端 padding属性 设置的数值。当使用【间距】
时,指的就是对应的设计稿标注。
image.png

模板

Ant

Arco

Semi

TDesign

height 全局修改说明

Button 和 Input

Button: height
Elemnet UI Element Plus
default 40px large 40px
medium 36px 已删除
small 32px default 32px
mini 28px small 24px
Input: height
Elemnet UI Element Plus
default 40px large 40px
medium 36px 已删除
small 32px default 32px
mini 28px small 24px

以核心的button 和 input 组件为例,主要修改是去掉了 36px 的 medium 属性,将 28px的 mini属性修改为 24px。去掉 medium 属性的原因前文已经说过,将 28px 的 mini属性修改为 24px,主要是有以下几点原因:
一、提供小到 24px height的组件,以满足用户的高密度页面的需求。
二、24px height的 samll input,才方便嵌套进 32px 的 small table,使用原先的 28px height则太过拥挤。
三、 24px height更符合 8 倍数体系,24/32/40 的递进更有节奏美。

修改为 24px 的缺点:
一、点击区域略微缩小,但距离最小可点击区域限制 12*12 仍然有很大距离,不影响可用性。
二、相较于 28px height,在同样是 12px 字体的前提下略为拥挤一些,但嵌套进small表格等组件时适应性更好,更美观,利大于弊。

其他 Radio、CheckBox 的按钮样式高度应该与 button 保持一致。

Element UI
image.png

image.png

参考

Button: height
Ant Arco Semi TDesign
large 40px large 36px large 40px large 40px
default 32px default 32px default 32px medium 32px
small 24px small 28px small 24px small 24px
mini 24px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

Input: height
Ant Arco Semi TDesig
large 40px large 36px large 40px large 40px
default 32px default 32px default 32px medium 32px
small 24px small 28px small 24px small 24px
mini 24px

Ant
image.png

Arco
image.png
Semi
image.png
TDesign
image.png

Radio 和Checkbox

default

Radio: height
Elemnet UI Element Plus
size height size height
default 16px large 40px
medium 已删除
small default 32px
mini small 24px

Elemnet UI中的 size 属性仅对按钮形式的 Radio 或带有边框的 Radio 有效,默认形式是无效的。Element Plus 中的 size 属性对默认形式也有效了,给默认形式增加了对应 size 的 height,方便在 From 中对齐。

Element UI
image.png

参考

Radio: height
Ant Arco Semi
size padding size padding size padding
large large large
default 22px default 21px default 20px
small small small
mini

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

Button 样式

Radio: button-height
Elemnet UI Element Plus
size height size height
default 40px large 40px
medium 36px 已删除
small 32px default 32px
mini 28px small 24px

参考

Radio: button-height
Ant Arco Semi TDesign
size height size height size height size height
large 40px large 36px default 40px default 40px
middle 32px default 32px middle 32px medium 32px
small 24px small 28px small 24px small 22px


mini 24px

Ant
image.png
Arco
image.png

Semi
image.png

TDesign
image.png

Table

Table: height
Elemnet UI Element Plus
size height size height
default 48px large 48px
medium 44px 已删除
small 40px default 40px
mini 36px small 32px

以上参数是默认表格样式(仅文字)的总高度,当表格中有特殊元素如图标,tag等,需要加大内容容器时,则对应撑大总高度,此时总高度为单数。
Element UI 带排序和筛选功能的表头,出现了60.38 的这样的奇怪数字。这个原因待和开发了解研究。
当表格内容行高为 32px 时,对照如下。

Table: height
Elemnet UI Element Plus
size height size height
default 57px large 57px
medium 53px 已删除
small 49px default 49px
mini 45px small 41px

Table 组件的 height 修改,除了 Table 自身的 icon、text 等元素,还需要考虑的 column 会内嵌各种元素,常见的例如内嵌 button、图片、input 等。
Table 组件采用了和 Button 组件一样的修改逻辑,将原先 36px 的 mini属性修改为 32px 的 small 属性,不至于因为24px 这样的 height 过小而导致无法嵌套button 等组件,也不会过大浪费空间。而且还符合 8 倍数体系,形成 48/40/32 的同类节奏组合。
当然,目前有许多组件库的 large table 在 56px 左右,像有赞的需要内嵌商品图的默认 large table 更是达到了 80px,对于这类更为宽松的表单需求,Element Plus 选择留给用户自行扩展实现。
还有一种逻辑是,对更小的 height 的需求比更宽松的 height 的需求更有必要性和功能意义。例如需要用户更紧凑的表格以一屏幕展示更多行内容,提高浏览操作效率。
而在用户为什么会需要更宽松的height呢?有两种可能,一种是内容少,界面允许更加宽松,选择更宽松的 size 以美化界面,提升阅读体验,这种美化需求的优先级按照设计原则的排序,是要低于查看完整表格的优先级的。另一种是内嵌了图片等需要较大height的元素,对于这种扩展提升性需求,我们选择让用户自行开发实现。

Table: 内容行高
Elemnet UI Element Plus
size height size height
default 23px large 23px
medium 23px 已删除
small 23px default 23px
mini 23px small 23px
Table: padding(top&bottom)
Elemnet UI Element Plus
size padding border size padding border
default 12px 1px large 12px 1px
medium 10px 1px 已删除
small 8px 1px default 8px 1px
mini 6px 1px small 4px 1px

关于上下 padding 的规律变化方面,Element 选择了将文本行高设置为 23px,来取得既让总高度呈现为 48/44/40/36px 的规律4 倍数组合,又让上下间距取得 12/10/8/6 的规律双数组合。代价是内容无法在文本域内精确且像素完美的对齐,因为行高是单数。
而竞品们则普遍设定行高为双数,获得了精确且像素完美的对齐。代价是让总高度变成了单数。
两种选择各有优劣,并没有绝对最优选项。所以遵循 Element UI 的原有设定。 统一设置 23px 的默认内容行高,达成既让总高度呈现为 48/40/32 的规律 4 倍数组合,又让上下间距取得 12/8/4px 的规律 4 倍数组合。

参考

Table: height
Ant Arco Semi TDesign
size padding size padding size padding size padding
default 55px default 41px default 53px large 64.5px
middle 47px middle 37px middle 45px medium 47.5px
small 39px small 33px small 37px small 36.5px
mini 23.84px
Table: 内容行高
Ant Arco Semi TDesign
size padding size padding size padding size padding
default 22px default 22px default 21px large 22px
middle 22px middle 22px middle 21px medium 22px
small 22px small 22px small 21px small 22px
mini 18.844px

TDesign

Table: padding(top&bottom)
Ant Arco Simi TDesign
size padding border size padding border size padding border size padding border
large 16px 1px large 9px 1px default 16px 1px default 21px 1px
middle 12px 1px default 7px 1px middle 12px 1px medium 12/13px 1px
small 8px 1px small 5px 1px small 8px 1px small 7px 1px



mini 2px 1px

Ant 注重的并非总高度的数值,而是 16/12/8px 的上下 padding 变化。
Arco 的上下 padding 变化为9/7/5/2。有点奇怪。前三个大小扣除 border 是 40/36/32,虽然差距略小,但还算有节奏,最后一个直接跳到 23.84px,有点突兀。
Semi 与 Ant类似,主要注重 16/12/8px 的上下 padding 变化。

Tag

Tag: height
Elemnet UI Element Plus
default 32px large 32px
medium 28px 已删除
small 24px default 24px
mini 20px small 20px

Element UI
image.png

参考

Tag: height
Ant Arco Semi TDesign
size height size height size height size height
large 32px large 24px default 32px
default 22px medium 28px medium 24px
default 24px small 20px small 20px


mini 20px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

Avatar

Avatar: height
Elemnet UI Element Plus
default 48px large 40px
medium 40px 已删除
small 32px default 32px
mini 28px small 24px

其他组件参考核心组件的逻辑进行修改。
Avatar 组件的修改逻辑是将small avatar 设定为 24px,供常见组件内嵌使用,例如 default table ,将 default avatar设定为 32px,供大组件内嵌使用,例如large table。将 large avatar设定为 40px,供单独使用,作为用户详情页头像等重点用途。更大的头像(图片)需求,一般不属于批量内嵌,我们选择让用户自行开发实现。

Dropdown

Dropdown: height
Elemnet UI Element Plus
default 36px large 36px
medium 30px 已删除
small 27px default 32px
mini 24px small 24px

Dropdow 的修改逻辑是给 default 和 large 较宽松的height,因为展开下拉菜单时一般都有相对充足的屏幕空间,宽松的height 可以提供更好的操作体验。另外将Element Plus 的 small height 设定为 24px,与 Element UI 的 miniheight 保持一致,为特殊情况提供小尺寸选项。

icon 和 text 的距离

全局逻辑

像 Radio、Table这样,icon 有独立承担操作职能的,采用 8px 作为最小间距单位,8px 是全局可操作元素的最小间距,再小的话,多操作体验很差。
像 button 、input 这样,icon 作为辅助说明的,采用递减策略,符合全局变化节奏,也为 small 模式省出更多空间。
例外情况:
像 Tag 的小元素,带的 icon 可能是操作可能是说明的,可以接受最低 4px 的间距。

Button

Button: text&icon
Elemnet UI Element Plus
default 5px large 8px
medium 5px 已删除
small 5px default 6px
mini 5px small 4px

Element UI Button 组件的 icon 和 text 距离是统一5px,竞品多为统一 8px。为符合全局变化的节奏,为了 small 按钮拥有更紧凑的结构,Element Plus 选择了分开设置距离为 8/6/4 的组合。
之所以没选择 8/8/4 的组合是因为不符合全局节奏,12/8/4 的组合则使 large 间距太大了。为什么设定 6 这个非4 倍数的间距呢?因为4px体系的规则只是启发,而非限制。更多内容可以看下方的引用内容。

间距体系严格来讲不是叫做规范,而是规则。 我们建立的规则,优先8,然后4,如果都没有至少保证2(偶数原则),如多都不行比如分割线,则1。要是再出现极其另类的,0.5也可能用上。所以它们是降序 8>4>2>1>0.5>0.25>0.1。 上面间距这里,可以理解为:large是男生,default是女生,small是孩子, 数字就是鞋子尺码。如果女生穿男生8px的鞋子,其实是非常不适合和别扭的(40码以上大jiojio的情况不谈),所以这就是所谓的“遵从用户习惯”,“保证全局节奏”。 ——引用自牛 Mo 王

Element UI
image.png

参考

Input -text&icon
Ant Arco Semi TDesign
size padding size padding size padding size padding
large 8px large 8px large 9px large 8px
default 8px default 8px default 9px medium 8px
small 8px small 6px small 9px small 8px
mini 6px

Ant
image.png
Arco
image.png
Smei
image.png
TDesign
image.png

Input

Input: text&icon
Elemnet UI Element Plus
default 6px large 8px
medium 6px 已删除
small 6px default 6px
mini 6px small 4px

Element UI input 组件的 icon 和 text 距离是统一6px,,Element Plus 选择了分开设置距离为 8/6/4 的组合。是比较均衡的选择,符合全局变化节奏,宽松和紧凑的需求都能满足。

参考

Input -text&icon
Ant Arco Semi TDesign
size padding size padding size padding size padding
large 4px large 12px large 9px large 猜测 8px
default 4px default 12px default 9px default 8px
small 4px small 12px small 9px small 猜测 8px
mini 12px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
待确定

Table

Table: text&icon
Elemnet UI Element Plus
size padding size padding
default 5px large 8px
medium 5px 已删除
small 5px default 8px
mini 5px small 8px

Element UI 在表格多图标处理这里是比较粗糙的。

从Table 的 icon 很可能是要操作的角度讲,间距应该比 input 里面的指示性图标要大一些,才合理。
表格里虽然空间紧凑,但是紧凑的目的正是为了分配有限的空间到更需要的区域,所以不应该将 text和icon之间的间距压的太小。
竞品使用不同侧对齐的方式明显区分开了text 和 icon,我们不采用这个方案,那间距就更有必要给足了。
这里和 radio 一样,用了需要操作,不能再小的逻辑。 再大也不合适,太过于宽了,所以选择统一8px。
表格里情况复杂,统一 8px 也能给开发降低开发难度。

Table: text&icon
Ant Arco Semi TDesign
size padding size padding size padding size padding
large 约等于 5px large 8px large 4px large 右对齐
default 约等于 5px default 8px default 4px default 右对齐
small 约等于 5px small 8px small 4px small 右对齐
mini 8px

Ant 情况特殊,如果按照两个图标都是 14*14px 的外框的话,距离是 5px。在表格上记录为约等于 5px。
image.png

Radio 和Checkbox

Radio: text&icon
Elemnet UI Element Plus
size padding size padding
default 10px large 8px
medium 10px 已删除
small 10px default 8px
mini 10px small 8px

radio 和checkbox 统一 8px。
原 icon 与 text 的 padding 为 10px,不符合 4 倍数体系,修改为 统一8 px。
为什么不分开设置呢? 在【级联选择器-选择任意一级选项】的应用场景里,radio icon 是作为单独操作的控件存在的,与点击 text 有着不同的效果,所以需要更大的空间,8px 已经是最合适的距离了,再增加减少都不会更好。

Element UI
image.png

参考

Radio: text&icon
Ant Arco Semi
size padding size padding size padding
无large
default 8px default 8px default 8px
无small

Tag

Tag: text&icon
Elemnet UI Element Plus
default 5px large 8px
medium 6px 已删除
small 6px default 6px
mini 4px small 4px

Element Tagl的 icon 和 text 的间距应该是有问题的,这个变化规律很奇怪。
这里出现的 icon 主要是删除操作,拓展用法为在尾部或者首部添加图标作为辅助说明元素。因为总体元素较小,同时常态下一个 tag 内只会有 一个 icon操作。允许接受最低 4px 的间距。

Element UI
image.png

参考

Tag: text&icon
Ant Arco Semi TDesign
size height size height size height size height
large 4px large 4px default 4px
default 3px medium 4px medium 4px
default 4px small 4px small 4px


mini 4px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

左右间距属性全局修改说明

以下 padding 属性无特别说都是特指左右 padding。

Button

default

Button: padding(left&right)
Element UI Element Plus
size padding border size padding border
default 20px 1px large 19px 1px
medium 20px 1px 已删除
small 15px 1px default 15px 1px
mini 15px 1px small 11px 1px

image.png

当 Element UI 中的 button size=default 时,加上 border 的左右间距为padding:20px+border:1px=21px,这是不符合 4pt 体系的,多出来的 1 像素破坏了整体一致性和节奏,但没有实际意义,弊大于利。所以将左右 padding改为20px。前端结构为 padding:19px+border:1px。这里特别说明一下,因为设计稿中 border 属性不占位置的原因,前端看到的标注是加上border 的总宽度,需要结合具体情况判断 padding 是否需要减1px。

当 Element UI 中的 button size=mini时,左右 padding为padding:115px+border:1px=16px, 这与Element Plus 中的 button size=default时的左右 padding相等,不符合递减的节奏节奏,所以将其左右 padding改为 12px,前端结构为 padding:11px+border:1px。

参考

Button: padding(left&right)
Ant Arco Simi
size padding border size padding border size padding

large
15px 1px large 19px 1px large 16px
default 15px 1px default 15px 1px medium 12px
small 8px 1px small 15px 1px small 12px



mini 11px 1px

Ant
image.png
Arco
image.png
Smei
image.png

round

Button: round-padding(left&right)
Element UI Element Plus
size padding border size padding border
default 23px 1px large 19px 1px
medium 20px 1px 已删除
small 15px 1px default 15px 1px
mini 15px 1px small 11px 1px

在Element UI 中,仅 round button size=default 时, padding 比 default button size=default 时大 3px,其余size 的 round button 按钮的padding 与 default button 均无差距,这并不一致。Element Plus 选择将所有 padding 修改为一致属性。优点是属性更一致,复杂度更低,更有利于开发和设计的协调与一致。缺点是略微牺牲方形按钮和圆形按钮之间的视觉均衡度,但因为两者极少一起出现,所以影响很小。

参考

Button: round-padding(left&right)
Ant Arco Simi
size padding border size padding border size padding

large
15px 1px large 19px 1px large 待查看
default 15px 1px default 15px 1px medium
small 8px 1px small 15px 1px small



mini 11px 1px

Radio、CheckBox

按钮样式

Button: padding(left&right)
Element UI Element Plus
size padding border size padding border
default 20px 1px large 19px 1px
medium 20px 1px 已删除
small 15px 1px default 15px 1px
mini 15px 1px small 11px 1px

按钮样式应该与 button 保持一致。

border

Button: border-padding(left&right)
Element UI Element Plus
size left right size left right
padding border padding border padding border padding border
default 11px 1px 20px 1px large 11px 1px 19px 1px
medium 11px 1px 20px 1px 已删除
small 11px 1px 15px 1px default 9px 1px 15 1px
mini 11px 1px 15px 1px small 7px 1px 11 1px

Elemnet UI 的 radio border 样式的左右间距是不对等的,有区分button 和 radio border 作用,Elemnet Plus 继承了这个特性,并按照全局节奏进行了优化。

Input

无 icon

Input: padding(left&right)
Element UI Element Plus
size padding border size padding border
default 15px 1px large 15px 1px
medium 15px 1px 已删除
small 15px 1px default 11px 1px
mini 15px 1px small 7px 1px

Element UI 中不同 size 的 input 是同一个 padding 大小,跟 全局变化节奏不一致,也不符合高信息密度需求。在多列 input 嵌套在 table 中时,横向空间就更珍贵了,需要更小的 padding。
image.png
综上所述,将 Element Plus 的 input padding 设置为 16/12/8 的组合,符合 全局变化节奏,符合4pt 的 padding体系。

有 icon

Input: padding(left&right)
Element UI Element Plus
size padding border size padding border
default 9px 1px large 15px 1px
medium 9px 1px 已删除
small 10px 1px default 11px 1px
mini 10px 1px small 7px 1px

有 icon 的情况下,Element UI 选择了让 icon 侧的间距更小一些,目的可能是减少占位文字之间的跳跃感,同时节约横向空间。设计上应该是统一设计为 10px 的,但是实际实现中出了一些问题,导致线上版本 的 small 和 mini实际上是 11px。
Ant、Arco 等间距不等的竞品都没有特意增加这个特性,为了简化设计细节,提升通用性和一致性,Element Plus选择去除这个细节,采用16/12/8 的间距组合。
image.png
Element
image.png
image.png

有无 icon 相关参考

ant 和 arco 都采用了有 icon 和无 icon 间距都一致的做法。

Input:padding (left&right)
Ant arco
size padding border size padding border
large 11px 1px large 16px 1px
default 11px 1px default 12px 1px
small 8px 1px small 12px 1px
mini 8px 1px

semi 采用了和 Elemnet 类似的方案,有 icon 时间距更小。值得一提的是 Semi没有 border的宽度。

Semi-Input: padding (left&right)
无 icon 有 icon
size padding size padding
large 12px large 9px
default 12px default 9px
small 12px small 9px

有 Tag

Input: tag
Element UI Element Plus
size padding (left) size padding (left)
default 6px large 16px
medium 6px 已删除
small 6px default 12px
mini 6px small 12px

Table

Table: padding (left&right)
Element UI Element Plus
size padding size padding
default 10px large 16px
medium 10px 已删除
small 10px default 12px
mini 10px small 8px

Element UI 中不同 size 的 table 是同一个 padding ,跟全局变化节奏不一致,也不符合高信息密度需求。在多列 table 中时,横向空间就更珍贵了,需要更小的 padding。
而在 large 下,table 内嵌内容可能会比 small 丰富很多,可以设定更大的 padding 而拥有更好的适应性和区分性。从内嵌内容的丰富程度这个角度对比,large input 和 small input 的差距并不如 table 这边这么显著。
还有一种逻辑是,对更小的 padding 的需求比更宽松的 size 的需求更有必要性和功能意义。在后台系统场景中,经常存在 10 多列乃至更多列的 table ,此时用户需要更紧凑的表单以一屏幕显示内容,否则就会出现体验极差的横向滚动条。

Tag

无 icon

Tag: padding (left&right)
Element UI Element Plus
size padding border size padding border
default 10px 1px default 11px 1px
medium 10px 1px 已删除
small 8px 1px small 9px 1px
mini 5px 1px mini 7px 1px

Element UI
image.png

参考

Tag: padding (left&right)
Ant Arco Semi TDesign
size padding border size padding border size padding size padding border
large 8px 1px large 8px default 12px 1px
default 7px 1px medium 8px 1px medium 8px 1px
default 8px 1px small 8px small 8px 1px


mini 8px 1px

Ant
image.png
Arco
image.png
Semi
image.png

TDesign
image.png

有 icon

Tag: padding (left&right)
Element UI Element Plus
left right left right
size padding border size padding border size padding border size padding border
default 10px 1px default 5px 1px default 11px 1px default 7px 1px
medium 10px 1px medium 6px 1px 已删除
small 8px 1px small 4px 1px small 9px 1px small 5px 1px
mini 5px 1px mini 2px 1px mini 7px 1px mini 3px 1px

Element UI
image.png

参考

Tag: padding (left&right)
Ant Arco Semi TDesign
左右一致 left right
size padding border size padding border size padding size padding size padding border
large 8px 1px large 8px large 4px default 12px 1px
default 7px 1px medium 8px 1px medium 8px 1px
default 8px 1px small 8px small 4px small 8px 1px


mini 8px 1px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

Dropdown

Dropdown: padding(left&right)
Element UI Element Plus
size padding border size padding border
default 20px 1px large 19px 1px
medium 17px 1px 已删除
small 15px 1px default 15px 1px
mini 10px 1px small 11px 1px

Dropdow 的padding修改逻辑和 height 一致,给 default 和 large 较宽松的height,因为展开下拉菜单时一般都有相对充足的屏幕空间,宽松的height 可以提供更好的操作体验。另外将Element Plus 的 small height 设定为 24px,与 Element UI 的 miniheight 保持一致,为特殊情况提供小尺寸选项。

font-size修改全局说明

button

Button: font-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 12px default 14px
mini 12px small 12px

button 的修改逻辑是放弃了Element UI 中为small button 设定的 13 px字体,修改为更常用,对齐更均衡的 14px。
参考 Ant Design 的研究成果,14px 字体已经可以保证在多数常用显示器上的用户阅读效率最佳。加之本次修改的初衷是为了更好的满足高信息密度的需求,同时又要尽可能的继承 Element UI 的相关参数,避免无意义的修改等因素。综合考虑后选择不添加16px 的 font-size 到默认组件中。

Elemnet
image.png

参考

Button: font-size
Ant Arco Semi
large 16px large 14px large 14px
default 14px default 14px default 14px
small 14px small 14px small 14px
mini 12px

Ant
image.png
Arco
image.png
Smei
image.png

Input

Input: font-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 13px default 14px
mini 12px small 12px

input 的修改逻辑是放弃了Element UI 中为 small input 设定的 13 px字体,修改为更常用,对齐更均衡的 14px。

Radio 和Checkbox

Radio: font-size
Elemnet UI Element Plus
size height size height
default 14px large 14px
medium 已删除
small default 14px
mini small 12px

Element Plus 将 small-font-size 设定为 12px,和Elemnet UI 中一致,也符合全局节奏。

Element UI
image.png

参考

Radio: height
Ant Arco Semi
size padding size padding size padding
large large large
default 14px default 14px default 14px
small small small
mini

Table

Table: font-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 12px default 14px
mini 12px small 12px

Table 的修改逻辑是 将 Element UI 中为 small table设定的 12 px字体,修改为更大的 14px字体。主要是为了用 14px 字体提供比 12px 字体更好的识别度,用户如果需要更宽松的 padding 可以切换为large table 。

Tag

Tag: font-size
Elemnet UI Element Plus
default 12px large 14px
medium 12px 已删除
small 12px default 12px
mini 12px small 12px

Element UI
image.png

参考

Tag: font-size
Ant Arco Semi TDesign
size height size height size height size height
large 14px large 12px default 16px
default 12px medium 14px medium 14px
default 12px small 12px small 12px


mini 12px

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

Dropdown

Dropdown: font-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 13px default 14px
mini 12px small 12px

Dropdown 的修改逻辑是放弃了Element UI 中为 small Dropdown 设定的 13 px字体,修改为更常用,对齐更均衡的 14px。

icon-size 修改全局说明

icon-size 的修改问题的核心,也是要不要增加 16px icon。 Elemnet Plus 的决策是增加。因为16px icon 是 Element Plus 原生图标的绘制尺寸,也是设计界的通用 icon 绘制尺寸。可以像素完美的呈现图标。所以将 Elemnet Plus 的 large 设置为 16px 图标。

Button

Button: icon-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 12px default 14px
mini 12px small 12px

Elemnet UI
image.png

参考

Button: icon-size
Ant Arco Semi
large 16px large 14px large 16px
default 14px default 14px default 16px
small 14px small 14px small 16px
mini 12px

Ant
image.png
Arco
image.png
Smei
image.png
一样都是 24px 的最小尺寸,有选择 16px 的,有选择 12px 的。可能是因为不同的需求导致了这个选择。
semi 的细节选择和 arco 不同,也可能是字节有意为之。需要两套不同风格的组件库。

Input

Input: icon-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 13px default 14px
mini 12px small 12px

和 font-size 一样,放弃了Element UI 中为 small Dropdown 设定的 13 px图标,修改为更常用,对齐更均衡的 14px。

其他系统的参考

input-icon-size
Ant Arco Semi
large 16px large 14px large 16px
default 14px default 14px default 16px
small 12px small 14px small 16px
mini 12px

Radio 和Checkbox

Radio: icon-size
Elemnet UI Element Plus
size height size height
default 14px large 14px
medium 已删除
small default 14px
mini small 12px

Element Plus 将 small-icon-size 设定为 12px,和Elemnet UI 中一致,也符合全局节奏。
将large-icon-size 加大为 16px,符合全局节奏。

Element UI
image.png

参考

Radio: icon-size
Ant Arco Semi
size padding size padding size padding
large large large
default 16px default 14px default 16px
small small small
mini

特殊点
Arco 的 icon 采用了 2px border 的设计。

Table

Table: icon-size
Element UI Element Plus
default 14px large 14px
medium 14px 已删除
small 12px default 14px
mini 12px small 12px

Table 的修改逻辑是 将 Element UI 中为 small table设定的 12 px icon ,修改为更大的 14px icon。large 则按全局原则加大为 16px。

Tag

Tag: icon-size
Elemnet UI Element Plus
default 16px large 14px
medium 14px 已删除
small 14px default 14px
mini 12px small 12px

Element UI
image.png

参考

Tag: icon-size
Ant Arco Semi TDesign
size height size height size height size height
large 12px large 12px default 16px
default 12px medium 12px medium 16px
default 12px small 12px small 16px


mini 12px

TDesign 的 icon 是套着16px 的框架,但是 icon 实际占据面积只有 88,更像 1212 的图标。

Ant
image.png
Arco
image.png
Semi
image.png
TDesign
image.png

总结

Elemnet Plus 的设计原则是清晰、高效、一致、可控、反馈、灵活、扩展、美观,我们 主要在清晰、高效、一致性的问题上做了大量讨论、纠结和实验后,兼顾其他原则,尽量从各种规则限制中取当前的最优解,以敲定当前的规范。将复杂化的内容变得更便捷是我们EP团队的初衷,希望这次修改能给更多的用户带来更好体验。
最后,设计方案难免有考虑不足之处,欢迎留言讨论指导。