What changed in vuetify from 3 to 4

8 releases numbered after v3.13.3 up to and including v4.2.0, stable releases only. v3.13.3 and v4.2.0 are the newest stable releases of 3 and 4 we track; this page follows them as new ones ship.

60 changes across 8 releases

Added 20

v4.2.0

  • Add open-on-focus prop to inputs with VMenu
  • Promote rules feature from labs to core framework
  • Consume @vuetify/v0 utilities in core
  • Add close-on-input-click prop to VAutocomplete and VCombobox
  • Add size prop to VBtnGroup to align with standalone buttons
  • Add trim-values prop to VCombobox
  • Auto-fill separators while typing in VDateInput
  • Add placeholder support to VFileInput
  • Unify dragging effect between VFileInput and VFileUpload
  • Support percentage width in VNavigationDrawer
  • Add duration control for value transition in VProgress, VProgressLinear, and VProgressCircular
  • Add reveal prop to VProgressLinear
  • Enable v-model to work normally in VRadio without VRadioGroup
  • Allow persistent menu in VSelect, VAutocomplete, and VCombobox
  • Add new events for multi-selection in VSelect, VAutocomplete, and VCombobox
  • Add chip-group type to VSkeletonLoader
  • Add types prop to VSkeletonLoader and reintroduce table-cell
  • Emit event when VSlideGroup reaches an edge
  • Add slide function to VSlideGroup
  • Add scroll-snap and scroll-distance props to VSlideGroup
Changed 1

v4.1.13

  • Replace map-deep-get with builtin map.get in styles
Fixed 39

v4.1.13

  • VCalendar show border for outside days when calendar has events
  • VMenu focus selected item when opening with arrow keys

v4.1.12

  • Update translation keys for Arabic locale
  • Correct mistranslations and russianisms in Ukrainian locale
  • Update translations for VOtpInput aria-label
  • Use the resolved position in VOverlay to align with new target
  • Apply round-bar with reverse and buffer in VProgressLinear

v4.1.11

  • prevent flash for every `to` component on page refresh in useLink
  • restore `dense` to 8px gutter in VRow
  • fix dividers skewing virtual offsets estimation in VVirtualScroll
  • fix scrollToIndex retries locking manual scroll in VVirtualScroll

v4.1.10

  • VDataTable: key cells to prevent slot reuse
  • VDatePicker: restore the hover preview for range selection
  • VDialog: avoid error when unmounted while closing
  • VNumberInput: snap to min/max when using buttons and value is out of range
  • VOverlay: reliably return focus to activator when eager
  • VProgressLinear: restore left/right animation in split variant
  • VProgressLinear: keep indeterminate bars visible in Firefox
  • VTreeviewItem: only attach click handler when interactive
  • VBtn: do not render the value attribute on a link
  • VDivider: drop redundant role attribute from hr
  • VImg: omit the root aria-label when alt is empty

v4.1.9

  • Restore classes for side/corner values containing 0 in rounded
  • Consistently validate cleared fields in validation
  • Fix height accounting when expanding multiple rows in VDataTableVirtual
  • Focus correct item after opening with keyboard in VSelect with Shadow DOM
  • Ignore zero-height items when estimating spacer in VVirtualScroll

v4.1.8

  • Accept Vue 3.6 prereleases in the vue peer range
  • Correct color-scheme for light theme
  • Avoid SSR hydration mismatch on empty file list in VFileUpload
  • Strip grouping separator before parsing number in VNumberInput
  • Resolve ownership from the activator instead of aria-owns in VOverlay
  • Correct viewport size for desktop view on Android in VOverlay

v4.1.7

  • The hover-elevation prop should not require elevation to be set
  • Camelize item props for prepend icon and avatar in VAutocomplete and VCombobox
  • Avoid Vite v8 dropping transition timing in VProgressLinear and VIconBtn
  • Remove unnecessary error color applied to step content in VStepperVerticalItem
  • Guard against double teardown in VStepperWindow and VTouch
  • Respect hide-details="auto" with counter in VTextField

Original release notes, newest first

The list above is our reading of these notes; the originals from vuetifyjs are here, one fold per release.

v4.2.0

[!IMPORTANT] Vuetify Needs Your Support! The OpenCollective funds are running low. The team needed to scale down and is barely able to compensate the contributors for their work on the framework and the ecosystem tools.

If Vuetify is part of your stack, please consider sponsoring the project so we can continue delivering updates and fixes.

Sponsor via Open Collective

Every contribution helps us keep Vuetify alive and signals to maintainers that their effort is appreciated.

Thank you.


The following components have been promoted to the core framework from labs:

