m3-web-vue
Material Design 3 — Vue / Vuetify 3
Overview
Vuetify 3 is the leading Material Design library for Vue.js with strong M3 support. Dynamic color theming, M3-aligned components, design tokens, and accessibility are built in.
Keywords: Material Design 3, M3, Vue, Vuetify, Vuetify 3, Vue.js, dynamic color, theming
When to Use
- Vue.js projects
- Enterprise-ready M3 with excellent documentation
- When you need a large, well-maintained component library for Vue
Install
npm install vuetify
Theme Setup
// plugins/vuetify.js
import { createVuetify } from 'vuetify';
import 'vuetify/styles';
export default createVuetify({
theme: {
defaultTheme: 'light',
themes: {
light: {
colors: {
primary: '#6750A4',
secondary: '#625B71',
'surface-variant': '#E7E0EC',
error: '#B3261E',
background: '#FEF7FF',
surface: '#FEF7FF',
},
},
dark: {
colors: {
primary: '#D0BCFF',
secondary: '#CCC2DC',
background: '#141218',
surface: '#141218',
},
},
},
},
});
Component Examples
Buttons
<template>
<v-btn color="primary">Filled</v-btn>
<v-btn variant="outlined">Outlined</v-btn>
<v-btn variant="text">Text</v-btn>
<v-btn variant="tonal">Tonal</v-btn>
<v-btn variant="elevated">Elevated</v-btn>
</template>
Cards
<template>
<v-card elevation="1" rounded="lg">
<v-card-title>Card Title</v-card-title>
<v-card-text>Card content following M3 specs</v-card-text>
<v-card-actions>
<v-btn variant="text">Action</v-btn>
</v-card-actions>
</v-card>
</template>
Text Fields
<template>
<v-text-field label="Email" variant="outlined" />
<v-text-field label="Name" variant="filled" />
</template>
Navigation
<template>
<v-bottom-navigation v-model="value">
<v-btn value="home">
<v-icon>mdi-home</v-icon>
Home
</v-btn>
<v-btn value="search">
<v-icon>mdi-magnify</v-icon>
Search
</v-btn>
</v-bottom-navigation>
<v-navigation-drawer>
<v-list>
<v-list-item title="Home" prepend-icon="mdi-home" />
<v-list-item title="Settings" prepend-icon="mdi-cog" />
</v-list>
</v-navigation-drawer>
</template>
Dialogs
<template>
<v-dialog v-model="dialog" max-width="400">
<v-card>
<v-card-title>Dialog Title</v-card-title>
<v-card-text>Dialog content</v-card-text>
<v-card-actions>
<v-spacer />
<v-btn variant="text" @click="dialog = false">Cancel</v-btn>
<v-btn color="primary" @click="dialog = false">Confirm</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
Checklist
- Vuetify plugin configured with M3 color tokens
- Both light and dark themes defined
- Components use Vuetify's
color,variant, androundedprops - Typography inherits from Vuetify's type system
- Navigation components use proper M3 patterns
Resources
More from shelbeely/shelbeely-agent-skills
material-design-3-guide
Master guide for Material Design 3 — covering the full specification from Material You foundations through M3 Expressive. Explains when to use each Material Design 3 skill subset (color, motion, typography, shape, layout, components, icons). Use this when starting a Material Design 3 project, when you need to understand which M3 skill to apply, or when the user asks about Material Design 3 in general.
28material-design-3-components
Comprehensive guide to Material Design 3 components — from baseline Material You through M3 Expressive. Covers action, containment, communication, navigation, selection, and text input components with specifications, states, and implementation guidelines. Use this when building or styling UI components following Material Design 3 guidelines.
27material-design-3-typography
Applies Material Design 3 Expressive typography principles including variable fonts, type scales, and hierarchy. Use this when working on text styling, type hierarchy, readable interfaces, or when the user asks to apply Material Design 3 typography guidelines.
21material-design-3-layout
Applies Material Design 3 Expressive layout, spacing, and size hierarchy principles including grid systems, responsive design, and elevation. Use this when working on page layouts, spacing, grids, responsive design, or when the user asks to apply Material Design 3 layout guidelines.
20material-design-3-motion
Applies Material Design 3 Expressive motion and animation principles to create natural, intuitive, and engaging user experiences. Use this when implementing animations, transitions, micro-interactions, or when the user asks to apply Material Design 3 motion guidelines.
17material-design-3-color
Applies Material Design 3 Expressive dynamic color and theming principles to user interfaces. Use this when working on color palettes, themes, dynamic color systems, accessibility, or when the user asks to apply Material Design 3 color guidelines to a design or application.
16