Skip to content
双端兼容 · 桌面 + 移动

Icon 图标

形状源自 Remix Icon(Remix Icon License v1.0,免费商用),生成期静态快照,运行时零依赖。

  • 核心集:39 个语义命名图标(searchclosearrow-right…),随包内置、零加载
  • 展示集:900+ Remix 原生命名图标(brush-line…),loadShowcaseIcons() 按需加载(独立 chunk,不占主包体积)
  • 需要全量 Remix Icon 时调大生成脚本的 SHOWCASE_PER_CATEGORY 重新生成,见下方扩展到全量

基础用法

核心集
size 接受数字与任意 CSS 尺寸;color 独立覆写,缺省继承文字色。
Continue
vue
<EwIcon name="search" :size="18" />
<EwIcon name="check" :size="18" color="var(--ew-color-success)" />
<EwIcon name="arrow-up-right" :size="16" />

核心集一览

全部 39 个语义图标,名称即语义,覆盖官网组件的常用表达:

内置核心集(39)
arrow-up
arrow-down
arrow-left
arrow-right
arrow-up-right
chevron-up
chevron-down
chevron-left
chevron-right
close
check
plus
minus
search
menu
more
copy
download
external-link
loading
refresh
warning
info
music
play-fill
folder
folder-open
heart
star
star-fill
quote
mail
link
sun
moon
github
x
discord
wechat
vue
react
apple
user
settings
home
map-pin
bell
chat
customer-service
lock
eye
eye-off
wallet
truck
gift
coupon
shopping-cart
shopping-bag
smartphone
desktop
shield-check
file-list
refund
history

展示集(Remix 原生命名)

展示集按 Remix 分类每类限量采样 24 对(line + fill 成对),共 900+ 图标,打包为独立 chunk。 EwIconGrid 开箱即用整套展示集(搜索 / 分类 / 点击复制图标名),也可在 全部图标 页直接浏览。

js
import { loadShowcaseIcons } from '@wil-works/evoke-ui'
loadShowcaseIcons() // 幂等;加载完成后全部 900+ 图标可同步渲染
展示集加载后
文档站已预载展示集,下列 Remix 原生名直接可用。
vue
<EwIcon name="brush-line" :size="20" />
<EwIcon name="compass-3-line" :size="20" />

扩展到全量 Remix Icon

两级扩展路径,按需选择:

  1. 运行时加载内置展示集(零配置):loadShowcaseIcons() 动态加载 900+ 采样图标, 适合绝大多数官网场景;EwIconGrid 内部已自动处理。
  2. 生成期扩大采样乃至全量:改包内 scripts/generate-remix-icons.mjs 的采样上限后重新生成——
bash
# packages/evoke-ui/scripts/generate-remix-icons.mjs
const SHOWCASE_PER_CATEGORY = 24   // 调大,如 9999 即全量(约 3000+ 图标)

pnpm gen:icons:eui                 # 重新生成 showcase 路径数据
pnpm build:eui                     # 重建产物

体积提示

展示集走独立 chunk 动态加载,主包体积不受影响;全量生成后 chunk 会显著变大, 建议仍按站点实际用到的分类采样。

自定义图标

js
import { registerIcons } from '@wil-works/evoke-ui'
import MyLogo from './MyLogo.vue'

registerIcons({ 'my-logo': MyLogo }) // 值可以是组件或 { viewBox, paths } 数据

API

EwIcon Props

属性说明类型默认值
name图标名(kebab-case)或图标组件string / Component
size尺寸number / string16
color颜色string继承

注册表 API

方法说明签名
registerIcons注册自定义图标(icons: Record<string, Component | IconEntry>) => void
getIconByName按名解析(name: string) => Component | undefined
getIconNames枚举全部名称() => string[]
loadShowcaseIcons按需加载展示集() => Promise<void>

基于 MIT 许可证发布