Easily change the colors of your application programmatically. Rebuild the default stylesheet and customize various aspects of the framework for your particular needs.
Discover and generate new color themes for your Vuetify applications using our Theme Generator tool.
Vuetify supports both light and dark variants of the Material Design spec. This designation starts at the root application component,
v-app and is supported by majority of components. By default, your application will use the light theme, but this can be easily overwritten by adding the dark option in the theme service.
When you designate a component as light or dark, all of its children will inherit and apply the same unless otherwise specified. You can manually turn dark on and off by changing
this.$vuetify.theme.dark to true or false.
By default, Vuetify has a standard theme applied for all components.
This can be easily changed. Simply pass a theme property to the Vuetify constructor. You can choose to modify all or only some of the theme properties, with the remaining inheriting from the default.
You can also use the pre-defined material colors.
By default, the theme service will use your application's primary color for anchor tags. You can override this by adding an anchor property to the theme:
Under the hood, Vuetify will generate css classes based upon these values that will be accessible in the DOM. These classes will follow the same markup as other helper classes,
secondary--text for example. If you supply an entire color object (as in
colors.purple above), the lighten/darken variations will be used directly instead of being generated.
These values will also be made available on the instance $vuetify object under the theme property. This allows you to dynamically modify your theme. Behind the scenes, Vuetify will regenerate and update your theme classes, seamlessly updating your application.
While Vuetify automatically generates lighten and darken variants for theme colors, you may want to control this yourself. Simply pass a theme object that contains the variants that you wish to modify. Anything not provided will still be generated for you.
You can now import your custom theme object and apply it to Vuetify
Below is a full list of the overwritable keys on the theme object:
You can disable theme functionality by using the disable property with a value of true. This will prevent the creation of the Vuetify stylesheet.
Vuetify generates theme styles at run-time for SPA's and server side for SSR applications. The generated styles will be placed in a
<style> tag with the id of vuetify-theme-stylesheet.
For SSR applications, you can pass a callback function to $vuetify.theme.options.minifyTheme to reduce the initial page size. When using this option, it is recommended to also use themeCache.
A custom caching object can be provided (works in tandem with minifyTheme) to increase SSR efficiency. The object must contain a get and a set method. Below is an example using LRU cache.
customProperties will also generate a css variable for each theme color, which you can then use in your components'
Pages with the
style-src CSP rules enabled may require a nonce to be specified for embedded style tags.
The Vuetify theme system is propagated through the provide functionality in Vue. There may be situations in which you need to manually change the provided theme (dark or light).
In this example, the bottom card inherits from the root of $vuetify.theme.dark.
Ready for more? Continue reading with: