Skip to content

Icon 图标

原创线性图标集,按名渲染内联 SVG,tree-shakable。

用法

常用图标

尺寸与颜色

尺寸与颜色

无障碍名称

设置 label 后图标对屏幕阅读器暴露可读名称。

带标签图标

旋转动画

spin 属性让图标无限旋转(适合 loading 场景);rotate 按角度静态旋转;flip 镜像翻转(可与 rotate 叠加)。

spin 旋转

rotate 角度旋转

flip 翻转

自定义图标

  • src:远程/本地 SVG URL,fetch 加载内联渲染(颜色跟随 color/currentColor
  • slot:直接在标签内放内联 <svg>,优先级高于 name

src 加载 SVG

slot 内联 SVG(优先于 name)

图标库注册

registerIcon(name, svg) 可注册自定义图标,之后直接用 name 引用(同名会覆盖内置图标)。

registerIcon 注册自定义图标

远程图标库

registerIconLibrary(name, { resolver, mutator, spriteSheet }) 注册远程图标库: resolver 把图标名解析为 SVG URL,组件按需 fetch 加载内联渲染(颜色跟随 color/currentColor); mutator 在内联后调整 SVG(如描边图标补 stroke="currentColor"); spriteSheet 模式渲染 <use href="url#name">,不内联整 SVG。

CDN 图标库(Lucide via jsDelivr,mutator 补描边)

sprite 表(本地,<use> 引用)

family 变体(本地 demo-set)

variant 变体(如粗细)

动画预设

animation 属性提供一组开箱即用的动画(尊重 prefers-reduced-motion,系统减弱动态时自动停用)。

动画预设

双色图标

duotone 把图标分层着色:data-layer="primary" / data-layer="secondary"(或前两个图形元素)分别用 --oas-icon-primary-color / --oas-icon-secondary-color 上色,透明度默认 primary 1 / secondary 0.4(变量可在宿主覆盖)。swap-opacity 交换两层透明度。内置图标为单色,主要配合自定义双层 SVG 使用。

duotone 双色

占位框模式

canvas 控制图标占位框尺寸:fixed(1.25×1em)/ auto(自然宽 × 1em)/ square(1.25×1.25em)/ roomy(1.5×1.5em);显式设置 size 优先。

canvas 占位框模式

fixed
auto
square
roomy

透明度层级

depth 控制透明度层级(1=100% … 5=20%),常用于批量图标营造层次感。

depth 透明度层级

按需引入

ts
import { checkPath } from '@oas-ui/icons'
import { registerIcon } from '@oas-ui/ui'

registerIcon('my-icon', '<path d="..."/>')

图标一览

全部图标(点击复制名称)

API

属性

属性说明类型默认值
animation动画预设:spin / spin-pulse / spin-reverse / spin-snap / beat / fade / beat-fade / bounce / shake / swing / wag / buzz / float / jello(尊重 prefers-reduced-motion)string
canvas占位框模式:fixed(默认 1.25×1em)/ auto(自然宽 × 1em)/ square(1.25×1.25em)/ roomy(1.5×1.5em)string
color颜色(CSS 色值)string
depth透明度层级:1(100%)~ 5(20%),用于批量图标营造层次感string
duotone双色图标:分层着色(--oas-icon-primary-color / --oas-icon-secondary-color + 透明度),主要配合自定义双层 SVGboolean
family图标族(传给库 resolver 的 family 参数,如描边/实心)string
flip翻转:镜像(x / y / both 轴),可与 rotate 组合string
label可读名称;设置后 role="img"string
library远程图标库名(registerIconLibrary 注册的库),优先于 name 内置注册表string
name图标名(kebab-case)IconName
rotate角度旋转:任意角度(rotate="45" 度数)string
size尺寸(px 或 em)string
spin旋转动画:无限旋转(loading 场景)boolean
src自定义图标地址:远程/本地 SVG URL,fetch 加载内联渲染(颜色跟随 color / currentColorstring
swap-opacity交换双色图标的 primary / secondary 透明度boolean
variant图标变体(传给库 resolver 的 variant 参数,如粗细)string

插槽

名称说明
默认

图标名一览:alert-circle arrow-down arrow-left arrow-right arrow-up calendar check-circle check chevron-down chevron-left chevron-right chevron-up clock close-circle close copy download edit error external-link eye filter gear heart info loading lock mail menu minus more-vertical more plus refresh search sort star-filled star trash upload user warning

基于 MIT OR Apache-2.0 双许可发布