组件 · 通用
Icon 图标
图标组件,配合设计内图标集使用。
使用建议
- 避免:引入未登记的第三方图标字体作为默认依赖
- 限制:属性与导出以 @selrux/ui 对应子路径 d.ts/源码为准,禁止臆造
引入
tsx
import { Icon } from '@selrux/ui/icon';演练场
调节下方可实现的字面量属性,实时预览真实组件。函数、Portal、样式逃生口等见代码演示与 API 表。
代码演示
基础用法
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 | - |
localIconPrefix | sprite id 前缀,默认 icon-local;不接受外部 SVG URL。 | string | icon-local |
size | 正方形尺寸,默认 1em 随文本缩放;可用 CSS 长度或数值。 | string | number | - |
另有 488 项原生属性与事件继承自 SVGAttributes,原样透传。
导出类型:IconProps
无障碍
摘自源码 JSDoc。
- 有 aria-label / aria-labelledby 时默认暴露 img 语义;ref 始终指向 SVG。