Skip to content

Releases: nuxt/ui

v3.3.4

15 Sep 16:21

Choose a tag to compare

🐛 Bug Fixes

  • FileUpload: add missing button type (91f86d9), closes #4935
  • Form: handling race condition on clear function (#4843) (0a8ead7)
  • InputMenu/Select/SelectMenu: show falsy value when model value is falsy (#4882) (5b9d9d8)
  • locale: improve id name (#4890) (e5cb55b)

Full Changelog: v3.3.3...v3.3.4

v4.0.0-alpha.1

01 Sep 14:33

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

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

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

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

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

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

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

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

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