How to use animated material icons in vuetify
Solution 1
I found this page when I wanted to mimic the animation of the chevron icon when toggling the expansion panels within a v-menu icon. I am not sure if this is exactly what you needed, but this is how I've done it:
<template>
<v-menu offset-y v-model="menuValue">
<template v-slot:activator="{ on }">
<v-btn v-on="on" :class="{active: menuValue}">
<v-icon>mdi-chevron-down</v-icon>
</v-btn>
</template>
</v-menu>
</template>
<script>
export default {
data() {
return {
menuValue: null
};
}
};
</script>
<style lang="scss" scoped>
.v-btn.active .v-icon {
transform: rotate(-180deg);
}
</style>
Solution 2
The short answer is no. The v-icon
element currently renders icons from a webfont. Fonts cannot be animated in this way. You can apply simple fade, spin, scale, and flip animations to achieve a simple transition between two icons but the complex transitions you linked to in the Material Guidelines require much more work.
My recommendation is to use inline SVG icons which are available from the official icon set as well as the community driven icon set and animate between those using CSS animation, SMIL, or JavaScript.
Related videos on Youtube
vahdet
🌫️ <- This the air of mystery which I prefer to keep about very me.
Updated on June 04, 2022Comments
-
vahdet almost 2 years
By the
v-icon
component of Vuetify, using mainstream material design icons is quite straightforward like:<v-icon>home</v-icon>
Now, I wonder if animated material icons are supported and can be used in Vuetify in a similar fashion -I mean without having to add extra lines of css code etc. if possible.
In the examples, I have noticed the usage of
fa-spin
for Font Awesome; yet it is out of scope. I am bound to Google's material icons library.EDIT: The specific kind of behavior I need is in the video examples in transitions section here: https://material.io/design/iconography/animated-icons.html# [See how a
play
button becomespause
with a smooth animation when clicked].-
raina77ow over 5 yearsIf you only need to add some preset animation, adding the corresponding CSS from FontAwesome (with animation descriptions) might be enough (try adding
fa-spin
or similar classes to MD Icons on that demo page). But you may need something more -hover
animations, etc. - and that's not implemented even in FA yet.
-