Skip to content

Icon (图标)

Icon组件提供了一个灵活的方式来展示SVG和图片图标,支持自定义大小、颜色等属性。

TIP

本组件的实现灵感来自于 Anthony Fu 的文章 《Icons in Pure CSS》, 感谢 Anthony Fu 的分享。

Basic Usage (基本使用)

Custom Size (自定义大小)

Icon组件支持多种方式设置图标尺寸:

  1. 通过 size 属性设置(同时设置宽高):
    • 支持数字(默认单位为px)::size="16"
    • 支持带单位的字符串:size="2rem", size="16px"
  2. 通过 widthheight 属性分别设置宽高
  3. 通过 CSS 的 widthheight 属性设置(推荐)
使用 size 属性设置尺寸:
使用 width/height 属性设置尺寸:
使用 CSS 设置尺寸:

Custom Color (自定义颜色)

Icon组件支持两种设置颜色的方式:

  1. 通过 color 属性直接设置颜色
  2. 通过CSS的 color 属性设置颜色(推荐)

使用CSS的 color 属性可以更灵活地控制颜色,支持主题色变量,并且可以通过伪类(如 :hover)实现颜色过渡效果。

使用 color 属性设置颜色:
使用 CSS color 属性设置颜色(支持 hover 效果):

Render Mode (渲染模式)

Icon组件支持两种渲染模式:

  • mask模式:适用于需要改变颜色的SVG图标
  • background模式:适用于普通图片图标
Mask 模式(支持修改颜色):
Background 模式(保持原始颜色):

Global Config (全局配置)

你可以通过 HiConfigProvider 组件为所有图标提供默认配置:

vue
<template>
  <hi-config-provider :icon="{ size: 24, sizeUnit: 'px' }">
    <hi-icon src="/hoci.svg" />
  </hi-config-provider>
</template>

Icon Props (参数)

NameTypeDefaultDescription
srcstring-图标的源地址,支持SVG和图片格式
sizenumber | string-图标的大小,同时设置宽度和高度
widthnumber | string-图标宽度
heightnumber | string-图标高度
colorstringcurrentColor图标颜色(仅在mask模式下生效)
maskboolean | "auto""auto"渲染模式
asstring"div"渲染的HTML标签

ConfigProvider Props (配置参数)

NameTypeDefaultDescription
sizenumber-默认图标大小
sizeUnitstring"px"尺寸单位