Icon 图标

Element Plus 提供了一套常用的图标集合。

使用图标

安装

使用包管理器

  1. # 选择一个你喜欢的包管理器
  2. # NPM
  3. $ npm install @element-plus/icons-vue
  4. # Yarn
  5. $ yarn add @element-plus/icons-vue
  6. # pnpm
  7. $ pnpm install @element-plus/icons-vue

注册所有图标

您需要从 @element-plus/icons-vue 中导入所有图标并进行全局注册。

  1. // main.ts
  2. // 如果您正在使用CDN引入,请删除下面一行。
  3. import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  4. const app = createApp(App)
  5. for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  6. app.component(key, component)
  7. }

您也可以参考 此模板 Icon 图标 - 图5

浏览器直接引入

直接通过浏览器的 HTML 标签导入 Element Plus,然后就可以使用全局变量 ElementPlusIconsVue了。

根据不同的 CDN 提供商有不同的引入方式, 根据不同的 CDN 提供商有不同的引入方式, 我们在这里以 unpkg Icon 图标 - 图6 jsDelivr Icon 图标 - 图7 举例。 你也可以使用其它的 CDN 供应商。

unpkg

  1. <script src="//unpkg.com/@element-plus/icons-vue"></script>

jsDelivr

  1. <script src="//cdn.jsdelivr.net/npm/@element-plus/icons-vue"></script>

TIP

我们建议使用 CDN 引入 Element Plus 的用户在链接地址上锁定版本,以免将来 Element Plus 升级时受到非兼容性更新的影响。 锁定版本的方法请查看 unpkg.com Icon 图标 - 图8

自动导入

使用 unplugin-icons Icon 图标 - 图9 unplugin-auto-import Icon 图标 - 图10 从 iconify 中自动导入任何图标集。 您可以参考 此模板 Icon 图标 - 图11

基础用法

WARNING

因为 HTML 标准已经定义了一个名为 menu Icon 图标 - 图12 的标签, 如果您注册的 menu 无法正常工作,您需要使用别名来渲染图标。

  1. <!-- Use el-icon to provide attributes to SVG icon -->
  2. <template>
  3. <div>
  4. <el-icon :size="size" :color="color">
  5. <Edit />
  6. </el-icon>
  7. <!-- Or use it independently without derive attributes from parent -->
  8. <Edit />
  9. </div>
  10. </template>

Icon 图标 - 图13Icon 图标 - 图14

结合 el-icon 使用

el-icon 为 raw SVG 图标提供额外的属性, 提供的详细属性请继续阅读。

  1. <template>
  2. <p>
  3. with extra class <b>is-loading</b>, your icon is able to rotate 360 deg in 2
  4. seconds, you can also override this
  5. </p>
  6. <el-icon :size="20">
  7. <Edit />
  8. </el-icon>
  9. <el-icon color="#409EFC" class="no-inherit">
  10. <Share />
  11. </el-icon>
  12. <el-icon>
  13. <Delete />
  14. </el-icon>
  15. <el-icon class="is-loading">
  16. <Loading />
  17. </el-icon>
  18. <el-button type="primary">
  19. <el-icon style="vertical-align: middle">
  20. <Search />
  21. </el-icon>
  22. <span style="vertical-align: middle"> Search </span>
  23. </el-button>
  24. </template>

通过添加额外的类名 is-loading,你的图标就可以在 2 秒内旋转 360 度,当然你也可以自己改写想要的动画。

Icon 图标 - 图15Icon 图标 - 图16Icon 图标 - 图17Icon 图标 - 图18Icon 图标 - 图19搜索

直接使用 SVG 图标

  1. <template>
  2. <div style="font-size: 20px">
  3. <!-- 由于SVG图标默认不携带任何属性 -->
  4. <!-- 你需要直接提供它们 -->
  5. <Edit style="width: 1em; height: 1em; margin-right: 8px" />
  6. <Share style="width: 1em; height: 1em; margin-right: 8px" />
  7. <Delete style="width: 1em; height: 1em; margin-right: 8px" />
  8. <Search style="width: 1em; height: 1em; margin-right: 8px" />
  9. </div>
  10. </template>

Icon 图标 - 图20Icon 图标 - 图21Icon 图标 - 图22Icon 图标 - 图23

图标集合

TIP

只要你安装了 @element-plus/icons,就可以在任意版本里使用 SVG 图标

您可以点击图标复制代码。

Copy SVG contentCopy icon code

Icon 图标 - 图24Icon 图标 - 图25Icon 图标 - 图26Icon 图标 - 图27Icon 图标 - 图28Icon 图标 - 图29Icon 图标 - 图30Icon 图标 - 图31Icon 图标 - 图32

Icon 属性

属性说明类型可选值默认值
colorsvg 的 fill 颜色Pick<CSSProperties, ‘color’>-inherit
sizeSVG 图标的大小,size x sizenumber/string-

Icon 插槽

名称说明
自定义默认内容

源代码

组件 Icon 图标 - 图33 文档 Icon 图标 - 图34

贡献者

Icon 图标 - 图35 三咲智子

Icon 图标 - 图36 jeremywu

Icon 图标 - 图37 云游君

Icon 图标 - 图38 btea

Icon 图标 - 图39 zhangenming

Icon 图标 - 图40 류한경

Icon 图标 - 图41 Delyan Haralanov

Icon 图标 - 图42 M5 Universe

Icon 图标 - 图43 on the field of hope

Icon 图标 - 图44 zazzaz

Icon 图标 - 图45 Hades-li

Icon 图标 - 图46 basonwoo

Icon 图标 - 图47 Kevin.Liao

Icon 图标 - 图48 iamkun

Icon 图标 - 图49 Wisdom

Icon 图标 - 图50 kooriookami

Icon 图标 - 图51 qiang