0
I have the following code in my component:
HTML
<template>
  <div
    id="app"
    :class="[
      { 'hide-menu': !isMenuVisible || !user },
      { 'hide-header-footer': !user },
    ]"
  >
    <Header title="Placebet" v-if="user" />
    <Menu v-if="user" />
    <Content />
    <Footer v-if="user" />
  </div>
</template>
JS
import { mapState } from 'vuex';
import Header from '@/components/template/Header';
import Menu from '@/components/template/Menu';
import Content from '@/components/template/Content';
import Footer from '@/components/template/Footer';
export default {
  name: 'App',
  components: { Header, Menu, Content, Footer },
  computed: mapState(['isMenuVisible', 'user']),
}
CSS
<style>
#app {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  height: 100vh;
  display: grid;
  grid-template-rows: 60px 1fr 40px;
  grid-template-columns: 300px 1fr;
  grid-template-areas:
    'header header'
    'menu content'
    'menu footer';
  transition: all 1s;
}
#app.hide-menu {
  grid-template-areas:
    'header header'
    'content content'
    'footer footer';
}
#app.hide-header-footer {
  grid-template-areas:
    'content content'
    'content content'
    'content content';
}
</style>
Is it possible to add a transition to this grid switch? Using the Transition tag, I was able to make enter-active have the transition I chose, but when it came to hiding the menu, the transition did not work.