| High |
https://ui.nuxt.com/docs/components/table |
| 24 |
Tables |
Define columns with accessorKey |
Column definitions use accessorKey for data binding |
accessorKey: 'email' in column def |
String column names only |
{ accessorKey: 'email', header: 'Email' } |
['name', 'email'] |
Medium |
https://ui.nuxt.com/docs/components/table |
| 25 |
Tables |
Use cell slot for custom rendering |
Customize cell content with scoped slots |
#cell-columnName slot |
Override entire table |
<template #cell-status="{ row }"> |
Manual column render function |
Medium |
https://ui.nuxt.com/docs/components/table |
| 26 |
Tables |
Enable sorting with sortable column option |
Add sortable: true to column definition |
sortable: true in column |
Manual sort implementation |
{ accessorKey: 'name', sortable: true } |
@click="sortBy('name')" |
Low |
https://ui.nuxt.com/docs/components/table |
| 27 |
Navigation |
Use UNavigationMenu for nav links |
Horizontal or vertical navigation with dropdown support |
UNavigationMenu with items array |
Manual nav with v-for |
|
|
Medium |
https://ui.nuxt.com/docs/components/navigation-menu |
| 28 |
Navigation |
Use UBreadcrumb for page hierarchy |
Automatic breadcrumb with NuxtLink support |
:items array with label and to |
Manual breadcrumb links |
|
|
Low |
https://ui.nuxt.com/docs/components/breadcrumb |
| 29 |
Navigation |
Use UTabs for tabbed content |
Tab navigation with content panels |
UTabs with items containing slot content |
Manual tab state |
|
<button @click="tab=1"> |
Medium |
https://ui.nuxt.com/docs/components/tabs |
| 30 |
Feedback |
Use useToast for notifications |
Composable for toast notifications |
useToast().add({ title description }) |
Alert components for toasts |
const toast = useToast(); toast.add({ title: 'Saved' }) |
|
High |
https://ui.nuxt.com/docs/components/toast |
| 31 |
Feedback |
Use UAlert for inline messages |
Static alert messages with icon and actions |
UAlert with title description color |
Toast for static messages |
|
useToast for inline alerts |
Medium |
https://ui.nuxt.com/docs/components/alert |
| 32 |
Feedback |
Use USkeleton for loading states |
Placeholder content during data loading |
USkeleton with appropriate size |
Spinner for content loading |
|
|
Low |
https://ui.nuxt.com/docs/components/skeleton |
| 33 |
Color Mode |
Use UColorModeButton for theme toggle |
Built-in light/dark mode toggle button |
UColorModeButton component |
Manual color mode logic |
|
<button @click="toggleColorMode"> |
Low |
https://ui.nuxt.com/docs/components/color-mode-button |
| 34 |
Color Mode |
Use UColorModeSelect for theme picker |
Dropdown to select system light or dark mode |
UColorModeSelect component |
Custom select for theme |
|
|
Low |
https://ui.nuxt.com/docs/components/color-mode-select |
| 35 |
Customization |
Use ui prop for component styling |
Override component styles via ui prop |
ui prop with slot class overrides |
Global CSS overrides |
|
|
Medium |
https://ui.nuxt.com/docs/getting-started/theme/components |
| 36 |
Customization |
Configure default variants in nuxt.config |
Set default color and size for all components |
theme.defaultVariants in ui config |
Repeat props on every component |
ui: { theme: { defaultVariants: { color: 'neutral' } } } |
everywhere |
Medium |
https://ui.nuxt.com/docs/getting-started/installation/nuxt |
| 37 |
Customization |
Use app.config.ts for theme overrides |
Runtime theme customization |
defineAppConfig with ui key |
nuxt.config for runtime values |
defineAppConfig({ ui: { button: { defaultVariants: { size: 'sm' } } } }) |
nuxt.config ui.button.size: 'sm' |
Medium |
https://ui.nuxt.com/docs/getting-started/theme/components |
| 38 |
Performance |
Enable component detection |
Tree-shake unused component CSS |
experimental.componentDetection: true |
Include all component CSS |
ui: { experimental: { componentDetection: true } } |
ui: {} (includes all CSS) |
Low |
https://ui.nuxt.com/docs/getting-started/installation/nuxt |
| 39 |
Performance |
Use UTable virtualize for large data |
Enable virtualization for 1000+ rows |
:virtualize prop on UTable |
Render all rows |
|
|
Medium |
https://ui.nuxt.com/docs/components/table |
| 40 |
Accessibility |
Use semantic component props |
Components have built-in ARIA support |
Use title description label props |
Skip accessibility props |
|
Settings |
Medium |
https://ui.nuxt.com/docs/components/modal |
| 41 |
Accessibility |
Use UFormField for form accessibility |
Automatic label-input association |
UFormField wraps inputs |
Manual id and for attributes |
|
|
High |
https://ui.nuxt.com/docs/components/form-field |
| 42 |
Content |
Use UContentToc for table of contents |
Automatic TOC with active heading highlight |
UContentToc with :links |
Manual TOC implementation |
|
|
Low |
https://ui.nuxt.com/docs/components/content-toc |
| 43 |
Content |
Use UContentSearch for docs search |
Command palette for documentation search |
UContentSearch with Nuxt Content |
Custom search implementation |
|
|
Low |
https://ui.nuxt.com/docs/components/content-search |
| 44 |
AI/Chat |
Use UChatMessages for chat UI |
Designed for Vercel AI SDK integration |
UChatMessages with messages array |
Custom chat message list |
|
|
Medium |
https://ui.nuxt.com/docs/components/chat-messages |
| 45 |
AI/Chat |
Use UChatPrompt for input |
Enhanced textarea for AI prompts |
UChatPrompt with v-model |
Basic textarea |
|
|
Medium |
https://ui.nuxt.com/docs/components/chat-prompt |
| 46 |
Editor |
Use UEditor for rich text |
TipTap-based editor with toolbar support |
UEditor with v-model:content |
Custom TipTap setup |
|
Manual TipTap initialization |
Medium |
https://ui.nuxt.com/docs/components/editor |
| 47 |
Links |
Use to prop for navigation |
UButton and ULink support NuxtLink to prop |
to="/dashboard" for internal links |
href for internal navigation |
|
|
Medium |
https://ui.nuxt.com/docs/components/button |
| 48 |
Links |
Use external prop for outside links |
Explicitly mark external links |
target="_blank" with external URLs |
Forget rel="noopener" |
|
|
Low |
https://ui.nuxt.com/docs/components/link |
| 49 |
Loading |
Use loadingAuto on buttons |
Automatic loading state from @click promise |
loadingAuto prop on UButton |
Manual loading state |
<UButton loadingAuto @click="async () => await save()"> |
<UButton :loading="isLoading" @click="save"> |
Low |
https://ui.nuxt.com/docs/components/button |
| 50 |
Loading |
Use UForm loadingAuto |
Auto-disable form during submit |
loadingAuto on UForm (default true) |
Manual form disabled state |
<UForm @submit="handleSubmit"> |
|
Low |
https://ui.nuxt.com/docs/components/form |