Nuxt3中使用UnoCSS指南

Nuxt3中使用UnoCSS指南

UnoCSS是一个高度可定制的、原子化CSS引擎,可以轻松集成到Nuxt3项目中。下面介绍如何在Nuxt3中安装和配置UnoCSS。

安装步骤

安装UnoCSS的Nuxt模块:

bash 复制代码
# 使用pnpm
pnpm add -D unocss @unocss/nuxt

# 使用yarn
yarn add -D unocss @unocss/nuxt

# 使用npm
npm install -D unocss @unocss/nuxt

# 使用bun
bun add -D unocss @unocss/nuxt

基础配置

nuxt.config.ts文件中添加UnoCSS模块:

ts 复制代码
export default defineNuxtConfig({
  modules: [
    '@unocss/nuxt',
  ],
})

创建uno.config.ts配置文件:

ts 复制代码
import { defineConfig } from 'unocss'

export default defineConfig({
  // UnoCSS配置选项
})

预设配置

你可以在nuxt.config.ts中直接配置UnoCSS,启用不同的预设:

ts 复制代码
export default defineNuxtConfig({
  modules: [
    '@unocss/nuxt',
  ],
  unocss: {
    // 预设
    uno: true,            // 启用@unocss/preset-uno
    attributify: true,    // 启用@unocss/preset-attributify
    icons: {              // 启用@unocss/preset-icons
      extraProperties: {
        display: "inline-block",
      },
      customizations: {
        iconCustomizer(collection, icon, props) {
          // 默认图标大小
          props.width = "1.5em";
          props.height = "1.5em";
        },
      },
    },
    // 核心选项
    shortcuts: [],
    rules: [],
  },
})

安装图标预设(可选)

如果需要使用图标预设,需要额外安装:

bash 复制代码
pnpm add -D @unocss/preset-icons @iconify-json/mdi @iconify-json/mdi-light

使用rem转px预设(可选)

如果需要默认生成px单位而非rem单位:

  1. 安装rem转px预设:
bash 复制代码
npm i -D @unocss/preset-rem-to-px
  1. nuxt.config.ts中配置:
ts 复制代码
import presetUno from "@unocss/preset-uno";
import presetRemToPx from "@unocss/preset-rem-to-px";
import presetAttributify from "@unocss/preset-attributify";
import presetIcons from "@unocss/preset-icons";

export default defineNuxtConfig({
  modules: ['@unocss/nuxt'],
  unocss: {
    presets: [
      presetUno(),
      presetAttributify(),
      presetIcons(),
      presetRemToPx(),
    ],
    shortcuts: [],
    rules: [],
  },
})

VS Code智能提示

安装UnoCSS的VS Code扩展可以获得智能提示支持。如果遇到问题,在nuxt.config.js中添加:

js 复制代码
// 添加以下代码以启用UnoCSS VS Code扩展
import { defineNuxtConfig } from "nuxt/config";

然后尝试禁用并重新启用扩展。

UnoCSS会自动注入uno.css入口文件,不需要手动导入。这种轻量级且高度可定制的CSS解决方案可以显著提高Nuxt3项目的开发效率。

相关推荐
0思必得03 小时前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东5164 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino4 小时前
图片、文件的预览
前端·javascript
layman05286 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔6 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李6 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN6 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒6 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库6 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_180079052476 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