Frequently asked questions

Stuck on a particular problem? Check some of these common gotchas before creating a ticket. If you still cannot find what you are looking for, submit an issue on github or ask the community in discord.

Why does Vuetify not match Material Design 2?

The MD spec was updated in May of 2018, during the middle of beta testing for v1.1. Because of this, there are plenty of components that will not match the new spec. We will be updating the styles and functionality to match in a future release.

My code doesn't work - what should I do?

First, ensure that you're using the latest version of Vue.js and Vuetify. Try to reproduce it in codepen using the following template. If you are unable to reproduce the issue outside of your environment, this usually means the issue resides locally. If you are still unable to resolve your issue, please provide your codepen and issue in #need-help in the community.

I'm receiving an error similar to the following:
Error in ./node_modules/vuetify/src/dir/file.js Module parse "failed": Unexpected token (<lineno>:<characterno>)

If you're using an IDE, such as IntelliJ IDEA or WebStorm, it will often add automatic imports pointing to the vuetify/src/ directory for components you use. Change the import statement path from vuetify/src/ to vuetify/es5/.

Is there a codepen template with router?

Yes, right here.

My application does not look correct

Vuetify requires the use of the v-app component. It should wrap your entire application and is the center point for much of the framework functionality. If for whatever reason you cannot use this element, you can mimic it from attributes and classes. Set the data-app attribute to true on the highest element available (not including body), and the application application--{light|dark} classes.

The Dark or Light theme are not working.

Vuetify requires a mounting point in order to perform tasks such as theme styling. Ensure that you have a v-app wrapping your application. In the event that this is not possible, for whatever reason, you can mimic its behavior by applying data-app and class="application application--light (or dark)" to the highest element that you can within your application.

Menu/Dialog/Navigation drawer are not opening properly.

Ensure that your components are wrapped with a v-app element. If you are using an element to activate the component that is not placed into the activator slot, ensure that you stop propagation of the click event. These components utilize the v-outside-click directive and will immediately close.

The scrollbar is showing even though my content is not overflowing vertically.

Vuetify by default turns on the html scrollbar. This is a design choice and has been debated numerous times. There are pros and cons to having and not having it and as of now, the vote is in favor of leaving it as is. If you wish to disable this functionality, simply add html { overflow-y: auto } to your style file.

How to center vertically?

Apply the fill-height prop to v-container. This helper class normally only adds height: 100%, but for the container, it also looks for a child v-layout and applies the needed classes to vertically center the content.

My /_ link is active when I'm on _/home page

Add the exact to the link that points to absolute /. For more information on this, you can visit the official Vue router documentation.

My page on mobile is not responsive

Add the <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> to the <head> section in your index.html.

How do I use Font Awesome Icons or Material Design Icons (mdi)?

You must add the fonts to your index.html or otherwise import them into your project
MDI: Material Design Icons
FA: Font Awesome

My dialog closes immediately after clicking the button

When not using the activator slot for v-menu and v-dialog for example, you must manually stop the propagation of the click event. To do this, simply add the .stop modifier to the click event, `@click.stop="myMethod"`.

Relative images are not working in v-card , v-img and other custom vuetify components

Vue loader converts relative paths into require functions automatically for you. Unfortunately, this is not the case when it comes to custom components. You can circumvent this issue by using require.

<v-card :src="require('path/to/img/img.jpg')">

If you're using Vuetify as a Vue-CLI 3 plugin, you can edit your project's vue.config.js file by modifying the options for vue-loader.

// vue.config.js
module.exports = {
 chainWebpack: config => {
     .tap(options => Object.assign(options, {
           transformAssetUrls: {
              'v-img': ['src', 'lazy-src'],
               'v-card': 'src',
              'v-card-media': 'src',
              'v-responsive': 'src',
Have something that you think belongs here?