app/nuxt.config.ts

81 lines
2.1 KiB
TypeScript

import { defineNuxtConfig } from "nuxt/config";
// Tailwind v4 is configured via postcss.config.mjs
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: "2025-07-15",
devtools: { enabled: true },
devServer: {
port: 3004,
},
// Disable SSR to avoid hydration mismatches during wizard work
ssr: false,
// Strict TypeScript
typescript: {
strict: true,
},
// Global CSS (use srcDir-relative path)
css: ["~/assets/css/main.css"],
// PostCSS configured separately
// Vite plugin not required for basics; rely on PostCSS and @nuxt/ui
modules: ["@pinia/nuxt", "@nuxtjs/color-mode", "@nuxt/ui"],
// Redirect old Templates landing to Wizards (keep detail routes working)
routeRules: {
"/templates": { redirect: { to: "/wizards", statusCode: 301 } },
"/wizard": { redirect: { to: "/coop-planner", statusCode: 301 } },
},
colorMode: {
preference: "system",
fallback: "light",
classSuffix: "",
dataValue: "dark",
},
// Google Fonts
app: {
head: {
link: [
{
rel: "preconnect",
href: "https://fonts.googleapis.com",
},
{
rel: "preconnect",
href: "https://fonts.gstatic.com",
crossorigin: "",
},
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap",
},
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap",
},
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Source+Serif+4:wght@400;500;600;700&display=swap",
},
],
},
},
// Runtime configuration for formatting
runtimeConfig: {
public: {
appCurrency: process.env.APP_CURRENCY || "EUR",
appLocale: process.env.APP_LOCALE || "en-CA",
appDecimalPlaces: process.env.APP_DECIMAL_PLACES || "2",
appName: process.env.APP_NAME || "Urgent Tools",
},
},
// Nuxt UI minimal theme customizations live in app.config.ts
});