\n\u003C/template>\n\n\u003Cstyle scoped>\n.blue { background-color: blue; }\n\u003C/style>\n```\n\n```vue\n// PARENT\n\u003Ctemplate>\n \u003Cdiv>\n \u003CBlueSquare class=\"red\" />\n \u003C/div>\n\u003C/template>\n\n\u003Cstyle scoped>\n.red { background-color: red; }\n\u003C/style>\n```\n\nBoth plain Vue and Vue with SSR have the correct order:\n\n**Vue**\n\u003Cimg width=\"714\" height=\"163\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/fa26e7f4-3f89-4bae-b0b1-1fd19f383a02\" />\n\n**Vue SSR**\n\u003Cimg width=\"601\" height=\"190\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/7e1dc7cc-4b32-4ccc-957c-dd207b7a836d\" />\n\n\nBut in Nuxt, the order is incorrect when built:\n\n**Nuxt**\n\u003Cimg width=\"596\" height=\"85\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/62458e07-886e-4c0b-b569-db6e08805f35\" />\n\n\n---\n\n\nIs this Nuxt related or not?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3145],{"name":3146,"color":3147},"pending triage","E99695",33041,"nuxt","open","Incorrect component style order","2025-09-02T22:32:28Z","https://github.com/nuxt/nuxt/issues/33041",0.69124323,{"description":3156,"labels":3157,"number":3159,"owner":3149,"repository":3149,"state":3150,"title":3160,"updated_at":3161,"url":3162,"score":3163},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.20.3\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: compatibilityDate, devtools, app\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\n[stackblitz](https://stackblitz.com/edit/nuxt-starter-ibatpo)\r\n\r\nIf you wil click on \"CLICK TO TEST\" from main page, the \"test page\" order is right, but\r\n\r\n1. go to unexisted route. (/dsdsdsd)\r\n2. click: \"CLICK TO TEST\" \r\n3.you will see order:\r\nHeader\r\nFooter\r\ntest page\r\n\r\n\r\n\n\n### Describe the bug\n\nWhen you add\r\n\r\n`\r\n app: {\r\n pageTransition: { name: 'page', mode: 'out-in' },\r\n },\r\n`\r\n\r\nand then you have a page with useAsyncData layout order breaks. \r\n\r\nExpected:\r\nHeader\r\nPage\r\nFooter\r\n\r\nbut after error page it becomes:\r\n\r\nHeader\r\nFooter\r\nPage\n\n### Additional context\n\nfor example, I didn't add transition styles because they don't matter. The bug appears with them too\n\n### Logs\n\n_No response_",[3158],{"name":3146,"color":3147},28220,"Page Transition Bug","2024-10-17T18:04:01Z","https://github.com/nuxt/nuxt/issues/28220",0.6973662,{"description":3165,"labels":3166,"number":3168,"owner":3149,"repository":3149,"state":3150,"title":3169,"updated_at":3170,"url":3171,"score":3172},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v22.9.0`\n- Nuxt Version: `3.16.0`\n- CLI Version: `3.23.0`\n- Nitro Version: `2.11.6`\n- Package Manager: `pnpm@9.5.0`\n- Builder: `-`\n- User Config: `ssr`, `devtools`, `compatibilityDate`, `css`, `app`, `modules`, `runtimeConfig`, `vite`, `vueQuery`, `ui`, `icon`, `elementPlus`\n- Runtime Modules: `@nuxt/eslint@1.2.0`, `@nuxt/icon@1.11.0`, `@nuxt/scripts@0.11.2`, `@nuxt/test-utils@3.17.2`, `@nuxt/ui@3.0.2`, `@element-plus/nuxt@1.1.1`, `@hebilicious/vue-query-nuxt@0.3.0`, `@vueuse/nuxt@13.0.0`\n- Build Modules: `-`\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/purple-worker-q927r2?workspaceId=ws_Nd6bGHokakFXXgZBfRPLsD\n\n### Describe the bug\n\n**Steps to Reproduce:**\n\n1. Open the reproduction link.\n2. Click on 'page 2' at the top to navigate to the page2 page.\n3. The loading animation will not disappear.\n\nThe code logic of the page2 page is to call the `fetchData` function when the page is opened, while setting `loading` to true and then setting it to false within a short period.\n\nThis bug is triggered when a Nuxt page uses a transition with the mode set to `out-in`. Specifically, when the component's props change rapidly, the code related to DOM operations does not correctly handle the state of the props, resulting in abnormal component display.\n\nWorkaround:\n\n1. Set the mode to a value other than `out-in`.\n2. Wrap the component using `v-loading` with a `\u003CClientOnly>` component.\n3. Call `fetchData` within the `onMounted` callback.\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```\n\nEdit: pick right words",[3167],{"name":3146,"color":3147},31613,"page transtion with fast props change","2025-04-02T03:30:33Z","https://github.com/nuxt/nuxt/issues/31613",0.6987401,{"labels":3174,"number":3179,"owner":3149,"repository":3149,"state":3180,"title":3181,"updated_at":3182,"url":3183,"score":3184},[3175,3178],{"name":3176,"color":3177},"3.x","29bc7f",{"name":3146,"color":3147},13285,"closed","Page layout not working as intended","2023-01-19T16:51:10Z","https://github.com/nuxt/nuxt/issues/13285",0.6783301,{"labels":3186,"number":3191,"owner":3149,"repository":3149,"state":3180,"title":3192,"updated_at":3193,"url":3194,"score":3195},[3187,3188],{"name":3146,"color":3147},{"name":3189,"color":3190},"2.x","d4c5f9",9613,"Bug with nuxt-child in nested pages","2023-01-22T15:44:58Z","https://github.com/nuxt/nuxt/issues/9613",0.68550897,{"description":3197,"labels":3198,"number":3201,"owner":3149,"repository":3149,"state":3180,"title":3202,"updated_at":3203,"url":3204,"score":3205},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.16.1\r\n- Nuxt Version: 3.9.0\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: npm@9.5.1\r\n- Builder: -\r\n- User Config: devtools, app, routeRules, experimental, runtimeConfig, modules, build, alias, dir, piniaPersistedstate, gtag, vite\r\n- Runtime Modules: @nuxtjs/tailwindcss@6.10.3, nuxt-icon@0.4.2, @pinia/nuxt@0.5.1, @pinia-plugin-persistedstate/nuxt@1.2.0, nuxt-gtag@1.1.2\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nRun the app using Nuxt version 3.9.0 and navigate to any route\r\n\r\nCheck it out the live version using 3.9.0\r\n[https://capacithor-git-nuxt-390-igortrinidad.vercel.app/](https://capacithor-git-nuxt-390-igortrinidad.vercel.app/)\n\n### Describe the bug\n\nThe page transitions and layout rendering broken after the update, for some reason the component SiteFooter appears above the layout \u003Cslot /> on any route client route change, but it renders properly on server side rendering (hard refresh)....\r\n\r\n\n\n### Additional context\n\n\r\n\r\nlayouts/default.vue\r\n```\r\n\u003Ctemplate>\r\n \u003Cdiv class=\"w-screen h-full min-h-[100vh]\">\r\n \u003CSiteHeader />\r\n \u003Cslot />\r\n \u003CSiteFooter />\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\u003Cscript setup>\r\n import SiteHeader from './site-components/SiteHeader.vue'\r\n import SiteFooter from './site-components/SiteFooter.vue'\r\n\u003C/script>\r\n```\n\n### Logs\n\n_No response_",[3199,3200],{"name":3176,"color":3177},{"name":3146,"color":3147},24944,"[3.9.0] Client rendering and page transitions broke after updating to the newest Nuxt version","2024-01-03T19:46:15Z","https://github.com/nuxt/nuxt/issues/24944",0.6877896,{"labels":3207,"number":3213,"owner":3149,"repository":3149,"state":3180,"title":3214,"updated_at":3215,"url":3216,"score":3217},[3208,3211,3212],{"name":3209,"color":3210},"stale","ffffff",{"name":3146,"color":3147},{"name":3189,"color":3190},8150,"async fetch() breaks v-for in child component","2023-01-22T15:38:17Z","https://github.com/nuxt/nuxt/issues/8150",0.688242,{"description":3219,"labels":3220,"number":3233,"owner":3149,"repository":3234,"state":3180,"title":3235,"updated_at":3236,"url":3237,"score":3238},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.0\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.11\n- Package Manager: pnpm@10.9.0\n- Builder: -\n- User Config: modules, colorMode, image, content, plausible, devtools, hub, css, mdc, nitro, runtimeConfig, routeRules, future, compatibilityDate, eslint\n- Runtime Modules: @nuxt/eslint@1.3.0, @nuxt/image@1.10.0, @nuxt/ui-pro@3.1.0, @nuxt/content@3.5.1, @nuxthub/core@0.8.25, @nuxtjs/plausible@1.2.0, @vueuse/nuxt@13.1.0, nuxt-og-image@5.1.3\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.0\n\n### Reproduction\n\n1. Open [saas-template.nuxt.dev](https://saas-template.nuxt.dev/) in Safari on macOS 18.4.\n2. Scroll to the Testimonials section.\n3. Observe that after a line break in the grid, the first card in each new row is not rendered.\n4. Open Safari’s developer tools and disable the first CSS rule:\n```\n:is(.*:will-change-transform>*) {\n will-change: transform;\n}\n```\n5. Observe that the missing cards now appear, but borders render incorrectly.\n\n\n### Description\n\nOn Safari for macOS (Version 18.4 – 20621.1.15.11.10), using @nuxt/ui components in a responsive grid layout causes elements to disappear after a line break. Specifically, the first item in each new row is not rendered when will-change: transform is applied.\n\n**🔍 Context**\nThe issue is reproducible on your official SaaS template: [saas-template.nuxt.dev](https://saas-template.nuxt.dev/), in the testimonial section. This section uses only @nuxt/ui components – no @nuxt/ui-pro components are involved. The relevant code lives in [/app/pages/index.vue](https://github.com/nuxt-ui-pro/saas/blob/main/app/pages/index.vue), lines 58–80.\n\n**📍 Suspected Source**\nIn Safari, the following rule seems to break the layout:\n\n```\n:is(.*:will-change-transform>*) {\n will-change: transform;\n}\n```\nDisabling this rule in Safari's dev tools makes the hidden items visible again. However, doing so causes border-top rendering to break.\n\n\n**📸 Screenshots**\nIssue (first items not rendered):\n\n\nAfter disabling will-change (cards reappear):\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3221,3224,3227,3230],{"name":3222,"color":3223},"bug","d73a4a",{"name":3225,"color":3226},"duplicate","cfd3d7",{"name":3228,"color":3229},"v3","49DCB8",{"name":3231,"color":3232},"pro","5BD3CB",4026,"ui","Safari Bug: Grid layout issues with `will-change: transform`","2025-04-30T13:51:05Z","https://github.com/nuxt/ui/issues/4026",0.69001126,{"description":3240,"labels":3241,"number":3245,"owner":3149,"repository":3234,"state":3180,"title":3246,"updated_at":3247,"url":3248,"score":3249},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v22.9.0\n- Nuxt Version: 3.14.1592\n- CLI Version: 3.16.0\n- Nitro Version: 2.10.4\n- Package Manager: npm@10.8.3\n- Builder: -\n- User Config: default\n- Runtime Modules: @nuxt/ui@3.0.0-alpha.9, @nuxt/eslint@0.7.2, @nuxtjs/seo@2.0.2, @nuxtjs/plausible@1.2.0\n- Build Modules: -\n------------------------------\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.0.0-alpha.9\n\n### Reproduction\n\nOn a brand new project:\n\n```\nnpx nuxi@latest init my-app\ncd my-app\nnpm install @nuxt/ui@next\n```\n\nThen\n/app/app.vue\n```vue\n\u003Ctemplate>\n\t\u003CNuxtLayout>\n\t\t\u003CNuxtPage />\n\t\u003C/NuxtLayout>\n\u003C/template>\n```\n\nnuxt.config.ts\n```js\n// https://nuxt.com/docs/api/configuration/nuxt-config\nexport default defineNuxtConfig({\n\tcompatibilityDate: \"2024-11-01\",\n modules: ['@nuxt/ui', '@nuxt/eslint', '@nuxtjs/seo'],\n css: ['~/assets/css/main.css'],\n\n\tdevtools: { enabled: true },\n\tfuture: {\n\t\tcompatibilityVersion: 4,\n\t},\n\tui: {\n // error here\n\t\tcolorMode: false,\n\t},\n});\n\n```\n\n### Description\n\nWhen changing the ui.colorMode to false AND using the `pages` folder, it crashes the whole app (error below).\n\n\n```\n500\n[vite-node] [plugin:nuxt:imports-transform] [VITE_ERROR] /@fs/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue?macro=true\n\n/* Injection by vite-plugin-vue-inspector Start */\nimport { createVNode as __createVNode } from 'vue'\nfunction _interopVNode(vnode) {\n if (vnode && vnode.props && 'data-v-inspector' in vnode.props) {\n const data = vnode.props['data-v-inspector']\n delete vnode.props['data-v-inspector']\n Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false })\n }\n return vnode\n}\nfunction _createVNode(...args) { return _interopVNode(__createVNode(...args)) }\n/* Injection by vite-plugin-vue-inspector End */\nimport { defineComponent as _defineComponent } from \"vue\";\nimport { onUnmounted, onMounted, reactive } from \"vue\";\nimport { pascalCase } from \"scule\";\nimport { defineAsyncComponent, useColorMode, useRoute } from \"#imports\";\nconst _sfc_main = /* @__PURE__ */ _defineComponent({\n __name: \"DevtoolsRenderer\",\n setup(__props, { expose: __expose }) {\n __expose();\n const route = useRoute();\n const component = route.query?.example ? defineAsyncComponent(() => import(`./examples/${route.query.example}.vue`)) : route.params?.slug && defineAsyncComponent(() => import(`../../runtime/components/${pascalCase(route.params.slug)}.vue`));\n const state = reactive({});\n function onUpdateRenderer(event) {\n state.props = { ...event.data.props };\n state.slots = { ...event.data.slots };\n }\n const colorMode = useColorMode();\n function setColorMode(event) {\n colorMode.preference = event.isDark ? \"dark\" : \"light\";\n }\n onMounted(() => {\n (void 0).parent.addEventListener(\"nuxt-ui-devtools:update-renderer\", onUpdateRenderer);\n (void 0).parent.addEventListener(\"nuxt-ui-devtools:set-color-mode\", setColorMode);\n });\n onUnmounted(() => {\n (void 0).parent.removeEventListener(\"nuxt-ui-devtools:update-renderer\", onUpdateRenderer);\n (void 0).parent.removeEventListener(\"nuxt-ui-devtools:set-color-mode\", setColorMode);\n });\n onMounted(async () => {\n const event = new Event(\"nuxt-ui-devtools:component-loaded\");\n (void 0).parent.dispatchEvent(event);\n });\n onMounted(() => {\n if (!route.query?.example) return;\n });\n const __returned__ = { route, component, state, onUpdateRenderer, colorMode, setColorMode };\n Object.defineProperty(__returned__, \"__isScriptSetup\", { enumerable: false, value: true });\n return __returned__;\n }\n});\nimport { resolveComponent as _resolveComponent, resolveDynamicComponent as _resolveDynamicComponent, mergeProps as _mergeProps, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\";\nimport { ssrRenderVNode as _ssrRenderVNode, ssrRenderComponent as _ssrRenderComponent, ssrRenderAttrs as _ssrRenderAttrs } from \"vue/server-renderer\";\nfunction _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {\n const _component_UApp = _resolveComponent(\"UApp\");\n _push(`\u003Cdiv${_ssrRenderAttrs(_mergeProps({\n id: \"ui-devtools-renderer\",\n class: \"nuxt-ui-component-renderer\",\n \"data-v-inspector\": \"../node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue:44:3\"\n }, _attrs))}>`);\n _push(_ssrRenderComponent(_component_UApp, { toaster: null }, {\n default: _withCtx((_, _push2, _parent2, _scopeId) => {\n if (_push2) {\n if ($setup.component) {\n _ssrRenderVNode(_push2, _createVNode(_resolveDynamicComponent($setup.component), _mergeProps($setup.state.props, {\n class: $setup.state?.slots?.base,\n ui: $setup.state.slots\n }), null), _parent2, _scopeId);\n } else {\n _push2(`\u003C!---->`);\n }\n } else {\n return [\n $setup.component ? (_openBlock(), _createBlock(_resolveDynamicComponent($setup.component), _mergeProps({ key: 0 }, $setup.state.props, {\n class: $setup.state?.slots?.base,\n ui: $setup.state.slots\n }), null, 16, [\"class\", \"ui\"])) : _createCommentVNode(\"v-if\", true)\n ];\n }\n }),\n _: 1\n /* STABLE */\n }, _parent));\n _push(`\u003C/div>`);\n}\nimport \"/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue?vue&type=style&index=0&lang.css\";\nimport { useSSRContext as __vite_useSSRContext } from \"vue\";\nconst _sfc_setup = _sfc_main.setup;\n_sfc_main.setup = (props, ctx) => {\n const ssrContext = __vite_useSSRContext();\n (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add(\"../../node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue\");\n return _sfc_setup ? _sfc_setup(props, ctx) : void 0;\n};\nimport _export_sfc from \"\\0plugin-vue:export-helper\";\nexport default /* @__PURE__ */ _export_sfc(_sfc_main, [[\"ssrRender\", _sfc_ssrRender], [\"__file\", \"/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue\"]]);\n\nat /@fs/Users/jeannen/Dev/apps/node_modules/@nuxt/ui/dist/devtools/runtime/DevtoolsRenderer.vue?macro=true\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3242,3243,3244],{"name":3222,"color":3223},{"name":3225,"color":3226},{"name":3228,"color":3229},2823,"`colorMode: false` + /pages/ crash the app","2024-12-03T09:33:17Z","https://github.com/nuxt/ui/issues/2823",0.69426554,{"description":3251,"labels":3252,"number":3254,"owner":3149,"repository":3149,"state":3180,"title":3255,"updated_at":3256,"url":3257,"score":3258},"When I use nuxt.js for server-side rendering,\r\nI will encounter the following two issues, it now appears that these two issues are caused by vue.js:\r\n\r\n1: I used the swiper component in the project. Since this component depends on the window object, I used the process.BROWSER_BUILD object judgment in nuxt.js to render the component only on the server side. When the page loads, the component renders correctly , The correct rendering, view the source code, you can see the corresponding swiper component code is not compiled before the component call code, such as: \u003Cswiper> ... \u003C/ swiper>, then the console by vue.js abnormal\r\n\r\n[Vue warn]: The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside \u003Cp>, or missing \u003Ctbody>. And performing full client-side render.\r\n\r\nThis should not have existed\r\n\r\n2: When I use the datalist element in html5 in a project, vue also throws an error like the one above\r\n\r\nSo I think, vue on the original html tags may not be sufficient to judge the rich, while rendering for the server, some judge is not perfect\r\n\r\nCan there be improvements, or temporary solutions? Thank you!\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This question is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c182\">#c182\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3253],{"name":3189,"color":3190},209,"Server-side rendering and native html incompatibility issues","2023-01-18T15:38:39Z","https://github.com/nuxt/nuxt/issues/209",0.697416,["Reactive",3260],{},["Set"],["ShallowReactive",3263],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fatHOZO5xGSm0i7IKHyEJ8ny7ipfV7qzLGJqJ8C7uP5Q":-1},"/nuxt/ui/3485"]