Releases: nuxt/ui
v2.15.0
Read our updated documentation on https://ui.nuxt.com/.
⚠️ Breaking Changes
- forms: normalize input emits (#1560)
This PR includes a small breaking change on the URange, USelect and UCheckbox components: the @change event's payload is now the input's value instead of the HTML event to match other inputs.
🚀 Features
- Accordion: emit
openevent with index (#1559) (224ec3c) - Alert: add
icon&avatarslots (#1401) (cee3e12) - Slideover: open programmatically (#1465) (e769759)
- Toggle: add
loadingprop (#1546) (e1e05af)
🐛 Bug Fixes
- ButtonGroup: nested group elements (#1530) (7658211)
- Carousel: add tab-based ARIA roles (#1516) (e736eca)
- Checkbox: bind
data-n-idsto root element (#1495) (a2b8b70) - forms: normalize input emits (#1560) (92e7362)
- InputMenu: trigger alignement on safari (f4a48f6), closes #1505
- module: opt in to
import.meta.*properties (#1561) (cc62e34) - Popover/Dropdown: use
@touchstart.passiveinstead of@touchstart.prevent(#1520) (a563d8f) - SelectMenu:
filteredOptionsmight be undefined (#1541) (b0ecac5) - SelectMenu: handle
Booleantype as model value (#1550) (c49f899)
👋 New Contributors
- @nmggithub made their first contribution in #1516
- @danielohling made their first contribution in #1520
- @angsanley made their first contribution in #1541
- @genu made their first contribution in #1465
- @YIngChenIt made their first contribution in #1549
- @aminmokhtari94 made their first contribution in #1546
Full Changelog: v2.14.2...v2.15.0
v2.14.2
🐛 Bug Fixes
- Alert: improve
descriptionalignment when no title provided (ca4f06a), closes #1408 - Checkbox: label interaction without
FormGroup(#1427) (6e77f1d) - Dropdown: active/inactive dropdown links (#1407) (6a1142b)
- Dropdown: improve
hovermode on touch devices (70bf4a7) - HorizontalNavigation: add
relativeclass to icon (0a4a9e3) - Modal: remove
overflow-hidden(#1460) (002129c) - Notification: improve
descriptionalignment when no title provided (9cce445) - Popover: improve
hovermode on touch devices (b50fbcf) - RadioGroup: add missing
fieldsetconfig (2d64b50), closes #1472 - SelectMenu: check
nullmodel value (4b6e80e), closes #1421 - Tooltip: arrow not hidden on mobile (272c19d), closes #1470
- VerticalNavigation: add
relativeclass to icon (0b29dd4), closes #1245
👋 New Contributors
- @sdezza made their first contribution in #1423
- @moshetanzer made their first contribution in #1434
- @roiLeo made their first contribution in #1453
- @lammerfalcon made their first contribution in #1451
- @davidparys made their first contribution in #1442
- @mukundshah made their first contribution in #1449
- @kmilogp8496 made their first contribution in #1460
- @zoobzio made their first contribution in #1407
Full Changelog: v2.14.1...v2.14.2
v2.14.1
🐛 Bug Fixes
Full Changelog: v2.14.0...v2.14.1
v2.14.0
Read our updated documentation on https://ui.nuxt.com.
🚀 Features
- Carousel: expose methods to allow autoplay (41ecd2a), closes #1300
- Divider: handle
sizeprop (#1307) (cbeede6) - Form: use nuxt
useIdto bind input labels (#1211) (27c71fa) - Input: handle type
file(946a39c), closes #563 - Modal: open programmatically (#1319) (6f29c62)
- Table: display progress bar when
loading(#1362) (3fe3521) - Tabs: add
unmountprop asfalseby default (843a978), closes #663 - Textarea: add
maxrowsprop to restrict autoresize (#1302) (f643e7b)
🐛 Bug Fixes
- Alert: remove
requiredtitle to prevent warning when using slot (e545b6f) - Card: prevent
bodypadding without default slot (f682905) - components: hydration attribute mismatch with vue
3.4(#1199) (10db144) - Form: improve
validatepath type (#1370) (5266591) - Form: return false when silent validation fails (#1371) (d4b6147)
- Link: check
disabledprop before navigating (#1321) (ac42ec1) - Meter: missing import of
Iconcomponent (f8b296f), closes #1328 - module: prevent tailwind warn with
bun(bb40c31), closes #809 - module: put back
alloption in icons plugin (412cd75), closes #1237 - Notification: remove
requiredtitle to prevent warning when using slot (aa2b1ca) - Progress: prevent
NaNpercent display when indeterminate (a55a08a) - RadioGroup: pass
helpprop to radio children (5a5b284), closes #1313 - utils: prevent merge of
popperkey (9f35297), closes #1393
👋 New Contributors
- @JakeIsMeh made their first contribution in #1297
- @pedraal made their first contribution in #1302
- @solamichealolawale made their first contribution in #1321
- @noook made their first contribution in #1319
- @rvdriest made their first contribution in #1340
- @dalirnet made their first contribution in #1370
Full Changelog: v2.13.0...v2.14.0
v2.13.0
Read our updated documentation on https://ui.nuxt.com.
✨ Highlights
Carousel component
The Carousel component allows you to display images or content in a scrollable area and comes with drag to scroll support, navigation buttons, indicators, etc.
HorizontalNavigation component
Much like the VerticalNavigation, the HorizontalNavigation component comes in handy when you need to display a list of horizontal links.
🎨 Design consistency
We've updated the Breadcrumb, CommandPalette, Dropdown, InputMenu, SelectMenu and VerticalNavigation components config to be consistent with the Button default sm size.
If you take a look at this example with many components, you can see that everything is now perfectly aligned and has the same size:
<template>
<UContainer class="min-h-screen flex items-center">
<div class="w-80 space-y-2">
<UCommandPalette :groups="[{ key: 'links', commands: links }]" :searchable="false" class="-mx-2" />
<UVerticalNavigation :links="links" />
<UHorizontalNavigation :links="links" />
<UInput :icon="selected.icon" :options="links" :placeholder="selected.label" />
<UInputMenu v-model="selected" :icon="selected.icon" :options="links" />
<USelect :icon="selected.icon" :options="links" :placeholder="selected.label" />
<USelectMenu v-model="selected" :icon="selected.icon" :options="links" />
<UDropdown :items="[links]" :popper="{ placement: 'bottom-start' }" class="w-full">
<UButton color="white" :icon="selected.icon" :label="selected.label" class="w-full" />
</UDropdown>
<UBreadcrumb :links="links" class="ml-2.5" />
<UAccordion :items="links" color="gray" variant="ghost" />
</div>
</UContainer>
</template>
<script setup>
const links = [{
label: 'Installation',
icon: 'i-heroicons-home',
to: '/getting-started/installation'
}, {
label: 'Vertical Navigation',
icon: 'i-heroicons-chart-bar',
to: '/navigation/vertical-navigation'
}, {
label: 'Command Palette',
icon: 'i-heroicons-command-line',
to: '/navigation/command-palette'
}]
const selected = ref(links[0])
</script>It is not shown by the screenshot but labels and icons inside the Dropdown / InputMenu / SelectMenu menus now also match.
Here's the list of commits if you want to know exactly what changed:
There are still some improvements left to reflect the
sizeprop on the actual menus as mentioned in #446.
📖 Docs revamp
Since the first release of @nuxt/ui and the launch of @nuxt/ui-pro, more and more components have been added to the docs. There are now at least 90+ components if you combine the two packages.
To ease the navigation between all these components, we removed all the categories like Elements, Forms, Landing, etc. for both @nuxt/ui and @nuxt/ui-pro to group everything under Components. This should remove a lot of clicks to find the component you're looking for.
We also removed the Pro popover in the header to access Nuxt UI Pro, you can now use the Docs and Pro links instead to switch between the two or use the top left dropdown to switch between @nuxt/ui, @nuxt/ui-edge and @nuxt/ui-pro packages.
The Nuxt UI Pro landing page has been merged at the bottom of https://ui.nuxt.com, and new Pricing and Templates pages are now available in the header.
🚀 Features
- Carousel: new component (#927) (f37b043)
- Dropdown: default delay from config (c4a1c04)
- Form: handle multiple paths in
validate(#1273) (20ac4b3) - HorizontalNavigation: new component (#1279) (b8007ba)
- InputMenu: handle
nullableprop when clearing input (5e49fb8) - Modal/Slideover: emit
close-preventedevent (#1207) (6faf15b) - module: add option to disable global css styles (#1266) (f96eb5e)
- Popover: default delay from config (7f5711b)
- Tooltip: default delay from config (3400b56)
- VerticalNavigation: use
Badgecomponent for consistency (3e81eee)
🐛 Bug Fixes
- Breadrumb: handle truncate (5d3a962)
- Link: propagate
activeprop to slot asisActive(b76e761) - Select: consistent placeholder with input and textarea (2cb41db), closes #1276
- Slideover: handle translate in RTL mode (#1259) (ea58c88)
👋 New Contributors
- @Youhan made their first contribution in #1207
- @FADL285 made their first contribution in #1259
- @Gobler made their first contribution in #927
- @cernymatej made their first contribution in #1266
- @AnthonySendra made their first contribution in #1273
Full Changelog: v2.12.3...v2.13.0
v2.12.3
🐛 Bug Fixes
Full Changelog: v2.12.2...v2.12.3
v2.12.2
v2.12.1
🐛 Bug Fixes
- Button: inherit nuxt link props without breaking
nuxt-component-meta(d3e19dc), closes #578 - InputMenu: take
option-attributeinto account to display label (1a93791) - Link: prevent
typebind on<a>(b0df864) - SelectMenu: take
option-attributeinto account to display label (b9fe74b), closes #1151 - Tooltip: typo in kbd component (4405d32)
👋 New Contributors
- @Speelwolf made their first contribution in #1235
Full Changelog: v2.12.0...v2.12.1
v2.12.0
Read our updated documentation on https://ui.nuxt.com.
✨ Highlights
- New
InputMenucomponent
Like the SelectMenu, it allows you to create an autocomplete input with real-time suggestions.
🚀 Features
- Breadcrumb: handle
labelClassand mergeiconClass(f623ec1) - Dropdown: handle
labelClassand mergeiconClass(1c9835d), closes #716 - Dropdown: handle manual mode (3844714), closes #1143
- Form: expose
submitfunction (#1186) (4a25a12) - InputMenu: new component (#1095) (6d8d82a)
- Pagination: add
disabledprop (0976833), closes #1189 - SelectMenu: add
emptyslot when no options (5d1919a), closes #1089 - SelectMenu: allow control of search query (f735db0), closes #1174
- SelectMenu: allow creating option despite search (#1080) (0fdc8f7)
- Table: add
sort-modeprop (56e0c9a), closes #1149 - Table: add custom sort function to columns (#1075) (4f3af6c)
- VerticalNavigation: ability to add dividers (#963) (ffd20b3)
- VerticalNavigation: handle
labelClassand mergeiconClass(a79f7c0)
🐛 Bug Fixes
- Alert: always pass a function to actions click events (5d78111), closes #1197
- Card: remove
overflow-hiddenon wrapper (4124406), closes #806 #1034 - config: prevent class merge of
avatarsize (b22bd70) - Dropdown: improve placement with
hovermode (c6aa421), closes #1179 - Dropdown: merge item
class(7151b7b), closes #1157 - Form: invalid errors when using
clearby path (#1165) (97a3975) - Form: memory leak (#1185) (ea2a24b)
- forms: dont disable inputs and selects on
loading(3258167), closes #1117 - Link: handle
activeoverride when value is false (83631cc) - Popover: allow manual mode without blocking normal behaviour (3334e2a)
- Popover: improve placement with
hovermode (bc00f9c), closes #781 - RadioGroup: pass
option.disabledto children (0c8ab9d), closes #1109 - Table: display nothing instead of error when key is missing (00d0fd5), closes #1173
- Table: respect sort prop updates from parent component (#1208) (c6841d0)
- Toggle: add missing
changeevent (4c84839), closes #1113 - useShortcuts: include
contenteditable="plaintext-only"elements inusingInput(#1159) (648eec3) - VerticalNavigation: improve accessibility (#948) (29e64ca)
👋 New Contributors
- @jchrobakk made their first contribution in #1141
- @slugcat-dev made their first contribution in #1159
- @nathanjcollins made their first contribution in #1145
- @neilmispelaar made their first contribution in #948
- @akintoluvic made their first contribution in #1181
- @Ragura made their first contribution in #1075
- @ivantopo made their first contribution in #1208
Full Changelog: v2.11.1...v2.12.0
v2.11.1
🐛 Bug Fixes
- Breadcrumb: handle divider in rtl (#1049) (e53cdea)
- CommandPalette: missing right padding on input with close button (ad33b26)
- components: move remaining classes to config (#1039) (e408eab)
- module: prevent class merging on
defaultchildren (f07968a), closes #1076 - Notification: handle dynamic backgrounds (#1063) (1f0f618)
- RadioGroup: props reactivity issues (#1065) (7196d81)
- types: favor
Record<string, any>>instead ofobject(4d72a75) - types: improve with strict mode (#1041) (4a9b66a)
- types: workaround for
popperweak type (5718dfd), closes #644
👋 New Contributors
- @emechpi made their first contribution in #1063
Full Changelog: v2.11.0...v2.11.1


