Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Extended Toolbar
A toolbar can be extended with the extension
slot:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-card color="grey lighten-4" flat height="200px" tile>
<v-toolbar extended>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
Extension Height
The extension height can be changed with the extension-height
prop:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-card color="grey lighten-4" flat height="200px" tile>
<v-toolbar extended extension-height="150">
<v-app-bar-nav-icon></v-app-bar-nav-icon>
<v-toolbar-title>Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
Collapse
A toolbar can be collapsed to save space.
For example, we can write:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-card color="grey lighten-4" flat height="200px" tile>
<v-toolbar collapse>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
to add a collapsed toolbar with the collapse
prop.
Flexible Toolbar and Card Toolbar
We can make a flexible toolbar that’s added to cards.
For example, we can write:
<template>
<v-container>
<v-row class="text-center">
<v-col col="12">
<v-card flat>
<v-toolbar color="primary" dark extended flat>
<v-app-bar-nav-icon></v-app-bar-nav-icon>
</v-toolbar>
<v-card class="mx-auto" max-width="700" style="margin-top: -64px;">
<v-toolbar flat>
<v-toolbar-title class="grey--text">Title</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-apps</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-dots-vertical</v-icon>
</v-btn>
</v-toolbar>
<v-divider></v-divider>
<v-card-text style="height: 200px;"></v-card-text>
</v-card>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
We put the v-toolbar
in a v-card
to embed the toolbar on the card.
And we have another v-card
inside it with another v-toolbar
to display the toolbar content.
Conclusion
We can add toolbars to various containers with Vuetify.