Skyroc UIDocs
通用
SKYROC UI · COMPONENT

Icon

基于 Iconify 渲染 SVG 图标的通用图标组件

@skyroc/web-uiTypeScriptRadix foundation

Icon 用于通过 Iconify 图标名渲染 SVG 图标。组件直接封装 @iconify/react 的 Icon,默认宽高为 1.25em,可以随文本字号缩放,也可以通过 width 和 height 显式设置尺寸。

import { Icon } from '@skyroc/web-ui';

何时使用

  • 需要在按钮、菜单、提示或表单中展示语义图标。
  • 需要统一使用 Iconify 图标集,例如 lucide:home、mdi:account、ri:settings-3-line。
  • 图标需要跟随文字颜色或主题色变化。
  • 如果是纯图标按钮,优先使用 ButtonIcon;如果需要在按钮内组合文字和图标,使用 Button 的 leading 或 trailing 插槽。

基础用法

通过 icon 传入 Iconify 图标名称,格式通常为 prefix:name。

预览
代码
Loading...

尺寸

默认尺寸为 1.25em,会跟随当前字号。也可以通过 width 和 height 设置固定尺寸。

预览
代码
Loading...

颜色

Icon 支持通过 className 使用主题色,也支持通过 color 传入 CSS 颜色值。颜色只对可重设颜色的单色图标生效,带固定调色板的图标不会被强制改色。

预览
代码
Loading...

动画与变换

Icon 透传 Iconify 的变换属性和 SVG 属性,可以使用 rotate、flip、inline、className 等能力。

<Icon
  className="animate-spin text-primary"
  icon="lucide:loader-circle"
/>

API

Icon

通用属性参考:继承 @iconify/react 的 Icon props,并支持常规 SVG 元素属性。

Props属性、类型与默认值
15 properties
属性说明类型默认值
icon*Iconify 图标名称或图标数据对象string | icon data-
width图标宽度string | number | null'1.25em'
height图标高度string | number | null'1.25em'
color图标颜色,支持任意 CSS 颜色值string-
className自定义 class,可用于颜色、尺寸、动画等样式string-
style内联样式,来自 svg 元素属性style object-
inline是否按内联图标方式对齐文本基线booleanfalse
rotate旋转图标,可传角度字符串或四分之一圈数值string | number-
flip翻转图标'horizontal' | 'vertical' | 'horizontal,vertical'-
mode渲染模式'style' | 'bg' | 'mask' | 'svg'-
fallback图标加载前或加载失败时展示的内容ReactNode-
onLoad图标数据加载完成时触发(name: string) => void-
ssr是否启用 Iconify 的服务端立即渲染模式boolean-
id图标唯一 id,也会透传给底层 SVGstring-
aria-label无文字说明的语义图标应提供可访问名称string-

类型

IconProps

Icon 组件属性。来自 @iconify/react 的 IconProps,并由本组件补充默认 width 和 height。

字段类型说明
icon*string | icon dataIconify 图标名称或图标数据对象。
widthstring | number | null图标宽度。默认值为 1.25em。
heightstring | number | null图标高度。默认值为 1.25em。
colorstring图标颜色。
classNamestring自定义 class。
stylestyle object内联样式。
inlineboolean是否按内联图标方式对齐文本基线。
rotatestring | number旋转图标。
flip'horizontal' | 'vertical' | 'horizontal,vertical'翻转图标。
mode'style' | 'bg' | 'mask' | 'svg'Iconify 渲染模式。
fallbackReactNode加载前或加载失败时的回退内容。
onLoad(name: string) => void图标数据加载完成回调。
ssrboolean是否启用 Iconify 服务端立即渲染模式。
...svgPropssvg element props透传常规 svg 元素属性。

On this page