Skip to content

Releases: nuxt/ui

v4.0.0-alpha.1

01 Sep 14:33
Compare
Choose a tag to compare
v4.0.0-alpha.1 Pre-release
Pre-release

📚 Documentation

You can check out the new docs for v4 on https://ui4.nuxt.com while in alpha.

🚨 Breaking Changes

  • components: rename nullify modifier to nullable and add optional (#4838)
  • module: update compatibility to nuxt 4

Read the migration guide to v4.

🚀 Features

  • Icon: allow passing a component instead of a name (#4766) (61b603f)

🐛 Bug Fixes

  • AuthForm: use error from form field (#4738) (00dfb6b)
  • BlogPost: ensure date slot renders (#4743) (4514880)
  • ChangelogVersion/ChangelogVersions: handle RTL mode (#4777) (f91c408)
  • ContentSearch/DashboardSearch: make ui.modal work (946c2ec)
  • module: add @source on components (a16465f), closes #4773
  • PageCard: improve keyboard accessibility (#4733) (3029568)
  • ProseImg: ensure unique motion layout id for images (#4720) (9480a0b)
  • unplugin: handle components overrides in subdirectories (#4781) (69ee75e)

New Contributors

Full Changelog: v4.0.0-alpha.0...v4.0.0-alpha.1

v3.3.3

01 Sep 12:25
Compare
Choose a tag to compare

🚀 Features

  • useFormField: export form errors injection key (#4808) (ec2bc0a)

🐛 Bug Fixes

  • components: broken types for update:model-value event (#4853) (7133f50)
  • Form: default slot types (#4758) (a32cc37)
  • Form: update Form interface to accept RegExp (#4821) (0c2d390)
  • InputMenu/Select/SelectMenu: show placeholder when model value is falsy (#4825) (90b5daf)
  • InputMenu: prevent focus-outside event on content (77b6b9a)
  • Link: ensure target _blank is flagged as external for Inertia (#4746) (520b277)
  • Table: ensure colspan calc for loading and empty states (#4826) (bdcc8c4)

New Contributors

Full Changelog: v3.3.2...v3.3.3

v2.22.2

01 Sep 13:40
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Meter: correct vertical alignment of progress bar (#4735) (875be4b)
  • SelectMenu/InputMenu: ensure object compare with by prop (#4791) (44382cd)

New Contributors

Full Changelog: v2.22.1...v2.22.2

v4.0.0-alpha.0

15 Aug 10:43
Compare
Choose a tag to compare
v4.0.0-alpha.0 Pre-release
Pre-release

📚 Documentation

You can check out the new docs for v4 on https://ui4.nuxt.com while in alpha.

🚨 Breaking Changes

Read the migration guide to v4.

Full Changelog: v3.3.2...v4.0.0-alpha.0

v3.3.2

14 Aug 13:49
Compare
Choose a tag to compare

This release ensures the [email protected] dependency is installed. The 2.1.0 version is somehow broken at the moment: heroui-inc/tailwind-variants#259 / heroui-inc/tailwind-variants#258

Full Changelog: v3.3.1...v3.3.2

v3.3.1

14 Aug 13:01
Compare
Choose a tag to compare

🚀 Features

🐛 Bug Fixes

  • Drawer: improve closing animation with inset prop (#4676) (9da1527)
  • FileUpload: handle wildcard in dropzone dataTypes (#4671) (729bed4)
  • FileUpload: improve file removal a11y (#4607) (f90bba0)
  • FileUpload: open dialog on keyup (#4629) (8e9265e)
  • FileUpload: prevent default on keydown (#4633) (68d8a98)
  • Input: incorrect rendering of type date / time on iOS (#4715) (93cc83c)
  • InputMenu/Select/SelectMenu: add display value fallback when no items found (#4689) (34ca811)
  • Select/InputMenu: handle focus via label inside a FormField (#4696) (55dbcd2)
  • Tabs: add missing Badge import (#4594) (fbec29c)
  • Toast: add type for progress ui prop (#4677) (a8af85c)
  • Tooltip: render only if text or kbds are present (#4568) (5e39cbb)

New Contributors

Full Changelog: v3.3.0...v3.3.1

v3.3.0

24 Jul 10:38
Compare
Choose a tag to compare

✨ Highlights

☁️ New FileUpload Component

Introducing a powerful new FileUpload component that makes file uploads effortless with built-in drag-and-drop and validation support (#4564).

CleanShot 2025-07-24 at 12 19 34@2x

Learn more: https://ui.nuxt.com/components/file-upload

🎨 Global Default Variants

Configure global defaults for color and size across all components to reduce boilerplate and ensure consistent styling (#4400).

export default defineNuxtConfig({
  modules: ['@nuxt/ui'],
  css: ['~/assets/css/main.css'],
  ui: {
    theme: {
      defaultVariants: {
        color: 'neutral',
        size: 'sm'
      }
    }
  }
})

Learn more: https://ui.nuxt.com/getting-started/installation/nuxt#themedefaultvariants

📊 Enhanced Table Component

Major improvements to the Table component bring enhanced functionality and better user experience:

  • Footer support for column summaries (#4194)
  • Context menu support (#4259)
  • Colspan and rowspan support (#4460)
  • Row hover events for better interactivity (#2435)
  • Custom styles in table and column meta (#4513)

Learn more: https://ui.nuxt.com/components/table

🚀 Features

🐛 Bug Fixes

  • Button/Link: merge active-class / inactive-class with app config (#4446) (9debce7)
  • Button: add active styles to behave like hover on mobile (df8f202), closes #991
  • Carousel/Tree: add type to button elements for accessibility (#4493) (fc24e03)
  • Carousel: add aria-current attribute to active dot (#4447) (1ba8a55)
  • Carousel: improve accessibility (55e06e9), closes #4494
  • Carousel: resolve plugins with page transitions (#4380) (3b67d54)
  • ColorPicker: update color conversion logic (#4550) (6b6ec8c)
  • CommandPalette: remove rtl:space-x-reverse from label (#4576) (4682ded)
  • defineShortcuts: allow extra keys to be combined with shift (#4456) (772631c)
  • defineShortcuts: always pass event to shotcut handler (#4516) (ef473c3)
  • FormField: improve error type with boolean (a4d0ca7), closes #4496
  • FormField: resolve minor accessibility and rendering issues (#4515) (c64c4cd)
  • InputMenu/SelectMenu: filter null items in search (488707e)
  • InputMenu/SelectMenu: improve display value without valueKey (4d4234d), closes #4528
  • InputMenu/SelectMenu: only filter non-null fields (c92f908), closes #4509
  • InputMenu: reset search term on mounted (cb160e6), closes #3993
  • module: merge user's options when installing modules (78f92a2)
  • NavigationMenu/Tabs: display badge when not undefined (b22891a)
  • NavigationMenu/Tabs: proxy fallthrough attributes (836f748)
  • RadioGroup: improve type safety for normalizeItem function (#4535) (bb99345)
  • Table: add scope attribute to headers (#4417) (347694b)
  • Table: handle reactive columns (#4412) (4ce6540)
  • theme: colors autocomplete in app config (752e2b6)
  • Toast: only show progress when open (1d052ec), closes #4464
  • Tooltip: display separator only with text and kbds (#4570) (63476e5)
  • useLocale: ensure inject defaults to en (df1abf1), closes #4579
  • useLocale: prevent hydration error when switching locale (15c7991)
  • useOverlay: don't use patch when passing props to open (#4497) (5ad7dab)
  • useOverlay: improve props handling by mer...
Read more

v2.22.1

16 Jul 14:01
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Badge/Button: support numeric zero as visible label (#4116) (2971a31)

Full Changelog: v2.22.0...v2.22.1

v3.2.0

25 Jun 15:08
Compare
Choose a tag to compare

✨ Highlights

🏷️ New InputTags Component

A powerful new component for managing multiple input values with a clean, tag-based interface (#4261).

Learn more: https://ui.nuxt.com/components/input-tags

⏱️ New Timeline Component

Introducing the Timeline component for displaying chronological sequences and process flows (#4215).

Learn more: https://ui.nuxt.com/components/timeline

🚨 Breaking Changes

  • useOverlay: correct spelling of unmount function (#4051)

🚀 Features

🐛 Bug Fixes

  • Card/Drawer/Modal: prevent scrollbars overflow (#4368) (c3adc38)
  • components: remove default md size on buttons (#4357) (be41aed)
  • defineShortcuts: allow meta_- shortcut (#4321) (4e7c1c9)
  • Form: conditionally type form data via transform prop (#4188) (37abcc6)
  • Form: expose reactive fields (#4386) (1a8feb7)
  • InputMenu/SelectMenu: dynamic empty size (ba3c6e8), closes #4377
  • Modal/Slideover: don't emit close:prevent on closeAutoFocus (150b334)
  • NavigationMenu: nested accordion context at every level (#4363) (2fa8db6)
  • NavigationMenu: set content max-height in horizontal orientation (62bc7b2), closes #4208
  • Pagination: match default button size (#4350) (4dd56c8)
  • Select/SelectMenu: display falsy values (7df7ee3)
  • Select/SelectMenu: prevent empty string display when multiple (483e473)
  • SelectMenu: dynamic input size (b0364b9)
  • Table: use tr as separator (#4083) (edca3bc)
  • Toast: calc height on next tick (3bf5acb), closes #4265
  • Toaster: smoother visibility transition for stacked toasts (#4367) (abfd0ed)
  • useOverlay: correct spelling of unmount function (#4051) (546df57)
  • useOverlay: set props to original props when defaultOpen is set (#4308) (66355ba)
  • useOverlay: use original props when not provided to open (#4269) (bf56e15)

🌐 Locales

👋 New Contributors

Full Changelog: v3.1.3...v3.2.0

v3.1.3

26 May 13:14
Compare
Choose a tag to compare

🚨 Breaking Changes

  • NavigationMenu: revert new collapsible field

In previous patch, we introduced a new collapsible field in items to display children in collapsed state as well as making the parent element respect its link attributes. However, it didn't feel right so we removed it in favor of 1e2a10b, 9cf9f25 and f2682fd.

  1. Parent items now respect their link attributes and clicking the trailing icon arrow expand/collapse its children.
  2. You can force a parent to behave like before (without link attributes) using type: 'trigger'.
  3. When collapsed, you can use the popover / tooltip props or item fields:

🚀 Features

  • Modal/Slideover: add after:enter event (#4187) (d9e9fea)
  • NavigationMenu: add tooltip and popover props (f2682fd), closes #4186
  • NavigationMenu: add trigger type in items (9cf9f25)
  • NavigationMenu: handle vertical orientation with Accordion instead of Collapsible (1e2a10b), closes #4072 #3911
  • Popover: add anchor slot (#4119) (473513c)

🐛 Bug Fixes

  • CheckboxGroup/RadioGroup: variant table borders in RTL mode (#4192) (43d281f)
  • CommandPalette: add presentation role to viewport (2ba94db)
  • ContextMenu/DropdownMenu: wrap groups in a viewport (dcf34a7), closes #3315
  • Drawer: improve title & description accessibility (41087d4), closes #4199
  • icons: update loading icon (#4163) (fe4e1f8)
  • Input/Textarea: define model modifiers types (#4195) (3243fb8)
  • InputMenu/Select/SelectMenu: manual viewport to display scrollbars (f95abf8), closes #4069
  • NavigationMenu: incorrect hover when disabled and active (d0be599)
  • NavigationMenu: only display tooltip when collapsed (44f536f)
  • NavigationMenu: revert new collapsible field (3c78e2f)
  • Textarea: missing imports (#4207) (6aab62e)
  • theme: define old-neutral color as static (#4193) (dae9f0b)
  • Tooltip: increase padding for consistency (0634a75)

🌐 Locales

👋 New Contributors

Full Changelog: v3.1.2...v3.1.3