当前位置: 首页 > article >正文

unocss 添加支持使用本地 svg 预设图标,并支持更改大小

安装 pnpm install @iconify/utils

在配置文件 unocss.config.tspresets > presetIcons 选项中

通过 FileSystemIconLoader 加载本地图标,并指定目录。

import presetWeapp from 'unocss-preset-weapp'
import { extractorAttributify, transformerClass } from 'unocss-preset-weapp/transformer'
import { defineConfig, presetIcons } from 'unocss'

const { presetWeappAttributify, transformerAttributify } = extractorAttributify()

import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders' // 支持通过 iconify 加载本地 svg 图标
export default defineConfig({
  presets: [
    // https://github.com/MellowCo/unocss-preset-weapp
    presetWeapp(
      {
        isH5: process.env.TARO_ENV === 'h5',
        platform: 'taro',
        // 通过设置 taroWebpack 版本,指定 rem 策略
        taroWebpack: 'webpack5',
        // designWidth: 375,
        designWidth: 750,
        deviceRatio: {
          640: 2.34 / 2,
          750: 1,
          828: 1.81 / 2,
          375: 2 / 1
        },
      },
    ),
    presetWeappAttributify(),
    // 预设图标
    presetIcons({
      // 添加 '$1"1em" ,支持动态改变图标大小
      collections: {
        // 不同模块,自定义图标前缀
        tender: FileSystemIconLoader('./src/assets/svg-icon/tenderDetail', svg => svg.replace(/(<svg.*?width=)"(.*?)"/, '$1"1em"').replace(/(<svg.*?height=)"(.*?)"/, '$1"1em"')),
        // appSvg: FileSystemIconLoader('./src/assets/svg-icon', svg => svg
        //   .replace(/(<svg.*?width=)"(.*?)"/, '$1"1em"').replace(/(<svg.*?height=)"(.*?)"/, '$1"1em"')),
        // ...
      }
    }),
  ],
  shortcuts: [
    {
      'border-base': 'border border-gray-500/10',
      'center': 'flex justify-center items-center',
    },
  ],

  transformers: [

    // https://github.com/MellowCo/unocss-preset-weapp/tree/main/src/transformer/transformerAttributify
    // 支持在小程序中使用 attributify mode
    transformerAttributify(),

    // https://github.com/MellowCo/unocss-preset-weapp/tree/main/src/transformer/transformerClass
    // 用于转换 微信小程序 不支持的 \\,\: \[ \$ \. 等转义类名, 实现在小程序中使用原子化css
    transformerClass(),
  ],
  theme: {
    color: {
      bg: 'rgba(22, 33, 255, 1)',
    },
  },
})

使用:
在这里插入图片描述


http://www.kler.cn/a/379086.html

相关文章:

  • HTML5+css3(伪类,动态伪类,结构伪类,否定伪类,UI伪类,语言伪类,link,hover,active,visited,focus)
  • 安全性测试
  • 数字信号处理Python示例(5)使用实指数函数仿真PN结二极管的正向特性
  • ICPC区域赛成都站【赛后回顾+总结】
  • 使用Mac如何才能提高OCR与翻译的效率
  • css实现antd丝带效果
  • redis安装使用
  • 【项目开发】高校思政课程实践任务平台—数据库设计
  • C# 结构型设计模式----组合模式
  • 做一个干电池的电量检测器03:数值拟合与电路仿真
  • 学生自我导向学习倾向性测评
  • 力扣hot100-->hash表/map
  • 头歌网络安全爬虫
  • 编写 blender python 扩展 (extension / addon)
  • Kotlin by lazy和lateinit的使用及区别
  • qemu_imx6ul使用mount挂载Permission denied问题解决记录
  • 为什么要使用Golang以及如何入门
  • 【Linux】ProxySQL读写分离
  • 信息学科平台系统开发:基于Spring Boot的最佳实践
  • Android使用timer和thread实现定时器
  • 【数据结构】堆:建堆/向下调整/上向调整/堆排序/TOK问题
  • 数组、字符串、链表和队列的指针的定义
  • CQ社区版 v2024.10 | 支持k8s、helm部署!
  • SpringBoot中扩展Druid的过滤器实现完整的SQL打印
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.10.27)
  • 心情追忆-AI分析报错