图标 Icon
jzfw-ui 的图标基于 remixicon 字体。内置码表仅收录首批组件用到的图标,完整 remixicon 码表可自行注入。
引入字体
需在 App.uvue 的 <style> 中引入一次:
css
@import "@/uni_modules/jzfw-ui/icons/index.scss";默认字体族为 remixicon,与 icons/remixicon.scss 中的 @font-face 保持一致。
使用图标
通过 jz-icon 组件按名称使用:
html
<jz-icon name="home-line" :size="24" color="primary"></jz-icon>
<jz-icon name="send-plane-fill" :size="18"></jz-icon>详见 基础组件 · jz-icon。
图标注册表 API
从统一入口导入:
uts
import {
registerIcon, registerIcons,
hasIcon, iconNames, getIcon
} from "@/uni_modules/jzfw-ui";| 函数 | 签名 | 说明 |
|---|---|---|
registerIcon | (name: string, code: string) => void | 注册单个图标(码点为 16 进制字符串) |
registerIcons | (items: string[][]) => void | 批量注册图标 |
hasIcon | (name: string) => boolean | 判断图标是否已注册 |
iconNames | () => string[] | 返回全部已注册图标名称,供图标选择器枚举 |
getIcon | (name: string, font?: string) => JzIconContent | 获取图标的字体族与字形字符 |
JzIconContent 结构:{ font: string; text: string }。
注入完整码表
内置码表有限,使用未收录的图标时,getIcon 返回空内容并对该名称只告警一次([jzfw-ui] 图标 "xxx" 未注册)。可通过注册函数扩充:
uts
// 单个注册
registerIcon("home-line", "ee1b");
// 批量注册
registerIcons([
["star-line", "f185"],
["star-fill", "f186"]
]);码点取自 remixicon 字体表(
icons/remixicon.uts为内置码表,icons/remixicon.scss为字体与类名映射)。项目icons/目录另提供了完整的 remixicon 资源包,可据此生成完整码表后调用registerIcons注入。
图标名称约定
remixicon 图标名遵循 {语义}-{风格} 约定:
- 线性风格后缀
-line,如home-line、star-line、edit-fill的线性版edit-line - 面性风格后缀
-fill,如send-plane-fill、star-fill
本手册示例中出现的图标名(如 home-line、translate、font-size、moon-line、sun-line 等)均来自项目 pages 示例页的实际用法。
