Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Snackbar Timeout
We can add a timeout
prop to our snackbar to change when it closes automatically:
<template>
<div class="text-center">
<v-btn dark color="red darken-2" @click="snackbar = true">Open Snackbar</v-btn>
<v-snackbar v-model="snackbar" :multi-line="multiLine" :timeout="3000">
{{ text }}
<template v-slot:action="{ attrs }">
<v-btn color="red" text v-bind="attrs" @click="snackbar = false">Close</v-btn>
</template>
</v-snackbar>
</div>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
multiLine: true,
snackbar: false,
text:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi a neque arcu. Phasellus ac tincidunt elit.",
}),
};
</script>
The timeout is in milliseconds.
Vertical Snackbar
We can make a snackbar vertical with the vertical
property.
For example, we can write:
<template>
<div class="text-center">
<v-btn dark color="red darken-2" @click="snackbar = true">Open Snackbar</v-btn>
<v-snackbar v-model="snackbar" :multi-line="multiLine" vertical>
{{ text }}
<template v-slot:action="{ attrs }">
<v-btn color="red" text v-bind="attrs" @click="snackbar = false">Close</v-btn>
</template>
</v-snackbar>
</div>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
multiLine: true,
snackbar: false,
text:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi a neque arcu. Phasellus ac tincidunt elit.",
}),
};
</script>
Now the Close button will be displayed below the text.
Variants
Snackbars have different variants. We can add the text
, shaped
, or outlined
props to change the snackbar variant.
For example, we can write:
<template>
<div class="text-center">
<v-btn dark color="red darken-2" @click="snackbar = true">Open Snackbar</v-btn>
<v-snackbar v-model="snackbar" :multi-line="multiLine" rounded="pill">
{{ text }}
<template v-slot:action="{ attrs }">
<v-btn color="red" text v-bind="attrs" @click="snackbar = false">Close</v-btn>
</template>
</v-snackbar>
</div>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
multiLine: true,
snackbar: false,
text:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi a neque arcu. Phasellus ac tincidunt elit.",
}),
};
</script>
We added the rounded
prop with value pill
to make the corners rounded.
Sparklines
A sparkline is a small graph that we can display.
We can add a sparkline with the v-sparkline
component:
<template>
<v-container fluid>
<v-sparkline
:fill="fill"
:gradient="gradient"
:line-width="width"
:padding="padding"
:smooth="radius || false"
:value="value"
auto-draw
></v-sparkline>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
gradient: ["red", "orange", "yellow"],
padding: 8,
radius: 10,
value: [0, 2, 5, 9, 5, 10, 3, 5, 0, 0, 1, 8, 2, 9, 0],
width: 2,
}),
};
</script>
We have the gradient
prop with the color of the gradient of the graph.
The value
prop has the values for the y-coordinates of the line.
line-width
is the width of the line.
padding
is the padding of the graph.
smooth
is the border radius of the line.
All the lengths are in pixels.
Conclusion
We can add a sparkline to display a graph.
Snaackbars have various options we can change.