vue3使用inspira-ui教程【附带源码】

vue3使用inspira-ui教程【附带源码】

inspira-ui是基于tailwindcss的,我们需要引入tailwindcss,然后再把inspira-ui官网的示例代码复制到项目中就可以使用了。

完整源码下载gitee : https://gitee.com/xingyueqianduan/vue3-inspira-ui.git

完整源码下载github:https://github.com/858399075/vue3-inspira-ui-.git

效果:


首先搭建一个vue3项目,然后引入相关依赖。

目录示例:

package.json

js 复制代码
{
  "name": "vue-project",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "format": "prettier --write src/"
  },
  "dependencies": {
    "@tailwindcss/vite": "^4.1.0",
    "@vueuse/core": "^13.0.0",
    "lucide-vue-next": "^0.486.0",
    "motion-v": "^1.0.0-alpha.4",
    "pinia": "^3.0.1",
    "scss": "^0.2.4",
    "tailwindcss": "^4.1.0",
    "tw-animate-css": "^1.2.5",
    "vue": "^3.5.13",
    "vue-router": "^4.5.0"
  },
  "devDependencies": {
    "@iconify/vue": "^4.3.0",
    "@inspira-ui/plugins": "^0.0.1",
    "@vitejs/plugin-vue": "^5.2.1",
    "autoprefixer": "^10.4.21",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "postcss": "^8.5.3",
    "prettier": "3.5.3",
    "sass-embedded": "^1.86.1",
    "sass-loader": "^7.3.1",
    "tailwind-merge": "^3.2.0",
    "tailwindcss": "^4.0.17",
    "tailwindcss-animate": "^1.0.7",
    "vite": "^6.2.1",
    "vite-plugin-vue-devtools": "^7.7.2"
  }
}

vite.config.js

js 复制代码
import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import tailwindcss from '@tailwindcss/vite'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
    tailwindcss()
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
  // 全局css 
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: '@import "./src/assets/styles.css";' // 添加公共样式
      }
    }
  },
  server: {
    host: '0.0.0.0', // 允许通过 IP 地址访问
    port: 5175, // 可选:指定端口号
    strictPort: true, // 可选:确保端口不被占用
    open: true // 可选:自动打开浏览器
  }
})

tailwind.config.js

js 复制代码
import animate from "tailwindcss-animate";
import { setupInspiraUI } from "@inspira-ui/plugins";

export default {
  darkMode: "selector",
  safelist: ["dark"],
  prefix: "",
  content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
  theme: {
    extend: {
      colors: {
        border: "hsl(var(--border))",
        input: "hsl(var(--input))",
        ring: "hsl(var(--ring))",
        background: "hsl(var(--background))",
        foreground: "hsl(var(--foreground))",
        primary: {
          DEFAULT: "hsl(var(--primary))",
          foreground: "hsl(var(--primary-foreground))",
        },
        secondary: {
          DEFAULT: "hsl(var(--secondary))",
          foreground: "hsl(var(--secondary-foreground))",
        },
        destructive: {
          DEFAULT: "hsl(var(--destructive))",
          foreground: "hsl(var(--destructive-foreground))",
        },
        muted: {
          DEFAULT: "hsl(var(--muted))",
          foreground: "hsl(var(--muted-foreground))",
        },
        accent: {
          DEFAULT: "hsl(var(--accent))",
          foreground: "hsl(var(--accent-foreground))",
        },
        popover: {
          DEFAULT: "hsl(var(--popover))",
          foreground: "hsl(var(--popover-foreground))",
        },
        card: {
          DEFAULT: "hsl(var(--card))",
          foreground: "hsl(var(--card-foreground))",
        },
      },
      borderRadius: {
        xl: "calc(var(--radius) + 4px)",
        lg: "var(--radius)",
        md: "calc(var(--radius) - 2px)",
        sm: "calc(var(--radius) - 4px)",
      },
    },
  },

  plugins: [animate, setupInspiraUI],
};

tailwind.css

css 复制代码
@import "tailwindcss";


utils.js

js 复制代码
import { clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';

export function cn(...inputs) {
  return twMerge(clsx(inputs));
}

main.js

js 复制代码
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import './assets/tailwind.css'
import './assets/styles.css'
import './assets/main.css'

import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(createPinia())
app.use(router)

app.mount('#app')
相关推荐
top_designer7 小时前
告别“复制粘贴”式换肤:我用Adobe XD组件变体与CC库,构建多品牌设计系统架构
前端·ui·adobe·系统架构·ux·设计师·adobe xd
码海扬帆:前端探索之旅1 天前
小程序开发指南(四)(UI 框架整合)
ui·微信小程序·小程序
chxii1 天前
6.4 Element UI 中的 <el-table> 表格组件
vue.js·ui·elementui
★YUI★2 天前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
枯萎穿心攻击2 天前
从 Unity UGUI 到 Unreal UMG 的交互与高效实践:UI 事件、坐标系适配与性能优化
开发语言·ui·unity·性能优化·ue5·游戏引擎·虚幻引擎
xiaopengbc2 天前
Photoshop CS6精简版轻量级,Photoshop CS6绿色免安装,Photoshop CS6安装教程
ui·photoshop
界面开发小八哥3 天前
界面控件DevExpress WPF中文教程:Data Grid - 绑定数据
ui·.net·wpf·界面控件·devexpress·ui开发
pythonqiang93 天前
Axure下载安装教程(附安装包)Axure RP 11 超详细下载安装教程
其他·ui·axure·photoshop
我不是程序猿儿3 天前
【C#】观察者模式 + UI 线程调度、委托讲解
观察者模式·ui·c#
Kingsdesigner3 天前
我用Photoshop Firefly+Blender,拯救被环境毁掉的人像大片
图像处理·ui·adobe·社交电子·blender·传媒·photoshop