--- title: Icon lang: en-US --- # Icon Element Plus provides a set of common icons. ## Icon Usage - If you want to **use directly** like the example, you need to [globally register](https://v3.vuejs.org/guide/component-registration.html#global-registration) the components before using it. - If you want to see all available SVG icons please check [@element-plus/icons-vue](https://unpkg.com/browse/@element-plus/icons-vue@latest/dist/es/) and the source [element-plus-icons](https://github.com/element-plus/element-plus-icons) out or [Icon Collection](#icon-collection) ## Installation ### Using packaging manager ```shell # Choose a package manager you like. # NPM $ npm install @element-plus/icons-vue # Yarn $ yarn add @element-plus/icons-vue # pnpm $ pnpm install @element-plus/icons-vue ``` ### Register All Icons You need import all icons from `@element-plus/icons-vue` and register them globally. ```ts // main.ts // if you're using CDN, please remove this line. import * as ElementPlusIconsVue from '@element-plus/icons-vue' const app = createApp(App) for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } ``` You can also refer to [this template](https://codepen.io/sxzz/pen/xxpvdrg). ### Import in Browser Import Element Plus Icons through browser HTML tags directly, and use global variable `ElementPlusIconsVue`. According to different CDN providers, there are different introduction methods. Here we use [unpkg](https://unpkg.com) and [jsDelivr](https://jsdelivr.com) as example. You can also use other CDN providers. #### unpkg ```html ``` #### jsDelivr ```html ``` :::tip We recommend using CDN to import Element Plus users to lock the version on the link address, so as not to be affected by incompatible updates when Element Plus is upgraded in the future. Please check [unpkg.com](https://unpkg.com) for the method to lock the version. ::: ### Auto Import Use [unplugin-icons](https://github.com/antfu/unplugin-icons) and [unplugin-auto-import](https://github.com/antfu/unplugin-auto-import) to automatically import any icon collections from iconify. You can refer to [this template](https://github.com/sxzz/element-plus-best-practices/blob/db2dfc983ccda5570033a0ac608a1bd9d9a7f658/vite.config.ts#L21-L58). ## Simple Usage :::warning Because HTML standard has already defined a tag named [menu](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu), so you need to use an alias in order to render the icon, if you register `Menu` directly it will not work. ::: ```vue ``` import { Edit, Share, Delete, Search, Loading } from '@element-plus/icons-vue'
## Combined with el-icon `el-icon` provides extra attributes for raw SVG icon, for more detail, please read to the end. ```vue ```

with extra class is-loading, your icon is able to rotate 360 deg in 2 seconds, you can also override this

Search
## Using SVG icon directly ```vue ```
## Icon Collection :::tip **You can use SVG icon in any version** as long as you install it **You can click the icon to copy it** ::: ## Icon Attributes | Attribute | Description | Type | Acceptable Value | Default | | --------- | -------------------------- | ------------------------------ | ---------------- | ---------------------- | | color | SVG tag's fill attribute | Pick\ | - | inherit from color | | size | SVG icon size, size x size | number \| string | - | inherit from font size | ## Icon Slots | Name | Description | | ---- | ------------------------- | | — | customize default content |