:rocket: Features
:wrench: Bug Fixes
  • defaults: let user defaults override hardcoded subcomponent props (#23108) (bb09f8b), closes #21279 #21420 #21490
  • defaults: avoid parent config leaking into menu and dialog content (#23016) (fc3e32e), closes #18123
  • v-tooltip: correctly handle true and undefined (cef88bf), closes #20463
  • v-touch: ignore scroll within (19ee74e), closes #21888
  • v-touch: react to binding value changes (937a471)
  • variant: clip underlay and overlay with overflow (#22992) (10d0b28), closes #22868
  • VAutocomplete,VCombobox,VSelect: improvements for native form submissions (#23022) (2c51006), closes #21938 #22270
  • VBtn: no letter-spacing for RTL locales (3956c08), closes #19627
  • VBtnGroup: correct height for x-large size (b2294cd)
  • VIconBtn: align default color with VBtn (1695a49), closes #23085
  • VDatePicker: correct range selection background for RTL (5448a61)
  • VInput: do not animate details when mounting the whole field (c55238f), closes #23049
  • VInput: consistent transitions of details/messages/counter (#23049) (9d7e741)
  • VMenu: submenu a11y/navigation improvements (#22904) (e2a12c1)
  • VMenu: avoid close cascading through non-menu overlays (e30eb47), closes #20468
  • VMenu: custom overlays and tooltips should not prevent closing (#22993) (d01d4ac)
  • VSelect/VAutocomplete/VCombobox: stable focus navigation in the virtual window (aae8fc4)
  • VSelect/VAutocomplete/VCombobox: resilient navigation when seaching (#23031) (7a33ea9), closes #18383 #22770
  • VSliderGroup: reliably select partially visible items (55d8e80), closes #21806
  • VTextField: keep caret/selection when changing field type (47c9cc1), closes #16109
  • VTreeview: improved open state when searching (#22983) (53afa91), closes #22035 #22392
  • VTreeview: more aria attributes and correct keyboard navigation (#22903) (bad201d), closes #10796 #21585
:test_tube: Labs
Other Commits

View originalPermalink

v4.1.13
:wrench: Bug Fixes
  • VCalendar: show border for outside days when calendar has events (#22617) (7f0ab91), closes #22516
  • VMenu: focus selected item when opening with arrow keys (d65e89e), closes #23157
:microscope: Code Refactoring
  • styles: replace map-deep-get with builtin map.get (dc2245e)

View originalPermalink

v4.1.12
:wrench: Bug Fixes
  • locale: update translation keys for Arabic (f61c453)
  • locale: correct mistranslations and russianisms in uk.ts (#23139) (f40d0d6)
  • VOtpInput: update translations for aria-label (8912406)
  • VOverlay: use the resolved position to align with new target (63cccbb), closes #23138
  • VProgressLinear: apply round-bar with reverse and buffer (55fed01), closes #23143

View originalPermalink

v4.1.11
:wrench: Bug Fixes
  • useLink: prevent flash for every to component on page refresh (#23131) (7bce68d)
  • VRow: restore dense to 8px gutter (ea6c628)
  • VVirtualScroll: dividers skewing virtual offsets estimation (cb60a1f)
  • VVirtualScroll: scrollToIndex retries locking manual scroll (f1cf0b0), closes #23133

View originalPermalink

v4.1.10
:wrench: Bug Fixes
  • VDataTable: key cells to prevent slot reuse (#23124) (a9528b5), closes #23123
  • VDatePicker: restore the hover preview for range selection (6c1dee2)
  • VDialog: avoid error when unmounted while closing (#23054) (8293f4c), closes #23053
  • VNumberInput: snap to min/max when using buttons and value is out of range (#23109) (a35ab72), closes #23098
  • VOverlay: reliably return focus to activator when eager (c879795)
  • VProgressLinear: restore left/right animation in split variant (537a5f7)
  • VProgressLinear: keep indeterminate bars visible in Firefox (694fcdb), closes #23125
  • VTreeviewItem: only attach click handler when interactive (#23118) (a4297d1), closes #23117
:microscope: Fixes for audit tools

View originalPermalink

v4.1.9
:wrench: Bug Fixes
  • rounded: restore classes for side/corner values containing 0 (27962f3), closes #23090
  • validation: consistently validate cleared fields (58b5537), closes #23084
  • VDataTableVirtual: height accounting when expanding multiple rows (6f5f04b), closes #23014
  • VSelect: focus correct item after opening with keyboard (Shadow DOM) (#23102) (8d15390), closes #23101
  • VVirtualScroll: ignore zero-height items when estimating spacer (abe744e)

View originalPermalink

v4.1.8
:wrench: Bug Fixes
  • accept Vue 3.6 prereleases in the vue peer range (#23040) (831fb2d)
  • theme: correct color-scheme for light theme (#23071) (9df2c71), closes #22119
  • VFileUpload: avoid SSR hydration mismatch on empty file list (4cd5288), closes #23086
  • VNumberInput: strip grouping separator before parsing number (94e94a9), closes #23050
  • VOverlay: resolve ownership from the activator instead of aria-owns (a57ec6e), closes #23056
  • VOverlay: correct viewport size for "desktop view" on Android (8849b6b), closes #22124

View originalPermalink

v4.1.7
:wrench: Bug Fixes
  • elevation: hover-elevation prop should not require elevation (378f593)
  • VAutocomplete,VCombobox: camelize item props for prepend icon and avatar (8a20623), closes #20989
  • VProgressLinear,VIconBtn: avoid Vite v8 dropping transition timing (f23af8a), closes #23046
  • VStepperVerticalItem: unnecessary error color to step content (fce4eaa), closes #23032
  • VStepperWindow/VTouch: guard against double teardown (#23030) (54a2b6a)
  • VTextField: respect hide-details="auto" with counter (#22620) (a94efe4), closes #19998

View originalPermalink