Skip to content

Icon 图标

基于 SVG 的图标组件,内置常用图标,支持自定义颜色、大小和扩展。

基础用法

通过 name 属性指定图标名称。

vue
<template>
  <dr-icon name="home" />
  <dr-icon name="user" />
  <dr-icon name="setting" />
  <dr-icon name="search" />
</template>

图标颜色

通过 color 属性设置图标颜色。

vue
<template>
  <dr-icon name="heart-fill" color="#ee0a24" />
  <dr-icon name="star-fill" color="#ff976a" />
  <dr-icon name="checkmark-circle-fill" color="#07c160" />
  <dr-icon name="info-circle-fill" color="#1989fa" />
</template>

图标大小

通过 size 属性设置图标大小,默认单位为 rpx

vue
<template>
  <dr-icon name="search" :size="32" />
  <dr-icon name="search" :size="48" />
  <dr-icon name="search" :size="64" />
  <dr-icon name="search" size="40px" />
</template>

旋转动画

设置 spin 属性可以让图标旋转,适用于加载状态。

vue
<template>
  <dr-icon name="loading" :size="48" spin />
  <dr-icon name="refresh" :size="48" spin />
</template>

图片图标

name 属性支持传入图片 URL,可以使用网络图片或本地图片。

vue
<template>
  <dr-icon name="https://example.com/icon.png" :size="48" />
  <dr-icon name="/static/icon.png" :size="48" />
</template>

自定义图标扩展

通过 Vue 的 provide/inject 机制,可以扩展自定义图标。

vue
<script setup>
import { provide } from 'vue'

// 注入自定义图标
provide('drIconCustomIcons', {
  'my-icon': '<path d="M512 64C264.96 64 64 264.96..."/>',
  'custom-logo': '<path d="..."/>'
})
</script>

<template>
  <!-- 使用自定义图标 -->
  <dr-icon name="my-icon" :size="48" />
</template>

内置图标

点击图标可复制名称。

方向箭头

图标名说明
arrow-up向上箭头
arrow-down向下箭头
arrow-left向左箭头
arrow-right向右箭头
arrow-double-left双左箭头
arrow-double-right双右箭头

操作类

图标名说明
close关闭
close-circle关闭圆圈
close-circle-fill关闭圆圈填充
checkmark勾选
checkmark-circle勾选圆圈
checkmark-circle-fill勾选圆圈填充
plus加号
plus-circle加号圆圈
plus-circle-fill加号圆圈填充
minus减号
minus-circle减号圆圈

提示类

图标名说明
info信息
info-circle-fill信息填充
warning警告
warning-circle-fill警告填充
question疑问
question-circle-fill疑问填充

常用功能

图标名说明
search搜索
edit编辑
delete删除
refresh刷新
share分享
setting设置
home首页
user用户
user-fill用户填充
star星星
star-fill星星填充
heart心形
heart-fill心形填充
image图片
camera相机
loading加载
eye眼睛
eye-off隐藏
copy复制
link链接
phone手机
calendar日历
time时间
location定位
menu菜单
more更多
more-vertical更多(竖向)
download下载
upload上传
empty空状态
scan扫描
qrcode二维码

API

Props

参数说明类型默认值
name图标名称或图片 URLstring-
color图标颜色stringcurrentColor
size图标大小,默认单位 rpxstring | number48
spin是否开启旋转动画booleanfalse
bold是否加粗booleanfalse
custom-class自定义类名string-
custom-style自定义样式string | object-

Events

事件名说明回调参数
click点击图标时触发event

Slots

名称说明
default自定义图标内容

基于 MIT 许可发布