vuetify-skilld
npx skills add https://github.com/harlan-zw/vue-ecosystem-skills --skill vuetify-skilld
Agent 安装分布
Skill 文档
vuetifyjs/vuetify vuetify
Version: 4.0.0-beta.2 (Feb 2026) Tags: v1-stable: 1.5.24 (Mar 2020), v2-stable: 2.7.2 (Feb 2024), dev: 3.11.0 (Nov 2025), latest: 3.11.8 (Jan 2026), next: 4.0.0-beta.2 (Feb 2026)
References: Docs â API reference, guides ⢠GitHub Issues â bugs, workarounds, edge cases ⢠GitHub Discussions â Q&A, patterns, recipes ⢠Releases â changelog, breaking changes, new APIs
API Changes
This section documents version-specific API changes â prioritize recent major/minor releases.
-
BREAKING:
VRow/VColGrid â complete overhaul using CSSgapinstead of negative margins.denseprop removed (usedensity="compact"),align/justifyonVRowandorder/align-selfonVColremoved in favor of utility classes source -
BREAKING: MD3 Typography â variant names renamed for Material Design 3 compliance:
h1–h3->display-*,h4–h6->headline-*,subtitle-1/body-1->body-large,button/subtitle-2->label-largesource -
BREAKING: MD3 Elevation â elevation levels reduced from 25 (0-24) to 6 (0-5) to align with MD3 density-independent pixel levels source
-
BREAKING:
VBtnDefaults âtext-transform: uppercaseremoved by default.$button-stacked-icon-marginSass variable replaced by$button-stacked-gapsource -
BREAKING:
VSelect/VAutocomplete/VComboboxâitemslot prop renamed tointernalItem. Theitemprop is now an alias forinternalItem.rawsource -
BREAKING:
VFormSlot âisValid,errors, andisDisabledslot variables are now unwrapped values instead ofRefobjects source -
NEW:
VSnackbarQueueâ rewritten in v4 to support showing multiple snackbars simultaneously;defaultslot renamed toitemsource -
NEW:
VRowgapprop â provides fine-grained control over grid spacing, accepting numbers, strings, or[x, y]arrays source -
NEW:
VAvatarGroup(experimental) â new labs component for grouping multiple avatars with overlapping support source -
NEW:
VCommandPalette(experimental) â new labs component providing a search and action interface for application commands source
Also changed: VCalendar promoted from labs · VHotkey promoted from labs · VToolbar location prop new · VAvatar badge prop new · VProgressCircular reveal prop new · VTreeview indent-lines props new · vuetify/styles/core new entry point · system default theme · VSnackbar multi-line removed · VContainer fill-height behavior changed
Best Practices
- Use the
cmdmodifier in theuseHotkeycomposable for cross-platform compatibility â automatically resolves to Command on Mac and Control on PC source
// Preferred: works on both Mac and PC
useHotkey('cmd+s', (e) => saveDocument(e))
// Avoid: hardcoding 'ctrl' may cause conflicts or feel non-idiomatic on Mac
useHotkey('ctrl+s', (e) => saveDocument(e))
- Apply
classandstyleto specific component keys in thedefaultsconfiguration â these are not supported in theglobaldefaults key source
// Preferred
createVuetify({
defaults: {
VBtn: {
class: 'text-none',
style: { textTransform: 'none' }
}
}
})
// Avoid: class and style are ignored in global
createVuetify({
defaults: {
global: { class: 'text-none' }
}
})
- Resolve style conflicts between Vuetify and TailwindCSS by redefining CSS layer order â place Vuetify’s styles in a dedicated layer with lower precedence than Tailwind’s base layer source
/* main.css */
@layer theme, base, vuetify, components, utilities;
@import 'vuetify/styles' layer(vuetify);
@import 'tailwindcss';
-
Use
v-text-fieldwithdecimal.jsfor high-precision decimal arithmetic âVNumberInputusestoFixed()internally and may suffer from standard JavaScript floating-point inaccuracies source -
Centralize snackbar messages using global state (e.g., Pinia) with
v-snackbar-queueâ allows triggering notifications from any part of the application by pushing to a shared array source
<template>
<v-app>
<v-snackbar-queue v-model="messages.queue" />
</v-app>
</template>
- Use the
orderprop to explicitly control layout component priority â overrides the default behavior where priority is determined solely by markup order source
<v-navigation-drawer />
<v-app-bar :order="-1" />
-
Utilize
useDate()‘sparseISOandtoISOmethods for standardizing date strings âVDateInputand other date components internally expect and return native JSDateobjects source -
Use
v-command-palette(experimental) for keyboard-driven power-user workflows â provides a pre-configured, accessible, and searchable dialog interface that implements ARIA best practices automatically source -
Restore previous negative-margin/padding grid behavior during Vuetify 4 migration using the
@layer vuetify-overridesblock â necessary when existing layouts rely on the legacy system instead of the new CSSgapproperty source
@layer vuetify-overrides {
.v-row {
gap: unset;
margin: calc(var(--v-col-gap-y) * -.5) calc(var(--v-col-gap-x) * -.5);
}
}