sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
119 lines (74 loc) • 3.7 kB
Markdown
---
nav: 组件
title: Icon
subtitle: 图标
group: 基础组件
---
## 介绍
基于字体的图标集。
## 引入
```ts
import Icon from 'sard-uniapp/components/icon/icon.vue'
```
## 代码演示
### 基础使用
使用`name`属性指定要显示的图标。
@code('${DEMO_PATH}/icon/demo/Basic.vue')
### 尺寸
使用`size`属性设置图标大小。
@code('${DEMO_PATH}/icon/demo/Size.vue')
### 颜色
使用`color`属性设置图标颜色。
@code('${DEMO_PATH}/icon/demo/Color.vue')
### 图片类型图标
名称里面带有`/`字符会被当作图片处理。
@code('${DEMO_PATH}/icon/demo/Image.vue')
### 自定义图标
组件库内置有用于内部组件的必须的少量的图标,在实际的应用中,通常需要引入自定义的特定风格的图标库或第三方图标库。
下面演示如何引入 <a href="https://www.iconfont.cn/" target="_blank">`iconfont`</a> 中的图标库(以此文档案例使用的`demo-icons`图标库来演示):
1. 进入到 `iconfont` 中的 `demo-icons` 项目并进行以下配置配置:
- FontClass/Symbol 前缀: `demo-icons-`
- Font Family: `demo-icons`
- 字体格式: 只勾选 `TTF` 和 `Base64`
- 保存
2. 点击更新代码
3. 打开生成的在线 `CSS` 文件
4. 将里面的内容复制下来,粘贴到本地的 css 文件(取名 `demo-icons.css`)
5. 在 `App.vue` 文件导入 `demo-icons.css` 文件:
```html
<style lang="scss">
@import './demo-icons.css';
</style>
```
6. 使用`demo-icons`图标库中的图标:
@code('${DEMO_PATH}/icon/demo/Custom.vue')
### 冒号分隔 <sup>1.18+</sup>
除了通过 `family` 指定图标字体,还可以将图标字体和图标名称通过冒号分隔符组合在一起,统一通过 `name` 进行设置。
@code('${DEMO_PATH}/icon/demo/Colon.vue')
### 分离图标字体和名称 <sup>1.19.3+</sup>
默认情况下,图标组件会将 `family`,以及通过 `-` 拼接的`family` 和 `name` 作为类名添加到图标组件。
例如:
```html
<sar-icon family="demo-icons" name="cart" />
```
会添加 `demo-icons demo-icons-cart` 类名到组件。
如果字体名称和字体前缀不一致,可以使用 `separate` 属性来取消拼接。
假如字体为 `iconfont`,字体前缀为 `icon-`:
```html
<sar-icon family="iconfont" name="icon-cart" separate />
```
会添加 `iconfont icon-cart` 类名到组件;而不是 `iconfont iconfont-icon-cart` 。
也可以 [`全局配置`](../guide/config) 图标的 `separate`。
### 内置图标
点击右边演示的图标可以复制图标名称。
## API
### IconProps
| 属性 | 描述 | 类型 | 默认值 |
| --------------------------- | ------------------------------------------------------- | ---------- | ------ |
| root-class | 组件根元素类名 | string | - |
| root-style | 组件根元素样式 | StyleValue | - |
| name | 图标名称或图片链接,如果名称带有`/`,会被认为是图片图标 | string | '' |
| family | 字体名称 | string | 'sari' |
| size | 图标大小 | string | - |
| color | 图标颜色 | string | - |
| separate <sup>1.19.3+</sup> | 是否分开字体和字体名称,而不进行拼接 | boolean | false |