` component, specifically with the `v-model:open` binding:\n\n* `v-model:collapsed` works great — it properly handles the collapsed/expanded state.\n* But `v-model:open` doesn't seem to behave as expected. When I bind it to a custom `open` state and try to set it to `false` (e.g., using a custom button), the sidebar doesn’t actually close. Then, as soon as I click anywhere else on the page, the `open` value is automatically reset to `true`.\n\nIt feels like something internal is re-opening the sidebar and overriding the bound value.\n\nOther small notes:\n\n* `\u003CUDashboardSidebarToggle />` is hidden on desktop due to `lg:hidden`, which makes sense for mobile setups. But even when made visible, it doesn’t allow fully toggling the sidebar on desktop — the sidebar remains fixed.\n* I also tried changing the `default-size` prop (e.g., to `16rem` / `256px`), and it didn’t apply immediately. It only worked after clearing the site data. I’m guessing this is due to cookies storing the previous value? Maybe it could be possible to sync the cookie automatically when `default-size` changes?\n\nHere’s a minimal reproduction of the issue: [Here](https://codesandbox.io/p/devbox/polished-cookies-lrv5hm?file=%2Fapp%2Fpages%2Findex.vue%3A9%2C23)\n\nLastly, I was wondering if in the future it might be possible to support a prop like `expand-on-hover`, where a collapsed sidebar could temporarily expand on mouse hover — without pushing the rest of the layout. This could allow building more advanced layouts similar to what Supabase uses: a primary sidebar that stays collapsed when a secondary one is open, but can still expand on hover without shifting the content.\n\nThanks again for your amazing work and for considering these ideas! 😊\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3163,3166,3169],{"name":3164,"color":3165},"bug","d73a4a",{"name":3167,"color":3168},"v3","49DCB8",{"name":3170,"color":3171},"triage","ffffff",4599,"ui","DashboardSidebar: v-model:open not working as expected","2025-07-25T16:31:55Z","https://github.com/nuxt/ui/issues/4599",0.7124926,{"description":3179,"labels":3180,"number":3185,"owner":3143,"repository":3143,"state":3186,"title":3187,"updated_at":3188,"url":3189,"score":3190},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.8.2\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: npm@9.4.2\r\n- Builder: -\r\n- User Config: devtools, vite\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-s3ebia?file=app.vue,components%2FFullscreenBackground.vue\r\n\r\n### Describe the bug\r\n\r\nI was making a background for a modal component when I noticed a strange behaviour with the `\u003CTransition />` component, specifically when the `appear` prop is set.\r\n\r\nIt seems that the click event listener on an element inside `\u003CTransition appear>` isn't being properly handled.\r\nSteps to reproduce:\r\n1. open the reproduction\r\n2. click on the semi-transparent fullscreen div\r\n3. *nothing happens* even though it should have set its visibility to `false`\r\n\r\n1. remove `appear` from the `\u003CTransition>` component in `FullscreenBackground.vue`\r\n2. repeat the same steps & now the click is properly handled\r\n\r\n### Additional context\r\n\r\nI've tried and I couldn't reproduce the same issue in Vue, so I assume it could be a bug in Nuxt.\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3181,3184],{"name":3182,"color":3183},"3.x","29bc7f",{"name":3140,"color":3154},24754,"closed","`\u003CTransition appear>` breaks click event listener","2023-12-15T10:09:43Z","https://github.com/nuxt/nuxt/issues/24754",0.6595021,{"labels":3192,"number":3201,"owner":3143,"repository":3143,"state":3186,"title":3202,"updated_at":3203,"url":3204,"score":3205},[3193,3194,3195,3198],{"name":3182,"color":3183},{"name":3164,"color":3165},{"name":3196,"color":3197},"vite","3574D1",{"name":3199,"color":3200},"upstream","E8A36D",12050,"Don't work with class-style component","2023-01-19T15:54:28Z","https://github.com/nuxt/nuxt/issues/12050",0.7044137,{"description":3207,"labels":3208,"number":3211,"owner":3143,"repository":3173,"state":3186,"title":3212,"updated_at":3213,"url":3214,"score":3215},"### Description\n\nHi,\n\nhere in the first form in nuxtui2\nhttps://ui.nuxt.com/components/form \nthe behaviour is that the input field is validated after the blur. If there is an error and I correct it, the error is fixed immediately.\n\nIn v3 the behaviour is different. I have seen the prop validateOn so I can change it to blur, but not like first onBlur and then onInput like in v2.\n\nbest,\ngregor",[3209,3210],{"name":3164,"color":3165},{"name":3167,"color":3168},3006,"How can I get the same form validation behaviour as in v2?","2025-01-06T17:48:11Z","https://github.com/nuxt/ui/issues/3006",0.7057482,{"description":3217,"labels":3218,"number":3222,"owner":3143,"repository":3143,"state":3186,"title":3223,"updated_at":3224,"url":3225,"score":3226},"Hi,\r\n\r\ntransition Invalid\r\n```\r\n layout: 'greenBackgroundWhiteBlockDown',\r\n name: 'login',\r\n```\r\n\r\ntransition valid\r\n```\r\n name: 'login',\r\n```\r\n\r\n\r\ngreenBackgroundWhiteBlockDown.vue\r\n```\r\n\u003Ctemplate>\r\n \u003Cdiv class=\"login\">\r\n \u003Cul :class=\"[{ loading: loading }, 'bg-bubbles']\">\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003Cli>\u003C/li>\r\n \u003C/ul>\r\n \u003Cdiv class=\"container\">\r\n \u003Cnuxt/>\r\n \u003C/div>\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\r\n\u003Cscript>\r\n export default {\r\n data () {\r\n return {\r\n loading: false,\r\n };\r\n },\r\n mounted () {\r\n console.log(this);\r\n },\r\n };\r\n\u003C/script>\r\n```\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This bug report is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c1118\">#c1118\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3219],{"name":3220,"color":3221},"2.x","d4c5f9",1267,"transition will Invalid when i set layout","2023-01-18T15:41:00Z","https://github.com/nuxt/nuxt/issues/1267",0.7064521,{"description":3228,"labels":3229,"number":3232,"owner":3143,"repository":3173,"state":3186,"title":3233,"updated_at":3234,"url":3235,"score":3236},"### Environment\n\n- Operating System: Darwin\n- Node Version: v20.14.0\n- Nuxt Version: 3.15.1\n- CLI Version: 3.19.1\n- Nitro Version: 2.10.4\n- Package Manager: pnpm@9.15.3\n- Builder: -\n- User Config: compatibilityDate, future, devtools, modules, css, ui\n- Runtime Modules: @nuxt/ui-pro@3.0.0-alpha.10\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.0.0-alpha.10\n\n### Reproduction\n\nhttps://github.com/zhcndoc/zhcndoc\n\n### Description\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n WARN [vite:css][postcss] Lexical error on line 1: Unrecognized text. 15:18:30\n\n Erroneous area:\n1: infinity * 1px\n^..^\n1117| }\n1118| .rounded-full {\n1119| border-radius: calc(infinity * 1px);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n1120| }\n1121| .rounded-s {\n```",[3230,3231],{"name":3164,"color":3165},{"name":3167,"color":3168},3063,"Postcss warning appears when building","2025-01-14T04:16:48Z","https://github.com/nuxt/ui/issues/3063",0.70772976,{"description":3238,"labels":3239,"number":3241,"owner":3143,"repository":3143,"state":3186,"title":3242,"updated_at":3243,"url":3244,"score":3245},"### Environment\n\nNuxt project info: \n------------------------------\n- Operating System: Linux\n- Node Version: v18.20.3\n- Nuxt Version: 3.15.4\n- CLI Version: 3.21.1\n- Nitro Version: 2.10.4\n- Package Manager: npm@10.2.3\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n\n\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-87qe6yfc?file=layouts%2Fdefault.vue\n\n### Describe the bug\n\nWrapping the `\u003Cslot />` with a `Transition` in a layout results in a `non-element root node` error.\n\n**Layout:** \n```vue\n\u003Ctemplate>\n \u003Cdiv class=\"flex\">\n \u003CNavbar />\n \u003Cdiv class=\"my-ml\">\n \u003CTransition name=\"fade\" mode=\"out-in\"> \u003C!--- from here --->\n \u003Cslot /> \n \u003C/Transition> \u003C!--- to here --->\n \u003C/div>\n \u003C/div>\n\u003C/template>\n\n```\n\n**Page:** \n```vue\n\u003Ctemplate>\n \u003Cdiv class=\"border\">Single node slot\u003C/div> \u003C!--- root node is single --->\n\u003C/template>\n```\n\n**Error:**\n```error\nruntime-core.esm-bundler.js:51 \n[Vue warn]: Component inside \u003CTransition> renders non-element root node that cannot be animated. \n at \u003CRouterView name=undefined route=undefined > \n at \u003CNuxtPage key=\"_default0\" > \n at \u003CBaseTransition mode=\"out-in\" appear=false persisted=false ... > \n at \u003CTransition name=\"fade\" mode=\"out-in\" > \n at \u003CDefault ref=Ref\u003C Proxy(Object) > > \n at \u003CAsyncComponentWrapper ref=Ref\u003C Proxy(Object) > > \n at \u003CLayoutLoader key=\"default\" layoutProps= Object name=\"default\" > \n at \u003CNuxtLayoutProvider layoutProps= Object key=\"default\" name=\"default\" ... > \n at \u003CNuxtLayout > \n at \u003CApp key=4 > \n at \u003CNuxtRoot>\n```\n\n### Additional context\n\nI want keep the navbar steady and animate only the content of the page on the right with a nice fade.\n\n### Logs\n\n```shell-script\n\n```",[3240],{"name":3140,"color":3154},30969,"Transition do not work around slot in layout","2025-02-22T20:06:51Z","https://github.com/nuxt/nuxt/issues/30969",0.70834,{"description":3247,"labels":3248,"number":3251,"owner":3143,"repository":3143,"state":3186,"title":3252,"updated_at":3253,"url":3254,"score":3255},"### Version\r\n\r\n[v1.4.0](https://github.com/nuxt.js/releases/tag/v1.4.0)\r\n\r\n### Reproduction link\r\n\r\n[https://fork-glider.glitch.me/](https://fork-glider.glitch.me/)\r\n\r\n### Steps to reproduce\r\n\r\n- Go to the link provided https://fork-glider.glitch.me/\r\n\r\nI use `vue-styled-components` for my styles but instead of being rendered properly, they flash the unstyled component before.\r\n\r\nLive example here: https://fork-glider.glitch.me/\r\nSource: https://glitch.com/edit/#!/fork-glider\r\n\r\nMy component looks like:\r\n\r\n```\r\n\r\n\u003Ctemplate>\r\n \u003Cdiv>\r\n \u003Capp-title>Welcome!\u003C/app-title>\r\n \u003Crouter-link to=\"/about\">About page\u003C/router-link>\r\n \u003C/div>\r\n\u003C/template>\r\n\r\n\u003Cscript>\r\n import styled from 'vue-styled-components';\r\n\r\n const Title = styled.h1`\r\n font-size: 36px;\r\n color: red;\r\n `;\r\n\r\n export default {\r\n components: {\r\n \"app-title\": Title\r\n }\r\n };\r\n\u003C/script>\r\n```\r\n\r\nHere is a quick gif reproducing the issue:\r\n\r\n\r\n### What is expected ?\r\n\r\n- Title shows styled size and color\r\n\r\n### What is actually happening?\r\n\r\n- Title flashes original size and color before changing to styled one.\r\n\r\n(As this problem is not happening while using plain css, I am wondering if the issue has to do with the run-time of the `script` tag. 🤔)\r\n\r\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\r\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This bug report is available on \u003Ca href=\"https://cmty.app/nuxt\">Nuxt\u003C/a> community (\u003Ca href=\"https://cmty.app/nuxt/nuxt.js/issues/c7294\">#c7294\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[3249,3250],{"name":3140,"color":3154},{"name":3220,"color":3221},3479,"Unstyled css flashes while using vue-styled-components","2023-01-22T15:30:04Z","https://github.com/nuxt/nuxt/issues/3479",0.70859486,["Reactive",3257],{},["Set"],["ShallowReactive",3260],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fJuDL0uSrjgp-bOmYniaCDzFtHqISbh7OHNssql7gtyw":-1},"/nuxt/ui/3292"]