sag-icons 的核心差异化:多色调 + 状态感知。其他图标库的多色是静态的,sag-icons 的多色由
is-active类驱动。
sag-icons 提供两种内置颜色状态:默认(灰色)与激活(彩色)。状态的切换完全由 CSS 类驱动,无需 JavaScript 介入。
| 状态 | 类名 | 外观 |
|---|---|---|
| 默认 | 无 | 灰色(由 --sag-icon-default 控制) |
| 激活 | is-active | 各色块显示完整颜色 |
每个图标的多个色块通过 data-tone 属性区分,可被 CSS 选择器单独控制:
通过覆盖 CSS 变量调整任意色块:
| 变量 | 默认值 | 用途 |
|---|---|---|
--sag-icon-blue | #3b82f6 | 蓝色色块 |
--sag-icon-cyan | #06b6d4 | 青色色块 |
--sag-icon-green | #22c55e | 绿色色块 |
--sag-icon-amber | #f59e0b | 琥珀色块 |
--sag-icon-white | #ffffff | 白色色块 |
--sag-icon-default | #9ca3af | 默认(非激活)灰色 |
在暗色主题下,建议调亮默认灰色以保证对比度:
由于激活态由 is-active 类控制,你可以把它与任意状态系统对接:
@tanstack/react-router 的 activeProps)useState):hover / :focus 伪类只要给 sag-icon 元素加上 is-active 类,CSS 就会自动应用完整配色。