No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL,Applies To,Status,Verified At 1,Installation,Add Nuxt UI module,Install and configure Nuxt UI in your Nuxt project,pnpm add @nuxt/ui and add to modules,Manual component imports,modules: ['@nuxt/ui'],import { UButton } from '@nuxt/ui',High,https://ui.nuxt.com/docs/getting-started/installation/nuxt,nuxt-ui 4.10,active,2026-08-13 2,Installation,Import Tailwind and Nuxt UI CSS,Required CSS imports in main.css file,@import tailwindcss and @import @nuxt/ui,Skip CSS imports,"@import ""tailwindcss""; @import ""@nuxt/ui"";",No CSS imports,High,https://ui.nuxt.com/docs/getting-started/installation/nuxt,nuxt-ui 4.10,active,2026-08-13 3,Installation,Wrap app with UApp component,UApp provides global configs for Toast Tooltip and overlays, wrapper in app.vue,Skip UApp wrapper,, without wrapper,High,https://ui.nuxt.com/docs/components/app,nuxt-ui 4.10,active,2026-08-13 4,Components,Use U prefix for components,All Nuxt UI components use U prefix by default,UButton UInput UModal,Button Input Modal,Click,,Medium,https://ui.nuxt.com/docs/getting-started/installation/nuxt,nuxt-ui 4.10,active,2026-08-13 5,Components,Use semantic color props,Use semantic colors like primary secondary error,"color=""primary"" color=""error""",Hardcoded colors,"","",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system,nuxt-ui 4.10,active,2026-08-13 6,Components,Use variant prop for styling,Nuxt UI provides solid outline soft subtle ghost link variants,"variant=""soft"" variant=""outline""",Custom button classes,"","",Medium,https://ui.nuxt.com/docs/components/button,nuxt-ui 4.10,active,2026-08-13 7,Components,Use size prop consistently,Components support xs sm md lg xl sizes,"size=""sm"" size=""lg""",Arbitrary sizing classes,"","",Low,https://ui.nuxt.com/docs/components/button,nuxt-ui 4.10,active,2026-08-13 8,Icons,Use i-{collection}-{name} format for icons,Nuxt UI v4 uses Iconify i-prefix format — lucide:home is v3 legacy,i-lucide-home i-heroicons-user format,lucide:home format (v3 syntax),"","",High,https://ui.nuxt.com/docs/getting-started/installation/nuxt,nuxt-ui 4.10,active,2026-08-13 9,Icons,Use leadingIcon and trailingIcon props,Position icons with dedicated props for clarity,"leadingIcon=""i-lucide-plus"" trailingIcon=""i-lucide-arrow-right""",Manual icon positioning or slots,"","Add",Low,https://ui.nuxt.com/docs/components/button,nuxt-ui 4.10,active,2026-08-13 10,Theming,Configure colors in app.config.ts,Runtime color configuration without restart,ui.colors.primary in app.config.ts,Hardcoded colors in components,defineAppConfig({ ui: { colors: { primary: 'blue' } } }),"",High,https://ui.nuxt.com/docs/getting-started/theme/design-system,nuxt-ui 4.10,active,2026-08-13 11,Theming,Use @theme directive for custom colors,Define design tokens in CSS with Tailwind @theme,@theme { --color-brand-500: #xxx },Inline color definitions,@theme { --color-brand-500: #ef4444; },":style=""{ color: '#ef4444' }""",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system,nuxt-ui 4.10,active,2026-08-13 12,Theming,Register and map semantic colors,Register extra semantic color names at build time then map them to a palette in app.config,nuxt.config ui.theme.colors plus app.config ui.colors,Use an unregistered semantic color,"ui: { theme: { colors: ['primary', 'tertiary'] } } then ui.colors.tertiary = 'violet'"," without config",Medium,https://ui.nuxt.com/docs/getting-started/theme/design-system,nuxt-ui 4.10,active,2026-08-13 13,Forms,Use UForm with schema validation,UForm supports Zod Yup Joi Valibot schemas,:schema prop with validation schema,Manual form validation,"",Manual @blur validation,High,https://ui.nuxt.com/docs/components/form,nuxt-ui 4.10,active,2026-08-13 14,Forms,Use UFormField for field wrapper,Provides label error message and validation display,UFormField with name prop,Manual error handling,"",
error
,Medium,https://ui.nuxt.com/docs/components/form-field,nuxt-ui 4.10,active,2026-08-13 15,Forms,Handle form submit with @submit,UForm emits submit event with validated data,@submit handler on UForm,@click on submit button,"","",Medium,https://ui.nuxt.com/docs/components/form,nuxt-ui 4.10,active,2026-08-13 16,Forms,Choose validation timing deliberately,UForm validates on input blur and change by default; input is delayed and begins after blur unless eager,Set validateOn and eager to match the interaction,Assume the default validates every keystroke immediately,"",Describe default UForm as eager input-only validation,Low,https://ui.nuxt.com/docs/components/form,nuxt-ui 4.10,active,2026-08-13 17,Overlays,Use v-model:open for overlay control,Modal Slideover Drawer use v-model:open,v-model:open for controlled state,Manual show/hide logic,"","",Medium,https://ui.nuxt.com/docs/components/modal,nuxt-ui 4.10,active,2026-08-13 18,Overlays,Use useOverlay composable for programmatic overlays,Open overlays programmatically — v4 API is create().open() not open(Component),overlay.create(Component).open({ props }) pattern,v3 overlay.open(Component) pattern (removed in v4),const modal = overlay.create(MyModal); const { result } = modal.open({ title: 'Confirm' }),"overlay.open(MyModal, { props: { title: 'Confirm' } })",High,https://ui.nuxt.com/docs/components/modal,nuxt-ui 4.10,active,2026-08-13 19,Overlays,Use title and description props,Built-in header support for overlays,"title=""Confirm"" description=""Are you sure?""",Manual header content,"",,Low,https://ui.nuxt.com/docs/components/modal,nuxt-ui 4.10,active,2026-08-13 20,Dashboard,Use UDashboardSidebar for navigation,Provides collapsible resizable sidebar with mobile support,UDashboardSidebar with header default footer slots,Custom sidebar implementation,,"