|
1 | 1 | import { defineNuxtConfig } from "nuxt/config"; |
| 2 | +import { definePreset } from "@primeuix/themes"; |
| 3 | +import Aura from "@primeuix/themes/aura"; |
| 4 | + |
| 5 | +// Mirror the brand `primary` palette from tailwind.config.js so PrimeVue's |
| 6 | +// primary color matches the rest of the site (Aura's default primary is green). |
| 7 | +const RommPreset = definePreset(Aura, { |
| 8 | + semantic: { |
| 9 | + primary: { |
| 10 | + 50: "#F4F2FC", |
| 11 | + 100: "#E9E6FA", |
| 12 | + 200: "#D3CCEE", |
| 13 | + 300: "#BDB3E3", |
| 14 | + 400: "#A494EB", |
| 15 | + 500: "#8B74E8", |
| 16 | + 600: "#7259D1", |
| 17 | + 700: "#5A41B8", |
| 18 | + 800: "#432D9E", |
| 19 | + 900: "#2D1D84", |
| 20 | + 950: "#1A1066", |
| 21 | + }, |
| 22 | + }, |
| 23 | +}); |
2 | 24 |
|
3 | 25 | export default defineNuxtConfig({ |
4 | 26 | devtools: { enabled: false }, |
5 | | - modules: ["@nuxtjs/tailwindcss", "nuxt-primevue", "@nuxt/image"], |
| 27 | + modules: ["@nuxtjs/tailwindcss", "@primevue/nuxt-module", "@nuxt/image"], |
6 | 28 | plugins: [{ src: "~/plugins/theme.ts", mode: "client" }], |
7 | 29 |
|
8 | 30 | primevue: { |
9 | | - cssLayerOrder: "tailwind-base, primevue, tailwind-utilities", |
| 31 | + options: { |
| 32 | + ripple: true, |
| 33 | + theme: { |
| 34 | + preset: RommPreset, |
| 35 | + options: { |
| 36 | + darkModeSelector: ".dark", |
| 37 | + cssLayer: { |
| 38 | + name: "primevue", |
| 39 | + order: "tailwind-base, primevue, tailwind-utilities", |
| 40 | + }, |
| 41 | + }, |
| 42 | + }, |
| 43 | + }, |
10 | 44 | components: { |
11 | 45 | include: ["Button", "Tag", "Divider", "Menubar"], |
12 | 46 | }, |
@@ -46,17 +80,10 @@ export default defineNuxtConfig({ |
46 | 80 | charset: "utf-8", |
47 | 81 | viewport: "width=device-width, initial-scale=1", |
48 | 82 | title: "The RomM Project", |
49 | | - link: [ |
50 | | - { |
51 | | - rel: "stylesheet", |
52 | | - href: "/css/theme-light.css", |
53 | | - id: "theme-link", |
54 | | - }, |
55 | | - ], |
56 | 83 | script: [ |
57 | 84 | { |
58 | 85 | innerHTML: |
59 | | - 'let m=window.matchMedia("(prefers-color-scheme: dark)");if(m.matches){const e=document.getElementById("theme-link");e.href=e.href.replace("light","dark");document.documentElement.classList.add("dark")}', |
| 86 | + 'if(window.matchMedia("(prefers-color-scheme: dark)").matches){document.documentElement.classList.add("dark")}', |
60 | 87 | }, |
61 | 88 | ], |
62 | 89 | meta: [ |
@@ -98,5 +125,15 @@ export default defineNuxtConfig({ |
98 | 125 | }, |
99 | 126 | }, |
100 | 127 |
|
101 | | - compatibilityDate: "2025-01-31", |
| 128 | + compatibilityDate: "2026-06-12", |
| 129 | + |
| 130 | + vite: { |
| 131 | + optimizeDeps: { |
| 132 | + include: [ |
| 133 | + "@fortawesome/free-brands-svg-icons", |
| 134 | + "@fortawesome/free-solid-svg-icons", |
| 135 | + "@fortawesome/vue-fontawesome", |
| 136 | + ], |
| 137 | + }, |
| 138 | + }, |
102 | 139 | }); |
0 commit comments