---
title: 图标
icon: raphael:smile2
createTime: 2024/07/22 10:45:47
permalink: /guide/features/icon/
---

## 概述

主题支持以下来源的图标：

- [iconify](https://iconify.design/) - 默认支持
- [iconfont](https://www.iconfont.cn/) - 可选
- [fontawesome](https://fontawesome.com/) - 可选

在主题的以下功能中以相同的方式使用图标：

- [导航栏图标](../../config/navbar.md#配置)
- [侧边栏图标](../../guide/document.md#侧边栏图标)
- [文件树图标](../../guide/markdown/file-tree.md)
- [代码分组标题图标](../code/code-tabs.md#分组标题图标)

提供语法糖和组件支持：

[Markdown 图标语法糖支持](../markdown/icons.md){.read-more}

[图标组件支持](../components/icon.md){.read-more}

::: tip 主题对图标的优化
上述的不同的使用图标的方式，主题在内部都采取了相同的解析策略，即使您在不同的位置使用了相同的图标，
也不会重复加载相同的图标资源。
:::

## 配置

```ts title=".vuepress/config.ts" twoslash
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'

export default defineUserConfig({
  theme: plumeTheme({
    markdown: { // [!code ++:3]
      icon: { provider: 'iconify' } // 默认支持
    }
  })
})
```

## 配置项

### provider

- **类型**: `'iconify' | 'iconfont' | 'fontawesome'`
- **默认值**: `'iconify'`

图标提供商

### prefix

- **类型**: `string`
- **默认值**: `''` （不同的图标提供商有不同的默认值）
- **详情**:

  图标前缀

  - 提供商为 `iconify` 时，默认为 `''`，设置 `iconify` 的图标集作为前缀，比如 `mdi` 。
  - 提供商为 `iconfont` 时，默认为 `'iconfont icon-'`
  - 提供商为 `fontawesome` 时默认为 `'fas'`，可选值如下：

    ```ts
    type FontAwesomePrefix
      = | 'fas' | 's' // fa-solid fa-name
        | 'far' | 'r' // fa-regular fa-name
        | 'fal' | 'l' // fa-light fa-name
        | 'fat' | 't' // fa-thin fa-name
        | 'fads' | 'ds' // fa-duotone fa-solid fa-name
        | 'fass' | 'ss' // fa-sharp fa-solid fa-name
        | 'fasr' | 'sr' // fa-sharp fa-regular fa-name
        | 'fasl' | 'sl' // fa-sharp fa-light fa-name
        | 'fast' | 'st' // fa-sharp fa-thin fa-name
        | 'fasds' | 'sds' // fa-sharp-duotone fa-solid fa-name
        | 'fab' | 'b' // fa-brands fa-name
    ```

### assets

- **类型**: `(string | FontAwesomeAssetBuiltin)[] | string | FontAwesomeAssetBuiltin`

  ```ts
  type FontAwesomeAssetBuiltin = 'fontawesome' | 'fontawesome-with-brands'
  ```

- **默认值**: `undefined`

- **详情**:

  - `iconify` 时，不需要设置；
  - `iconfont` 时，设置为 iconfont 的资源地址；
  - `fontawesome` 时，设置为 `fontawesome` 的资源地址，可选值为 `fontawesome` 或 `fontawesome-with-brands`，
    或者自定义资源地址。

### size

- **类型**: `string | number`
- **默认值**: `1em`
- **详情**:

  图标的默认尺寸

### color

- **类型**: `string`
- **默认值**: `'currentColor'`
- **详情**:

  图标的默认颜色
