ant-design/docs/spec/icon.zh-CN.md

202 lines
11 KiB
Markdown
Raw Normal View History

---
docs: v5 site upgrade (#38328) * build: try to use dumi as doc tool * docs: migrate demo structure to dumi way * refactor: use type export & import * docs: migrate demo previewer to dumi * docs: create empty layout & components * docs: apply custom rehype plugin * docs: create empty extra pages * docs: Add Banner component * chore: move theme tsconfig.json * docs: home page init * docs: migrate header (#37896) * docs: header * docs: update * docs: home init * clean up * test: fix site lint * chore: tsc ignore demo * chore: dumi demo migrate script * chore: cards * docs: home layout * docs: Update locale logic * docs: fix getLink logic * chore: fix ci (#37899) * chore: fix ci * ci: remove check-ts-demo * ci: preview build * test: ignore demo.tsx * chore: update script * test: update snapshot * test: update node and image test * chore: add .surgeignore * docs: layout providers (#37908) * docs: add components sidebar (#37923) * docs: sidebar * docs: update docs title * docs: update design doc * chore: code clean * docs: handle changelog page * docs: add title * docs: add subtitle * docs: active header nav * chore: code clean * docs: overview * chore: code clean * docs: update intl (#37918) * docs: update intl * chore: code clean * docs: update favicons * chore: update testPathIgnorePatterns * chore: code clean * chore: code clean * chore: copy 404.html (#37996) * docs: Home page theme picker * chore: Update migrate script * docs: home page update * docs: theme editor style * docs: theme lang * chore: update migrate.js * docs: fix demo (#38094) * chore: update migrate.js * docs: update md * docs: update demo * test: fix snapshot * chore: move debug to code attr in migrate script * chore: update md Co-authored-by: PeachScript <scdzwyxst@gmail.com> * feat: overview page * feat: Migrate `404` page (#38118) * feat: migrate IconSearch component (#37916) * feat<site/IconSearch>: copy IconDisplay from site to .dumi * feat<site/IconSearch>: change docs of icon * feat<site/IconSearch>: tweak * feat<site/IconSearch>: use useIntl instead of injectIntl * feat<site/IconSearch>: fix ts type error * feat<site/IconSearch>: use intl.formatMessage to render text * docs: Adjust home btn sizw * docs: Update doc * feat: v5 site overview page (#38131) * feat: site * fix: fix * feat: v5 site overview page * fix: fix path * fix: fix * fix: fix * docs: fix margin logic * feat: v5 site change-log page (#38137) * feat: v5 site change-log page (#38162) * docs: site redirect to home pag * docs: theme picker * docs: use react-intl from dumi (#38183) * docs: Theme Picker * docs: update dumi config * docs: home back fix * docs: picker colorful * docs: locale of it * docs: update components desc * docs: site of links * docs: update components list * docs: update desc * feat: Migrate `DemoWrapper` component (#38166) * feat: Migrate `DemoWrapper` component * feat: remove invalid comments and add comment for `key` prop * docs: FloatButton pure panel * chore: update demo * chore: update dumi config * Revert "chore: update demo" This reverts commit 028265d3ba5987df5f13c3e9d42cf76cb1812b2e. * chore: test logic adjust to support cnpm modules * chore: add locale alias * docs: /index to / * docs: add locale redirect head script * chore: adjust compact * docs: fix missing token * feat: compact switch * chore: code clean * docs: update home * docs: fix radius token * docs: hash of it * chore: adjust home page * docs: Add background map * docs: site theme bac logic * docs: avatar * docs: update logo color * docs: home banner * docs: adjust tour size * docs: purepanl update * docs: transfooter * docs: update banner gif * docs: content (#38361) * docs: title & EditButton * docs: content * chore: fix toc * docs: resource page * docs: transform resource data from hast * docs: filename & Resource Card * chore: enable prerender * chore: remove less * docs: toc style * chore: fix lint * docs: fix Layout page * docs: fix CP page * chore: update demos * docs: workaround for export dynamic html * chore: enable demo eslint * docs: table style * fix: header shadow * chore: update snapshot * fix: toc style * docs: add title * docs: Adjust site * feat: helmet * docs: site css * fix: description * feat: toc debug * docs: update config-provider * feat: use colorPanel * fix: colorPanel value * feat: anchor ink ball style * feat: apply theme editor * fix: code block style * chore: update demo * chore: fix lint * chore: code clean * chore: update snapshot * feat: ts2js * chore: description * docs: site ready for ssr includes: - move client render logic to useEffect in site theme - extract antd cssinjs to a single css file like bisheng - workaround to support react@18 pipeableStream for emotion * chore: bump testing lib * docs: font size of title * chore: remove react-sortable-hoc * chore: update snapshot * chore: update script Co-authored-by: PeachScript <scdzwyxst@gmail.com> Co-authored-by: MadCcc <1075746765@qq.com> Co-authored-by: zqran <uuxnet@gmail.com> Co-authored-by: TrickyPi <530257315@qq.com> Co-authored-by: lijianan <574980606@qq.com>
2022-11-09 12:28:04 +08:00
group: 全局样式
order: 5
title: 图标
---
2018-09-29 18:48:39 +08:00
图标是 UI 设计中必不可少的组成。通常我们理解图标设计的含义是将某个概念转换成清晰易读的图形从而降低用户的理解成本提升界面的美观度。在我们的企业级应用设计范围中图标在界面设计的诸多元素中往往只占了很小的比重在调用时也会被缩到比设计稿小很多倍的尺寸加上在图形素材极度丰富并且便于获取的今天在产品设计体系中实现一套美观、一致、易用、便于延展的图标体系往往会被不小心忽略掉。Ant Design 相信一整套优质的图标对于设计质量的影响是非常巨大的,这考验着设计师的协作能力,以及对图形塑造的系统性思维,同时也能反映一个团队对于细节的追求。
2018-09-29 18:48:39 +08:00
Ant Design 在"确定"和"自然"的设计价值观影响之下,对全套的基础系统图标进行了改造,现在大家可以在我们网站上直接查看并使用新版的图标,同时在这里将我们的系统性思路分享给大家,抛砖引玉,期待有更多的设计师参与到这个寂寞的微观世界中来,一起把图形设计这件事做好。
2018-09-28 17:28:58 +08:00
[查看图标库](/components/icon/)
---
2018-08-31 17:03:27 +08:00
## 设计师专属
2018-08-29 10:51:08 +08:00
2018-08-31 17:03:27 +08:00
安装 [Kitchen Sketch 插件 💎](https://kitchen.alipay.com),可以一键拖拽使用 Ant Design 和 Iconfont 的海量图标,还可以关联自有项目。
2018-08-29 10:51:08 +08:00
2018-09-28 15:51:10 +08:00
## 设计原则
2018-09-28 17:28:58 +08:00
Ant Design 的图标设计原则源自"确定"和"自然",落实到图标设计领域,一共有四个,他们分别为:
2018-11-05 19:04:28 +08:00
- **准确:** 设计造型准确的图标(保持偶数原则,去小数点);选择表意准确的图标,不对用户的认知造成困扰。
- **简单:** 在表意清晰准确的基础上,尽量保持图形的简洁,不做多余的修饰。
- **节奏:** 挖掘构图中的秩序之美。
- **愉悦:** 赋予适度的情感。
2018-09-28 15:51:10 +08:00
## 设计规格
2018-09-29 17:15:29 +08:00
- **Artboard** Ant Design 的系统图标都是按照 1024 x 1024 的画板进行制作的:
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/mrrFTiCWOyCsVOgAIBqg.png" alt="设计规格">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 15:23:06 +08:00
- **出血位:** 在图标的设计过程中预留出血位的做法,可以预防某些造型的图标在具体应用时出现边缘被切掉的风险;同时在设计过程中,也为设计师把握图标间平衡留下了进退的余地。新版的设计规格在图形的外围预留了 64px 的出血位,多数的图标在设计中我们都不建议超过这个区域。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/FNXMpWnyvYfydiSnPCYg.png" alt="出血位">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:38:50 +08:00
## 分层
2018-09-29 17:15:29 +08:00
Ant Design 的图标设计对于设计稿的分层也有一定的要求,其目的除了让设计师实现有序的文档管理之外,更多的是便于团队间文档的传递,统一的设计框架像是无形的共识,可以让彼此间的理解得到进一步的提升。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/bVtUZqDRbGuaoVbwYqua.png" alt="分层">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:38:50 +08:00
## 轮廓线与模版
2018-09-28 17:28:58 +08:00
我们对设计模版进行了优化,根据出血位的尺寸,调整轮廓线的宽高,同时增加两个等边三角形和一个圆,这些都是图标设计中最常用的基本形式,设计师可以快速的调用并在此基础上做变形。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/ycDkLxfAqjnRsWZuHvik.png" alt="轮廓线与模版">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:38:50 +08:00
## 图标设计指引
2018-09-29 17:15:29 +08:00
根据"确定性"和"自然"的价值观当构图含义明确之后图标设计所追求的便是秩序之美。Ant Design 的图标主要通过四方面去实现"秩序美",分别是:形式、韵律、平衡以及辨识。
2018-09-29 17:43:19 +08:00
### 1、形式
2018-09-29 17:15:29 +08:00
形式是构成一个图形最初始的结构。Ant Design 整套基础图标基本上都是由圆、方、三角这样的图形演变而成的。追求图形初始结构的理性,而非直觉式的设计,是秩序之美的第一步。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/HpESYoDACMTUWLEqtBRb.png" alt="形式">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:43:19 +08:00
### 2、韵律
2018-09-29 17:15:29 +08:00
Ant Design 图标的韵律感通过两个方面来体现:元素的韵律和构图的韵律。系统图标中最常见的元素基本上可以归纳称为:点、线、圆角、三角。
2018-09-28 15:51:10 +08:00
#### 2-1. 元素的韵律
2018-09-29 17:15:29 +08:00
- **点:** 点是很多图形中都会出现的元素。Ant Design 会在一套图标中挖掘同一元素的规律,同时对其进行克制的运用。我们对于点的尺寸选择上会保持 16 的倍数这一原则。比如,在点的选择中,新版的图标最常用的是四种尺寸的点,分别为 80、96、112、128。当出现特殊尺寸的需求时会按照 16 的倍数进行延展。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/qOHVVNiWAiQoHRjkuntb.png" alt="点">
2018-09-28 15:51:10 +08:00
</div>
2018-09-28 15:52:03 +08:00
- **线:** 线条也是非常通用的元素之一。新版图标在线条之间的关系采用 8 倍数原则,从小到大以 8 的规律递增。常用的规格也是 4 种,分别为 56、64、72、80。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/WqaPFOssksoRsfSEMYgc.png" alt="线">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:15:29 +08:00
- **圆角:** 圆角的规格采取的也是 8 倍数原则,最常用的是 3 种,分别是 816、32它们之间是两倍数的关系。而图标内部空间的圆角则保持直角的处理方式。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/EycXTskdagLPlYMTvfdC.png" alt="圆角">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:15:29 +08:00
- **三角:** 新版图标的角度受到美式战斗机 F-14 tomcat 的启发,将常用的角度定在约 76 度。在日常设计中,多数系统图标的角度都可以从 76 度这个数值出发,根据实际情况进行灵活的应用。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/WWnwBEQKIOhIeqbsIHZe.png" alt="三角">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:15:29 +08:00
除了定义角度,我们对新图标中实心箭头的规格也做了收敛,在顶角大约保持 76 度的基础上,最常用的为 4 种,他们的宽度保持 8 倍数的原则,间隔为 24
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/jOZvfCdFTfpFxSkJwiMF.png" alt="实心箭头">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 15:25:26 +08:00
基本元素在使用上的规格可以用下面的表格来总结,建议设计师在一套图标的设计中尽量保持克制的态度。
2018-09-28 15:51:10 +08:00
| 点 | 线 | 圆角 | 三角 |
2019-05-07 14:57:32 +08:00
| --- | --- | ---- | ---- |
2018-09-28 15:51:10 +08:00
| ... | ... | / | ... |
| 80 | 56 | 8 | 144 |
| 96 | 64 | 16 | 216 |
| 112 | 72 | 32 | 240 |
| 128 | 80 | ... | 264 |
| ... | ... | | ... |
#### 2-2、构图的韵律
在图标体系中,除了对重复出现的元素进行管理之外,我们还建议通盘的去考虑设计构图上的节奏感。
2018-09-29 17:15:29 +08:00
- 保持类似图标在构造上的一致性也是建立图标体系节奏感的一种方法。
2018-09-29 15:23:06 +08:00
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/jpsoohmwvVgwSsblgPbc.png" alt="节奏感">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:38:50 +08:00
- 此外,在单个图标的设计过程中,也建议适当理性的看待各元素间的比例关系,而非直觉式的开展绘制。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/XorcLWyrefyAmYagUpgY.png" alt="元素间的比例关系">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:43:19 +08:00
### 3、平衡
2018-09-28 15:51:10 +08:00
要保持整套图标在视觉重量上的平衡,是一件不太容易的事并且是一件需要大量实践的工作。图标的造型、线条摆放的角度甚至是留白空间等,都是会影响视觉平衡的因素,因此需要设计师适时的通过对基本元素规格上的微调来达到图标的平衡感。
2018-09-29 17:54:05 +08:00
- **弯曲的线条会比竖直的线条看起来细**。 因此在圆形的外边框上我们会适当的对 72px 的规格进行 4 px 的微调。
2018-09-29 15:20:43 +08:00
2018-09-29 17:54:05 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/GsrZFQbjQXwQoDRMnhKX.png" alt="弯曲的线条会比竖直的线条看起来细">
2018-09-29 17:54:05 +08:00
</div>
2018-09-28 15:51:10 +08:00
2018-09-29 17:54:05 +08:00
- **倾斜的线条也会比竖直的线条看起来细**。 因此倾斜的线条也会进行 4 px 的微调。
2018-09-29 17:54:05 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/wfRqkxabWTKdQgiVSzKh.png" alt="倾斜的线条也会比竖直的线条看起来细">
2018-09-29 17:54:05 +08:00
</div>
2018-09-29 17:54:05 +08:00
- **图形的留白空间也是值得推敲的课题**。 当某些图形的留白不足时,可以通过调节线条的粗细来达到视觉重量上的平衡。
2018-09-29 17:54:05 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/fVyyVdYqEXyjmxlWLtVw.png" alt="图形的留白空间也是值得推敲的课题">
2018-09-29 17:54:05 +08:00
</div>
2018-09-29 17:43:19 +08:00
### 4、辨识
2018-09-29 17:38:50 +08:00
辨识度是一套图标具备的可被感知的特色通常和系统本身的品牌基因相关。Ant Design 的系统图标在这一次除了遵循"确定"和"自然"这两块价值观,在辨识度这一块也做了两处小尝试。
2018-09-29 17:15:29 +08:00
- **让科技有温度:** 通过对于图形圆角的定义将过于圆润的圆角72调整至32在视觉效果上令图标看起来更为坚硬和理性对应科技感但又不至于太过尖锐有温度
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/aPRvNTmHNYxBoOeijhTM.png" alt="让科技有温度">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 17:15:29 +08:00
- **让图形有生命:** 在部分图标设计中,会适度的注入拟人化的元素,令图标具备生命力。
2018-09-28 15:51:10 +08:00
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/scJOuEdiwCgPONdiCZYZ.png" alt="让图形有生命">
2018-09-28 15:51:10 +08:00
</div>
2018-09-29 13:53:56 +08:00
2018-09-29 17:38:50 +08:00
## 给设计师的一些建议
2018-09-29 17:15:29 +08:00
在完成图标设计后保持图形的整洁图层结构的清晰也是构筑图标体系必不可少的部分Ant Design 对设计师有几点建议如下:
- 干掉多余的节点,保持图形的整洁。
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/GTrZirSrsMIawXVjwoDI.png" alt="保持图形的整洁">
2018-09-29 17:15:29 +08:00
</div>
- 合并图形,便于输出。
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/CIKruspXHoWevGWpoXJO.png" alt="合并图形">
2018-09-29 17:15:29 +08:00
</div>
- 对小数点以及奇数进行最后一遍的走查与修正。
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/ySgIPVZBqPOWXOmTHTzT.png" alt="走查与修正">
2018-09-29 17:15:29 +08:00
</div>
- 整洁的图层管理。
<div>
<img class="preview-img no-padding" src="https://gw.alipayobjects.com/zos/rmsportal/zxExIlRfcDTAowrkesHD.png" alt="图层管理">
2018-09-29 17:15:29 +08:00
</div>
2018-09-29 17:38:50 +08:00
## 写在最后
2018-09-29 17:15:29 +08:00
图标的设计是 UI 设计中非常容易被忽略的环节,建立优秀的图形体系也不是一、二个设计人员的事,需要整个团队在设计前、设计中以及设计后都能够达成共识并且通力合作去完成共建。本次图标的升级,仅仅是一个开始。我们会建议在调用图标时,考虑具体业务对于图形化寄予的期望,以及用户操作时的心智模型等因素,结合实际情况做调用和适当的二次设计。