Skip to content

图标 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-linestar-lineedit-fill 的线性版 edit-line
  • 面性风格后缀 -fill,如 send-plane-fillstar-fill

本手册示例中出现的图标名(如 home-linetranslatefont-sizemoon-linesun-line 等)均来自项目 pages 示例页的实际用法。

jzfw-ui 操作手册