rules/nuxt/coding-style.md
This file extends common/coding-style.md with Nuxt specific content.
srcDir is app/. Framework files live at app/pages/, app/layouts/, app/middleware/, app/plugins/, app/app.config.ts. nuxt.config.ts and server/ stay at project root.srcDir to src/ for a Feature-Sliced Design layout, remapping dir.pages (for example to src/app/routes), dir.layouts, and the @/~ aliases. Always check nuxt.config.ts before assuming a path.app/composables/ and server/utils/ auto-import. Do NOT manually import Nuxt composables (useFetch, useState, navigateTo) or defineStore / storeToRefs.vue-router dep (Nuxt bundles v5) or hand-mount createApp / createPinia / createRouter. The framework wires these.definePageMeta is a compile-time macro. Static values only, no reactive data and no side-effect calls inside it.PageMeta via declare module '#app' rather than casting.Three distinct files, do not conflate.
nuxt.config.ts = build-time only (routeRules, modules, nitro, ssr flag). Not reactive.runtimeConfig (inside nuxt.config) = per-env runtime values, env-overridable via NUXT_*. Root keys are server-only, public keys are client-visible.app/app.config.ts = public build-fixed reactive settings (theme tokens, feature flags). No env override. NEVER secrets.app.head in nuxt.config.ts takes static values only.useHead / useSeoMeta in component setup, never via app.head.nuxt4-patterns, vite-patterns, frontend-patterns.