vuetify-skilld
Vue Material Component Framework. Use when writing, debugging, or configuring code that imports vuetify v4.x. Covers createVuetify setup, components and labs, composables, theming, icons, dates and locale, styles and SASS variables, treeshaking, and v3 to v4 migration.
How do I install this agent skill?
npx skills add https://github.com/skilld-dev/vue-ecosystem-skills --skill vuetify-skilldIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is a comprehensive technical reference for Vuetify 4.x, providing setup instructions, component maps, and migration guides. It adheres to best practices and references only official or well-known development resources.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
vuetify@4.0.1
Material Design component framework for Vue 3. Source citations like lib/framework.js:15 refer to the prepared vuetify@4.0.1 package (package.json:4).
Environment limits
- Vue
^3.5.0peer dependency (package.json:208). No Vue 2 support; Vuetify 2 is EOL (README.md:274). - ESM only:
"type": "module"(package.json:32). - Optional peers:
vite-plugin-vuetify >=2.1.0,webpack-plugin-vuetify >=3.1.0,typescript >=4.7(package.json:205). - Modern browsers, Safari 13+ with polyfills, minimum design width 320px (
README.md:159). - Default font is Roboto; you must add it yourself, e.g.
@fontsource/roboto(https://vuetifyjs.com/getting-started/installation/).
Setup
Vite with automatic treeshaking (preferred). The vuetify plugin must come after the vue plugin:
// vite.config.js
import vue from '@vitejs/plugin-vue'
import vuetify from 'vite-plugin-vuetify'
export default defineConfig({ plugins: [vue(), vuetify()] })
// src/plugins/vuetify.js
import 'vuetify/styles'
import { createVuetify } from 'vuetify'
export default createVuetify({
// components, directives not needed with the loader plugin
})
Without a loader plugin, register manually; wildcard imports include everything and slow development builds:
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
createVuetify({ components, directives })
createVuetify accepts aliases, blueprint, components, date, defaults, directives, display, goTo, icons, locale, ssr, theme and returns { install, unmount, defaults, display, theme, icons, locale, date, goTo } (lib/framework.js:15). Install with app.use(vuetify); wrap the app in a single <v-app> root.
For SSR frameworks (Nuxt, vite-ssr) set ssr: true so display values render correctly (https://vuetifyjs.com/getting-started/installation/).
Scaffolding: pnpm create vuetify / npm create vuetify@latest (README.md:44).
CDN bundle with everything included: vuetify/dist/vuetify.js (package.json:35).
Components
- Prefer imports from
vuetify/components/<Group>overvuetify/components(loads only needed styles in dev). - Labs components are NOT production ready; import from
vuetify/labs/<Name>orvuetify/labs/components. In 4.0.1 labs holds: VAvatarGroup, VColorInput, VCommandPalette, VDateInput, VFileUpload, VIconBtn, VMaskInput, VPicker, VPie, VStepperVertical, VPullToRefresh, VVideo (lib/labs/components.js:1). - Dynamic
<component :is>is invisible to the loader plugin; import those components manually (https://vuetifyjs.com/features/treeshaking/). - Full inventory and export paths: references/exports.md
Configuration
- Theme: the v4 default is
system(followsprefers-color-scheme), notlight(lib/composables/theme.js:10). Pin it withtheme: { defaultTheme: 'light' }if system switching is unwanted. - Defaults: set prop defaults per component with
createVuetify({ defaults: { VBtn: { ... } } }).classandstylework only on component keys, never in theglobalkey (https://vuetifyjs.com/features/global-configuration/). - Display: v4 breakpoints changed; defaults are
sm 600, md 840, lg 1145, xl 1545, xxl 2138(lib/composables/display.js:10). - Icons: default set is
mdiand expects the@mdi/fontstylesheet, or usemdi-svgfor bundled SVG icons (https://vuetifyjs.com/features/icon-fonts/). - Dates: default adapter wraps native
Date; swap with any date-io adapter (https://vuetifyjs.com/features/dates/). - Blueprints:
createVuetify({ blueprint: md3 })applies a design-system preset; explicit options override the blueprint (lib/framework.js:15,lib/blueprints/index.js:1). - Details and examples: references/configuration.md
Composables
All exported from the vuetify entry point (lib/composables/index.js:1): useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, useHotkey, useMask.
<script setup>
import { useTheme } from 'vuetify'
const theme = useTheme()
theme.toggle() // light <-> dark
</script>
For hotkeys prefer the cmd modifier (useHotkey('cmd+s', save)); it resolves to Command on Mac and Control elsewhere (lib/composables/hotkey/key-aliases.js:10).
Full API per composable: references/composables.md
Styles
import 'vuetify/styles'is the all-in-one precompiled CSS; modular entries arevuetify/styles/core(must be first),vuetify/styles/colors,vuetify/styles/utilities(package.json:61).- SASS variable overrides require the sass preprocessor and
vuetify({ styles: { configFile: 'src/styles/settings.scss' } })in the loader plugin; use@use 'vuetify/settings' with (...). - v4 styles ship in cascade layers (
vuetify-core,vuetify-components,vuetify-overrides,vuetify-utilities,vuetify-final); unlayered user CSS now always wins over Vuetify. - Entry points, variables, layers, Tailwind interop, legacy grid restore: references/styling.md
Migrating from v3
v4 is a breaking MD3 release. Highest-impact changes:
- Grid uses CSS
gap;denseis nowdensity="compact",align/justify/order/align-selfprops replaced by utility classes. VRow gains agapprop (lib/components/VGrid/VRow.js:154). - Typography variants renamed:
h1-h3->display-*,h4-h6->headline-*,subtitle-1/body-1->body-large,caption->body-small,button/subtitle-2->label-large. - Elevation reduced from levels 0-24 to 0-5 (
lib/styles/settings/_elevations.scss:6). VSelect/VCombobox/VAutocompleteslotitemrenamed tointernalItem;itemis now an alias forinternalItem.raw.VFormslot values (isValid,errors, ...) are unwrapped, no longer refs.- Defaults merging skips
undefined; usenullto override a global default.
Full change list with compat snippets: references/migration-v4.md
Common pitfalls
- Missing icon font: components render blank icons until
@mdi/fontCSS (or an SVG set) is installed. - Missing Roboto font: text renders with fallback font (
README.md:159). - Styles broken after adding custom CSS: check layer order; place overrides inside
@layer vuetify-overridesor declare your layer order explicitly. VNumberInputusestoFixed()internally; for arbitrary-precision decimals usev-text-fieldwith decimal.js (lib/components/VNumberInput/VNumberInput.js:81, https://vuetifyjs.com/components/number-inputs/).- Do not use
vuetify/stylesinside SASS files; it resolves to precompiled CSS. Usevuetifyorvuetify/settings(https://vuetifyjs.com/features/sass-variables/).
References
- references/exports.md — entry points, component inventory, directives, iconsets, locale
- references/configuration.md — every
createVuetifyoption with examples - references/composables.md — public composables API
- references/styling.md — CSS and SASS entry points, variables, layers
- references/migration-v4.md — v3 to v4 breaking changes and compat snippets
Official documentation: https://vuetifyjs.com. Release notes by URL: https://vuetifyjs.com/getting-started/release-notes/.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/skilld-dev/vue-ecosystem-skills/vuetify-skilld">View vuetify-skilld on skillZs</a>