组件 · 通用

Icon 图标

图标组件,配合设计内图标集使用。

入口 @selrux/ui/icon · 源码 src/icon/index.ts · 1 个组件 · 发布状态 preview

使用建议

  • 避免:引入未登记的第三方图标字体作为默认依赖
  • 限制:属性与导出以 @selrux/ui 对应子路径 d.ts/源码为准,禁止臆造

引入

tsx
import { Icon } from '@selrux/ui/icon';

演练场

调节下方可实现的字面量属性,实时预览真实组件。函数、Portal、样式逃生口等见代码演示与 API 表。

icon 固定为 lucide Search;可调 size 等字面量属性。

无可调节的字面量属性;下方为组合用法预览。

代码演示

基础用法

icon 传入 lucide-react 图标组件,本入口不聚合整套图标。

尺寸

size 接受数字(px)或 CSS 长度。

本地 SVG sprite

localIcon 引用当前文档中 <symbol> 的 id,localIconPrefix 为 id 前缀。

localIcon="check" + localIconPrefix="demo-icon-"

API

属性覆盖:示例用到 4 / 4 个自有属性(100%)

由 scripts/demo-coverage.mjs 统计,不含 className / style / 原生透传属性与纯转发事件。

Icon

显示本地 Lucide SVG 或当前文档 sprite,默认作为装饰隐藏于可访问树。 有 aria-label / aria-labelledby 时默认暴露 img 语义;ref 始终指向 SVG。

属性说明类型默认值
icon静态导入的 Lucide 组件;省略时显示 CircleHelp 占位。LucideIcon-
localIcon当前文档中的 SVG symbol 名,优先于 icon;仅允许字母、数字、下划线和连字符。string-
localIconPrefixsprite id 前缀,默认 icon-local;不接受外部 SVG URL。stringicon-local
size正方形尺寸,默认 1em 随文本缩放;可用 CSS 长度或数值。string | number-

另有 488 项原生属性与事件继承自 SVGAttributes,原样透传。

导出类型:IconProps

无障碍

摘自源码 JSDoc。

  • 有 aria-label / aria-labelledby 时默认暴露 img 语义;ref 始终指向 SVG。