-
Notifications
You must be signed in to change notification settings - Fork 582
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
⭐Ant Design Icon RoadMap #12
Labels
Comments
English Version WIP |
好多 “�” |
@HeskeyBaozi I can support English translation and documenting if you need helps |
@HeskeyBaozi @B3nnyL , cool. |
@zombieJ Yeah, I believe so |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
该图标库是从
antd@3.9.0
开始正式使用的图标库,本文将讲述该图标库如何处理从设计师拿到的图标和具体处理流程。@ant-design/icons(-svg)
v4 贡献指南@ant-design/icons(-svg)
v4 Contribution Guide项目命令
所有命令运行之前,请确保运行
npm run bootstrap
引导各个包安装依赖和符号链接。npm run icons:generate
本项目中最重要的生成命令,运行后将读取
packages/icons/svg
目录下的所有图标文件,并通过packages/icons/build/templates
中的模板文件,将svg
转化成一个json
格式的抽象树,生成ts
文件并且存储在packages/icons/src
目录中。npm run icons:build
构建命令,使用
tsc
将packages/icons/src
目录下的文件编译到packages/icons/lib
目录下,使用的是commonjs
模块规范。同时也将packages/icons/src/index.ts
文件使用babel
编译到packages/icons/lib/index.es.js
, 使用的是ECMAScript
模块规范,用于未来可以使用tree shaking
打包特性。项目结构
基本用法
打包发布
npm run icons:generate
, 生成packages/icons/src/**/*.ts
文件packages/icons/src
目录结构如下npm run icons:build
进行编译packages/icons/lib
npm run lint
,npm run icons:test
lerna
打包发布lerna publish
添加新图标
packages/icons/svg
目录下的fill
、outline
和twotone
目录下进阶指南
工作流
图标的处理可以抽象成管道的流动,所以使用了
rxjs
来优雅地描述处理的过程。命令
npm run icons:generate
的本质就是运行packages/icons/build/generateIcon.ts
中的build(env)
函数。初始化环境
SVGO
处理器配置单色图标的
SVGO
处理器会额外清除路径元素上的fill
属性,因为单色图标路径上的fill
是没有必要的本质是清理
env.paths
路径中以_OUTPUT
结尾的标识符所代表的文件或者表达式这是单向一次性的过程,会根据
packages/icons/build/constants.ts
中的renameMapper
重新命名svg
目录下的图标文件。流
svgMetaDataWithTheme$
SVG 元数据流这是一个高阶流,根据三种主题风格
fill
、outline
、twotone
分别发射出分支流,每个分支流上的数据的接口类型如下:上述的图标定义类型接口如下:
BuildTimeIconMetaData$
构建时图标原数据流该数据流将高阶流
svgMetaDataWithTheme$
打平,并且进行了如下处理:viewBox
为64 64 896 896
。The text was updated successfully, but these errors were encountered: