'Creating an expandable element in scss and vue

I'm new to vue and am trying to take a component and allow it to take up all the space of other components when toggled. In this view I have a few components: a navbar, sidebar, hud, filtering, table, and histogram. I want to make the table expand to the full page when a button is clicked. Thoughts? I'm thinking I could do this in css, but I'm not entirely sure

Here's my setup:

<template lang="pug">
.Page
  SideBar(activeItem="Page")
  .Page__layout
    NavBar
    .Page__content
      PageHud(:update="updatePage")
      PageFiltering(:update="updatePage")
      PageTable(:loading="loading" :date="date")
      PageHistogram(:update="updatePage")
</template>

<script setup lang="ts">
//not relevant code to update the page)
</script>

<style lang="scss">
@import "../../views.mixins";

.Page {
  @include fullscreen_container_view;
  display: flex;
  flex-direction: row;

  &__layout {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
  }
  &__content {
    height: 100%;
    max-height: 100%;
    flex-grow: 1;
    display: grid;
    position: relative;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr);
    grid-template-rows: minmax(0, 1.5fr) minmax(0, 1.5fr);
    grid-template-areas:
      ". ."
      ". .";
    overflow: hidden scroll;

    @media (max-height: 900px) {
      height: 100%;
      max-height: 100%;
      flex-grow: 1;
      display: grid;
      position: relative;
      grid-template-columns: minmax(0, 1.75fr) minmax(0, 0.5fr);
      grid-template-rows: minmax(0, 0.5fr) minmax(0, 1fr);
      grid-template-areas:
        ". ."
        ". .";
      overflow: hidden scroll;
    }
    @media (max-height: 700px) {
      height: 100%;
      max-height: 100%;
      flex-grow: 1;
      display: grid;
      position: relative;
      grid-template-columns: minmax(0, 2.25fr) minmax(0, 0.75fr);
      grid-template-rows: minmax(0, 0.75fr) minmax(0, 1fr);
      grid-template-areas:
        ". ."
        ". .";
      overflow: hidden scroll;
    }
    @media (max-height: 568px) {
      height: 100%;
      max-height: 100%;
      flex-grow: 1;
      display: grid;
      position: relative;
      grid-template-columns: minmax(0%, 60%) minmax(0%, 100%);
      grid-template-rows: minmax(0%, 50%) minmax(0%, 50%);
      grid-template-areas:
        ". ."
        ". .";
      overflow: hidden scroll;
    }
  }
}
</style>


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source