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')
相关推荐
精神底层20 小时前
拒绝 UI 卡死!我用 CSnakes 实时拦截 Python 训练流,在 WPF 中重构了 ScottPlot 5 高性能 AI 看板
python·ui·wpf
在书中成长21 小时前
HarmonyOS 小游戏《对战五子棋》开发第27篇 - 模式选择与UI布局
ui·harmonyos
不爱记笔记1 天前
GPT-5.6 Sol 真实项目实测!Bug修复、UI重构与帆船游戏复刻
人工智能·gpt·ui·chatgpt·bug·openai
前端H2 天前
生成式 UI 实战:AI 如何重塑前端界面
前端·人工智能·ui
全栈开发圈2 天前
新书速览|ComfyUI工作流赋能Photoshop
ui·photoshop
招风的黑耳3 天前
从水电大屏到全行业通用方案:用Axure搭建可视化大屏原型的完整方法论
ui·axure·photoshop
LT10157974443 天前
2026年手机机型兼容性测试选型指南:安卓机型碎片化、APP闪退UI错乱如何解决
android·测试工具·ui·智能手机
Java面试题总结4 天前
C# 源生成器使用方法
windows·ui·c#
Fabarta技术团队5 天前
从 0 实现 ChatGPT 风格的流式对话 UI
ui·chatgpt