Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Cards
A card is a container for content.
We can add one with the v-card
component
For example, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-card class="mx-auto" max-width="344" outlined>
<v-list-item three-line>
<v-list-item-content>
<div class="overline mb-4">Foo</div>
<v-list-item-title class="headline mb-1">Headline</v-list-item-title>
<v-list-item-subtitle>Lorem ipsum</v-list-item-subtitle>
</v-list-item-content>
<v-list-item-avatar tile size="80" color="grey"></v-list-item-avatar>
</v-list-item>
<v-card-actions>
<v-btn text>Button</v-btn>
<v-btn text>Button</v-btn>
</v-card-actions>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
We add the v-card
with a v-list-item
for the content.
three-line
makes it display 3 lines.
v-list-item-avatar
has the avatar.
v-card-action
has the action buttons for the card.
We can use it for wrapping content.
For instance, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-card class="d-inline-block mx-auto">
<v-container>
<v-row justify="space-between">
<v-col cols="auto">
<v-img
height="200"
width="200"
src="https://placekitten.com/200/200"
></v-img>
</v-col>
<v-col cols="auto" class="text-center pl-0">
<v-row class="flex-column ma-0 fill-height" justify="center">
<v-col class="px-0">
<v-btn icon>
<v-icon>mdi-heart</v-icon>
</v-btn>
</v-col>
<v-col class="px-0">
<v-btn icon>
<v-icon>mdi-bookmark</v-icon>
</v-btn>
</v-col>
<v-col class="px-0">
<v-btn icon>
<v-icon>mdi-share-variant</v-icon>
</v-btn>
</v-col>
</v-row>
</v-col>
</v-row>
</v-container>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
We have the v-img
to display an image on the left side.
The v-img
is inside the v-col
We have the v-col
component on to display some buttons on the right side.
Information Card
We can add various kinds of text in a card with the v-card-text
component.
For instance, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-card class="mx-auto" max-width="344">
<v-card-text>
<div>Lorem ipsum</div>
<p class="display-1 text--primary">Lorem ipsum</p>
<p>Lorem ipsum</p>
<div class="text--primary">Lorem ipsum</div>
</v-card-text>
<v-card-actions>
<v-btn text color="deep-purple accent-4">Learn More</v-btn>
</v-card-actions>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({}),
};
</script>
We have the v-card-text
component to display some text that fits in the v-card
.
Conclusion
We can add cards with various kinds of content.