Sidenav

Vue Bootstrap 5 Sidenav component

The side navigation component provides an easy way to navigate through your website. Its appearance & behaviour are easily adjustable with data-mdb-attributes and methods - additional functionality such as touch events and focus trap (in an over mode) are available out of the box.

Note: Read the API tab to find all available options and advanced customization

View full screen demo

Basic example

In the basic version, the side navigation will appear over your website's content after clicking on a toggler.

Note: Use v-model property on MDBSideNav to toggle navigation.

<template>
  <!-- Sidenav-->
  <MDBSideNav v-model="sidenav1" id="sidenav1">
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler -->
  <div class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenav1"
      @click="sidenav1 = !sidenav1"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler -->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBBtn,
      MDBIcon
    },
    setup() {
      const sidenav1 = ref(true);

      return {
        sidenav1
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenav1 = ref(true);
</script>

Positioning

While using the mode="side" and mode="push" properties, you can specify the contentSelector property for your page's content - this way, the component will automatically update paddings and margins.

Select mode:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc magna massa, ornare quis interdum a, cursus in quam. Quisque risus libero, cursus eget eros vitae, aliquam placerat velit. Vivamus luctus eros id sagittis luctus. Pellentesque felis nulla, rhoncus viverra nunc vitae, viverra aliquam ante. Ut feugiat mattis tempor.
<template>
  <div class="d-flex my-4">
    <MDBBtn
      @click="setMode('push')"
      :class="{
        btn: true,
        'btn-outline-primary': !(mode === 'push'),
        'btn-primary': mode === 'push',
        'me-3': true
      }"
    >
      Push
    </MDBBtn>
    <MDBBtn
      @click="setMode('side')"
      :class="{
        btn: true,
        'btn-outline-primary': !(mode === 'side'),
        'btn-primary': mode === 'side',
        'me-3': true
      }"
    >
      Side
    </MDBBtn>
    <MDBBtn
      @click="setMode('over')"
      :class="{
        btn: true,
        'btn-outline-primary': !(mode === 'over'),
        'btn-primary': mode === 'over',
        'me-3': true
      }"
    >
      Over
    </MDBBtn>
  </div>
  <section
    style="position: relative; overflow-y: hidden; min-height: 400px"
    class="border p-4 d-flex justify-content-center mb-4"
  >
    <!-- Sidenav-->
    <MDBSideNav
      v-model="sidenavPositions"
      id="sidenavPositions"
      absolute
      :mode="mode"
      contentSelector="#content"
    >
      <MDBSideNavMenu>
        <MDBSideNavItem>
          <MDBSideNavLink>
            <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
            <span>Link 1</span>
          </MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem collapse icon="grin" title="Category 1" show>
          <MDBSideNavItem>
            <MDBSideNavLink>Link 2</MDBSideNavLink>
          </MDBSideNavItem>
          <MDBSideNavItem>
            <MDBSideNavLink>Link 3</MDBSideNavLink>
          </MDBSideNavItem>
        </MDBSideNavItem>
        <MDBSideNavItem collapse icon="grin-wink" title="Category 2" show>
          <MDBSideNavItem>
            <MDBSideNavLink>Link 4</MDBSideNavLink>
          </MDBSideNavItem>
          <MDBSideNavItem>
            <MDBSideNavLink>Link 5</MDBSideNavLink>
          </MDBSideNavItem>
        </MDBSideNavItem>
      </MDBSideNavMenu>
    </MDBSideNav>
    <!-- Sidenav-->
    <!-- Content -->
    <div style="padding: 20px" class="text-center" id="content">
      <!-- Toggler -->
      <MDBBtn
        color="primary"
        aria-controls="#sidenavPositions"
        @click="sidenavPositions = !sidenavPositions"
      >
        <MDBIcon icon="bars" />
      </MDBBtn>
      <!-- Toggler -->
      <div class="d-flex my-5 text-start">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc
        magna massa, ornare quis interdum a, cursus in quam. Quisque risus
        libero, cursus eget eros vitae, aliquam placerat velit. Vivamus
        luctus eros id sagittis luctus. Pellentesque felis nulla, rhoncus
        viverra nunc vitae, viverra aliquam ante. Ut feugiat mattis
        tempor.
      </div>
    </div>
    <!-- Content -->
  </section>
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBBtn,
      MDBIcon
    },
    setup() {
      const sidenavPositions = ref(true);
      const mode = ref("over");
      const setMode = value => {
        mode.value = value;
      };

      return {
        sidenavPositions,
        mode,
        setMode
      };
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavPositions = ref(true);
  const mode = ref("over");
  const setMode = (value: string) => {
    mode.value = value;
  };
</script>

Colors example

Setting the color property will change the background and font color of active/hovered links and categories.

Note: This option works for MDB 5 main colors - primary, secondary, warning, danger, success, info, dark and light.

Select color:

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavColors"
    id="sidenavColors"
    :color="sidenavColor"
    contentSelector="#content"
    mode="side"
    closeOnEsc
  >
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Content -->
  <div class="my-3" id="content">
    <MDBBtn
      id="sidenav-primary"
      color="primary"
      v-on:click="setSidenavColor"
    >
      Primary
    </MDBBtn>
    <MDBBtn id="sidenav-secondary" color="secondary" v-on:click="setSidenavColor">
      Secondary
    </MDBBtn>
    <MDBBtn
      id="sidenav-warning"
      color="warning"
      v-on:click="setSidenavColor"
    >
      Warning
    </MDBBtn>
    <MDBBtn
      id="sidenav-danger"
      color="danger"
      v-on:click="setSidenavColor"
    >
      Danger
    </MDBBtn>
    <MDBBtn
      id="sidenav-success"
      color="success"
      v-on:click="setSidenavColor"
    >
      Success
    </MDBBtn>
    <MDBBtn
        id="sidenav-info"
        color="info"
        v-on:click="setSidenavColor"
    >
      Info
    </MDBBtn>
    <MDBBtn
      id="sidenav-dark"
      color="dark"
      v-on:click="setSidenavColor"
    >
      Dark
    </MDBBtn>
    <MDBBtn
      id="sidenav-light"
      color="light"
      v-on:click="setSidenavColor"
    >
      Light
    </MDBBtn>
  </div>
  <!-- Content -->
  <!-- Toggler-->
  <div style="padding: 20px" class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavColors"
      v-on:click="sidenavColors = !sidenavColors"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBBtn,
      MDBIcon
    },
    setup() {
      const sidenavColors = ref(true);
      const sidenavColor = ref("primary");
      const setSidenavColor = event => {
        sidenavColor.value = event.target.id.split("-")[1];
      };

      return {
        sidenavColors,
        sidenavColor,
        setSidenavColor
      };
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBBtn,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavColors = ref(true);
  const sidenavColor = ref("primary");
  const setSidenavColor = (event: Event) => {
    sidenavColor.value = (event.target as HTMLElement).id.split("-")[1];
  };
</script>

Dark example

When using the dark property to set darker background for the navigation, we recommend setting the color property to "light" for better contrast.

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavDark"
    id="sidenavDark"
    color="light"
    dark
  >
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler-->
  <div style="padding: 20px" class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavDark"
      @click="sidenavDark = !sidenavDark"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavDark = ref(true);

      return {
        sidenavDark
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenavDark = ref(true);
</script>

Inner scroll

Passing a scrollContainer property to a MDBSideNavMenu will initialize MDBScrollbar on this element (by default it's initialized on the MDBSideNav).

<template>
  <!-- Sidenav-->
  <MDBSideNav v-model="sidenavScroll" id="sidenavScroll">
    <div class="text-center">
      <h3 class="py-4">Examples</h3>
      <hr class="m-0" />
    </div>
    <MDBSideNavMenu scrollContainer>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 2</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 3</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 4</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 5</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 6</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 7</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 8</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <div class="text-center" style="min-height: 3rem">
      <hr class="mt-0 mb-2" />
      <small>mdbootstrap.com</small>
    </div>
  </MDBSideNav>
  <!-- Sidenav-->

  <!-- Toggler-->
  <div style="padding: 20px" class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavScroll"
      @click="sidenavScroll = !sidenavScroll"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavScroll = ref(true);

      return {
        sidenavScroll
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenavScroll = ref(true);
</script>

Slim example

Use slim and slimColapsed properties to manage slim mode for the MDBSideNav component. You can hide elements in the slim mode by setting sidenav-non-slim class on them or by adding nonSlim property if youo want to hide the title of collapsible MDBSideNavItem. Elements without this attribute will appear in both collapsed and non collapsed mode.

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavSlim"
    :slim="slim1"
    :slimCollapsed="!slimShow1 && !slimShow2"
    :backdrop="false"
    id="sidenavSlim"
  >
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="me-3" />
          <span class="sidenav-non-slim">Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem
        collapse
        icon="grin"
        title="Category 1"
        :nonSlim="slim1"
        :show="slimShow1"
        @click="slimShow1 = !slimShow1"
      >
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem
        collapse
        icon="grin-wink"
        title="Category 2"
        :nonSlim="slim1"
        :show="slimShow2"
        @click="slimShow2 = !slimShow2"
      >
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler-->
  <div class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavSlim"
      @click="sidenavSlim = !sidenavSlim"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
    <MDBBtn
      color="primary"
      aria-controls="#sidenavSlim"
      @click="
        () => {
          if (!slim1) {
            slimShow1 = false;
            slimShow2 = false;
          }
          slim1 = !slim1;
        }
      "
    >
      Toggle slim
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import { MDBSideNav, MDBSideNavMenu, MDBSideNavItem, MDBSideNavLink, MDBIcon, MDBBtn } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const slim1 = ref(true);
      const sidenavSlim = ref(true);
      const slimShow1 = ref(false);
      const slimShow2 = ref(false);

      return {
        slim1,
        sidenavSlim,
        slimShow1,
        slimShow2
      }
    }
  };
</script>
<script setup lang="ts">
  import { MDBSideNav, MDBSideNavMenu, MDBSideNavItem, MDBSideNavLink, MDBIcon, MDBBtn } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const slim1 = ref(true);
  const sidenavSlim = ref(true);
  const slimShow1 = ref(false);
  const slimShow2 = ref(false);
</script>

Accordion example

Using accordion property on MDBSideNavMenu will allow expanding only one category at once.

<template>
  <!-- Sidenav-->
  <MDBSideNav v-model="sidenavAccordion" id="sidenavAccordion">
    <MDBSideNavMenu accordion>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler-->
  <div style="padding: 20px" class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavAccordion"
      @click="sidenavAccordion = !sidenavAccordion"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavAccordion = ref(true);

      return {
        sidenavAccordion
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenavAccordion = ref(true);
</script>

Groups

You can use more than one menu inside the side navigation - in this case, accordions will be independent of one another.

<template>
  <!-- Sidenav-->
  <MDBSideNav v-model="sidenavGroups" id="sidenavGroups">
    <MDBSideNavMenu accordion>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <hr />
    <MDBSideNavMenu accordion>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 6</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 3">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 7</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 8</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 4">
        <MDBSideNavItem>
          <MDBSideNavLink>Link 9</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 10</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler-->
  <div style="padding: 20px" class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavGroups"
      @click="sidenavGroups = !sidenavGroups"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavGroups = ref(true);

      return {
        sidenavGroups
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenavGroups = ref(true);
</script>

Right

Place the navigation on the other side by setting the right property on MDBSideNav.

<template>
  <!-- Sidenav-->
  <MDBSideNav v-model="sidenavRight" right id="sidenavRight">
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon iconStyle="far" icon="smile" class="fa-fw me-3" />
          <span>Link 1</span>
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin" title="Category 1" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 2</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 3</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="grin-wink" title="Category 2" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 4</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Link 5</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Toggler-->
  <div class="text-center">
    <MDBBtn
      color="primary"
      aria-controls="#sidenavRight"
      @click="sidenavRight = !sidenavRight"
    >
      <MDBIcon icon="bars" />
    </MDBBtn>
  </div>
  <!-- Toggler-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavRight = ref(true);

      return {
        sidenavRight,
      }
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from 'vue';

  const sidenavRight = ref(true);
</script>

Full-screen examples

The following examples show various settings of the side navigation component in a full-screen mode.


1. Basic side navigation

Click the toggler to show the navigation (over mode).

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavBasic"
    id="sidenavBasic"
    contentSelector="#page-content"
    :closeOnEsc="true"
    :backdrop="true"
    backdropStyle="position: fixed"
  >
    <div class="mt-4">
      <div id="header-content" class="ps-3">
        <img
          src="https://mdbootstrap.com/img/Photos/Avatars/img%20(23).webp"
          alt="avatar"
          class="rounded-circle img-fluid mb-3"
          style="max-width: 50px;"
        />

        <h4>
          <span style="white-space: nowrap;">Ann Smith</span>
        </h4>
        <p>ann_s@mdbootstrap.com</p>
      </div>
      <hr class="mb-0" />
    </div>
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink href="/">
          <MDBIcon icon="envelope" class="fas fa-fw me-3"/>
          Inbox
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="paper-plane" class="fas fa-fw me-3"/>
          Outbox
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse title="Contacts" icon="address-book">
        <MDBSideNavItem>
          <MDBSideNavLink>Family</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink
            href="/previews/mdb-ui-kit/sidenav/2.html"
          >
            Friends
          </MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Work</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="file" class="fas fa-fw me-3"/>
          Drafts
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="heart" class="fas fa-fw me-3"/>
          Favourites
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="star" class="fas fa-fw me-3"/>
          Starred
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="trash" class="fas fa-fw me-3"/>
          Trash
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="ban" class="fas fa-fw me-3"/>
          Spam
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse title="Categories" icon="tag" show>
        <MDBSideNavItem>
          <MDBSideNavLink>Social</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Notifications</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Recent</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Uploads</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Backups</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Offers</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="sticky-note" class="fas fa-fw me-3"/>
          Notes
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user-circle" class="fas fa-fw me-3"/>
          Personal
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="ellipsis-h" class="fas fa-fw me-3"/>
          More
        </MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <hr class="m-0" />
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="cogs" class="fas fa-fw me-3"/>
          Settings
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user" class="fas fa-fw me-3"/>
          Profile
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="shield-alt" class="fas fa-fw me-3"/>
          Privacy
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user-astronaut" class="fas fa-fw me-3"/>
          Logout
        </MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <div class="text-center" style="height: 100px;">
      <hr class="mb-4 mt-0" />
      <p>MDBootstrap.com</p>
    </div>
  </MDBSideNav>

  <div class="text-center page-intro bg-light" id="page-content">
    <div class="text-center py-5">
      <MDBBtn
        color="primary"
        aria-controls="#sidenavBasic"
        @click="sidenavBasic = !sidenavBasic"
        class="m-5"
      >
        <MDBIcon icon="bars" />
      </MDBBtn>
      <div>
        <img
          class="rounded"
          style="max-width: 80%"
          src="https://mdbootstrap.com/img/Photos/Others/img%20(45).webp"
        />
      </div>
    </div>
  </div>
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavBasic = ref(true);

      return {
        sidenavBasic
      };
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavBasic = ref(true);
</script>
<style>
  .page-intro {
    width: 100%;
    height: 100vh;
  }
</style>

2. Side navigation with a mode transition

Resize the window to change the mode from side to over.

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavMode"
    id="sidenavMode"
    :modeBreakpoint="900"
    :side="side"
    :over="over"
    contentSelector="#page-content"
    :closeOnEsc="true"
    backdropStyle="position: fixed"
  >
    <div class="mt-4">
      <div id="header-content" class="ps-3">
        <img
          src="https://mdbootstrap.com/img/Photos/Avatars/img%20(23).webp"
          alt="avatar"
          class="rounded-circle img-fluid mb-3"
          style="max-width: 50px;"
        />

        <h4>
          <span style="white-space: nowrap;">Ann Smith</span>
        </h4>
        <p>ann_s@mdbootstrap.com</p>
      </div>
      <hr class="mb-0" />
    </div>
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink href="/">
          <MDBIcon icon="envelope" class="fas fa-fw me-3"/>
          Inbox
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="paper-plane" class="fas fa-fw me-3"/>
          Outbox
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="address-book" title="Contacts">
        <MDBSideNavItem>
          <MDBSideNavLink>Family</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink href="/previews/mdb-ui-kit/sidenav/2.html">
            Friends
          </MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Work</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="file" class="fas fa-fw me-3"/>
          Drafts
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="heart" class="fas fa-fw me-3"/>
          Favourites
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="star" class="fas fa-fw me-3"/>
          Starred
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="trash" class="fas fa-fw me-3"/>
          Trash
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="ban" class="fas fa-fw me-3"/>
          Spam
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem collapse icon="tag" title="Categories">
        <MDBSideNavItem>
          <MDBSideNavLink>Social</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Notifications</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Recent</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Uploads</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Backups</MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem>
          <MDBSideNavLink>Offers</MDBSideNavLink>
        </MDBSideNavItem>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="sticky-note" class="fas fa-fw me-3"/>
          Notes
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user-circle" class="fas fa-fw me-3"/>
          Personal
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="ellipsis-h" class="fas fa-fw me-3"/>
          More
        </MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <hr class="m-0" />
    <MDBSideNavMenu>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="cogs" class="fas fa-fw me-3"/>
          Settings
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user" class="fas fa-fw me-3"/>
          Profile
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="shield-alt" class="fas fa-fw me-3"/>
          Privacy
        </MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem>
        <MDBSideNavLink>
          <MDBIcon icon="user-astronaut" class="fas fa-fw me-3"/>
            Logout
        </MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
    <div class="text-center" style="height: 100px;">
      <hr class="mb-4 mt-0" />
      <p>MDBootstrap.com</p>
    </div>
  </MDBSideNav>
  <!-- Sidenav-->
  <!-- Content-->
  <div class="text-center page-intro bg-light" id="page-content">
    <div class="text-center py-5">
      <h3 class="my-5">Resize to change the mode</h3>
      <div>
        <img
          class="rounded"
          style="max-width: 80%"
          src="https://mdbootstrap.com/img/Photos/Others/img%20(53).webp"
        />
      </div>
      <!-- Toggler-->
      <MDBBtn
        class="mt-5"
        color="dark"
        aria-controls="#sidenavMode"
        @click="sidenavMode = !sidenavMode"
      >
        <MDBIcon icon="bars" />
      </MDBBtn>
      <!-- Toggler-->
    </div>
  </div>
  <!-- Content-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon,
      MDBBtn
    },
    setup() {
      const sidenavMode = ref(true);
      const side = ref(true);
      const over = ref(false);

      return {
        sidenavMode,
        side,
        over
      };
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon,
    MDBBtn
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavMode = ref(true);
  const side = ref(true);
  const over = ref(false);
</script>
<style>
  .page-intro {
    background-size: cover;
    background-position-x: center;
    background-color: white;
    width: 100vw;
    height: 100vh;
  }
</style>

3. Slim side navigation (dark)

Non-expandable slim sidenav with a dark background and custom width.

<template>
  <!-- Sidenav-->
  <MDBSideNav
    v-model="sidenavSlimDark"
    id="sidenavSlimDark"
    contentSelector="#page-content"
    :slim="true"
    :slimCollapsed="true"
    :slimWidth="90"
    color="light"
    dark
    :backdrop="false"
  >
    <div class="text-center mt-4">
      <a class="ripple rounded-circle" data-mdb-color="light" href="#">
        <img
          src="https://mdbootstrap.com/img/Photos/Avatars/img%20(29).webp"
          alt="avatar"
          class="rounded-circle img-fluid"
          style="max-width: 60px;"
        />
      </a>
    </div>
    <hr />
    <MDBSideNavMenu>
      <MDBSideNavItem class="my-3">
        <MDBSideNavLink class="p-0 d-flex justify-content-center">
          <MDBIcon iconStyle="far" icon="heart" size="2x"></MDBIcon
        ></MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem class="my-3">
        <MDBSideNavLink class="p-0 d-flex justify-content-center">
          <MDBIcon iconStyle="far" icon="envelope" size="2x"></MDBIcon
        ></MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem class="my-3">
        <MDBSideNavLink class="p-0 d-flex justify-content-center">
          <MDBIcon iconStyle="far" icon="user" size="2x"></MDBIcon
        ></MDBSideNavLink>
      </MDBSideNavItem>
      <MDBSideNavItem class="my-3">
        <MDBSideNavLink class="p-0 d-flex justify-content-center">
          <MDBIcon icon="cogs" size="2x"></MDBIcon
        ></MDBSideNavLink>
      </MDBSideNavItem>
    </MDBSideNavMenu>
  </MDBSideNav>
  <!-- Sidenav-->

  <!-- Content-->
  <div id="content" class="page-intro">
    <div class="mask p-4 text-center">
      <h1>Natalie Smith</h1>
      <h2>Portfolio</h2>
    </div>
  </div>
  <!-- Content-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBIcon
    },
    setup() {
      const sidenavSlimDark = ref(true);

      return {
        sidenavSlimDark
      };
    }
  };
  </script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBIcon
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavSlimDark = ref(true);
  </script>
<style>
  .page-intro {
    background-image: url("https://mdbootstrap.com/img/Photos/Others/img%20(52).webp");
    background-size: cover;
    background-position-x: center;
    background-color: white;
    width: 100vw;
    height: 100vh;
  }

  .mask {
    background-color: rgba(66, 66, 66, 0.4);
    width: 100%;
    height: 100%;
    color: rgba(255, 255, 255, 0.8);
  }

  .mask h1 {
    margin-top: 220px;
    font-size: 6rem;
  }

  .mask h2 {
    font-size: 2.8rem;
  }

  @media (max-width: 500px) {
    .mask h1 {
      font-size: 4rem;
    }

    .mask h2 {
      font-size: 2rem;
    }
  }
</style>

4. MDB Navigation

Navigation template based on MDB documentation with the following settings:

  • Hidden on screens smaller then 1400px
  • padding-left: 240px added via CSS to the header and main on the screens larger then 1400px to push the content out of the sidenav area
  • Sidenav toggler added to the Navbar and hidden on screen larger then 1400px
  • On screens smaller then 1400px sidenav mode changes from side to over.
<template>
  <!-- Main navigation -->
  <header>
    <!-- Sidenav-->
    <MDBSideNav
      v-model="sidenavMDB"
      id="sidenavMDB"
      contentSelector="#page-content"
      :modeBreakpoint="1400"
      :closeOnEsc="true"
      backdropStyle="position: fixed"
    >
      <div class="d-flex justify-content-center py-4">
        <img
          id="MDB-logo"
          src="https://mdbootstrap.com/wp-content/uploads/2018/06/logo-mdb-jquery-small.webp"
          alt="MDB Logo"
          draggable="false"
        />
      </div>
      <MDBSideNavMenu accordion>
        <MDBSideNavItem>
          <MDBSideNavLink href="/">
            <MDBIcon icon="chart-area" class="fa-fw me-3"/>
            Website Traffic
          </MDBSideNavLink>
        </MDBSideNavItem>
        <MDBSideNavItem collapse icon="cogs" title="Settings">
          <MDBSideNavItem>
            <MDBSideNavLink>Profile</MDBSideNavLink>
          </MDBSideNavItem>
          <MDBSideNavItem>
            <MDBSideNavLink>Account</MDBSideNavLink>
          </MDBSideNavItem>
        </MDBSideNavItem>
        <MDBSideNavItem collapse icon="lock" title="Password">
          <MDBSideNavItem>
            <MDBSideNavLink>Request password</MDBSideNavLink>
          </MDBSideNavItem>
          <MDBSideNavItem>
            <MDBSideNavLink>Reset password</MDBSideNavLink>
          </MDBSideNavItem>
        </MDBSideNavItem>
      </MDBSideNavMenu>
    </MDBSideNav>
    <!-- Sidenav-->

    <!-- Navbar-->
    <MDBNavbar expand="lg" light bg="light" container id="main-navbar">
      <MDBNavbarToggler @click="sidenavMDB = !sidenavMDB" target="#sidenavMDB">
        <MDBIcon icon="bars" />
      </MDBNavbarToggler>
      <MDBRow class="g-3 ms-1 align-items-center">
        <MDBCollapse>
          <MDBInput
            wrapperClass="col-auto"
            label='Search (ctrl + "/" to focus)'
            v-model="input1"
          />
          <MDBCol auto>
            <a class="ms-3" href="#!" role="button" style="color: #616161;">
              <MDBIcon icon="search"></MDBIcon>
            </a>
          </MDBCol>
        </MDBCollapse>
      </MDBRow>

      <MDBNavbarNav right class="d-flex flex-row">
        <!-- Navbar dropdown -->
        <MDBDropdown v-model="dropdown1" class="nav-item me-3 me-lg-0">
          <MDBDropdownToggle
            tag="a"
            class="nav-link"
            @click="dropdown1 = !dropdown1"
          >
            <MDBIcon icon="bell" />
            <MDBBadge notification color="danger" pill>1</MDBBadge>
          </MDBDropdownToggle>
          <MDBDropdownMenu>
            <MDBDropdownItem href="#">Action</MDBDropdownItem>
            <MDBDropdownItem href="#">Another Action</MDBDropdownItem>
            <MDBDropdownItem href="#">Something else here</MDBDropdownItem>
          </MDBDropdownMenu>
        </MDBDropdown>
        <MDBNavbarItem href="#" class="me-3 me-lg-0">
          <MDBIcon icon="fill-drip" />
        </MDBNavbarItem>
        <MDBNavbarItem href="#" class="me-3 me-lg-0">
          <MDBIcon iconStyle="fab" icon="github" />
        </MDBNavbarItem>

        <MDBDropdown v-model="dropdown2" class="nav-item me-3 me-lg-0">
          <MDBDropdownToggle
            tag="a"
            class="nav-link"
            @click="dropdown2 = !dropdown2"
          >
            <i class="flag flag-united-kingdom"></i>
          </MDBDropdownToggle>
          <MDBDropdownMenu>
            <MDBDropdownItem href="#">
              <i class="flag-united-kingdom flag"></i>English
              <i class="flag flag-united-kingdom"></i>
            </MDBDropdownItem>
            <MDBDropdownItem divider />
            <MDBDropdownItem href="#">
              <i class="flag flag-poland"></i>Polski
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-china"></i>中文
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-japan"></i>日本語
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-germany"></i>Deutsch
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-france"></i>Français
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-spain"></i>Español
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-russia"></i>Русский
            </MDBDropdownItem>
            <MDBDropdownItem href="#">
              <i class="flag flag-portugal"></i>Português
            </MDBDropdownItem>
          </MDBDropdownMenu>
        </MDBDropdown>
        <MDBDropdown v-model="dropdown3" class="nav-item me-3 me-lg-0">
          <MDBDropdownToggle
            tag="a"
            class="nav-link"
            @click="dropdown3 = !dropdown3"
          >
            <img
              src="https://mdbootstrap.com/img/Photos/Avatars/img (31).webp"
              class="rounded-circle"
              height="22"
              alt=""
              loading="lazy"
            />
          </MDBDropdownToggle>
          <MDBDropdownMenu>
            <MDBDropdownItem href="#">My profile</MDBDropdownItem>
            <MDBDropdownItem href="#">Settings</MDBDropdownItem>
            <MDBDropdownItem href="#">Logout</MDBDropdownItem>
          </MDBDropdownMenu>
        </MDBDropdown>
      </MDBNavbarNav>
    </MDBNavbar>
    <!-- Navbar-->
  </header>
  <!-- Main navigation -->

  <!--Main layout-->
  <main style="margin-top: 58px" id="page-content">
    <div class="container"></div>
  </main>
  <!--Main layout-->

  <!--Footer-->
  <footer></footer>
  <!--Footer-->
</template>
<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBCollapse,
    MDBIcon,
    MDBNavbar,
    MDBNavbarNav,
    MDBNavbarItem,
    MDBNavbarToggler,
    MDBDropdown,
    MDBDropdownToggle,
    MDBDropdownMenu,
    MDBDropdownItem,
    MDBInput,
    MDBBadge,
    MDBRow,
    MDBCol
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  export default {
    components: {
      MDBSideNav,
      MDBSideNavMenu,
      MDBSideNavItem,
      MDBSideNavLink,
      MDBCollapse,
      MDBIcon,
      MDBNavbar,
      MDBNavbarNav,
      MDBNavbarItem,
      MDBNavbarToggler,
      MDBDropdown,
      MDBDropdownToggle,
      MDBDropdownMenu,
      MDBDropdownItem,
      MDBInput,
      MDBBadge,
      MDBRow,
      MDBCol
    },
    setup() {
      const sidenavMDB = ref(true);
      const dropdown1 = ref(false);
      const dropdown2 = ref(false);
      const dropdown3 = ref(false);
      const input1 = ref("");

      return {
        sidenavMDB,
        dropdown1,
        dropdown2,
        dropdown3,
        input1
      };
    }
  };
</script>
<script setup lang="ts">
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
    MDBCollapse,
    MDBIcon,
    MDBNavbar,
    MDBNavbarNav,
    MDBNavbarItem,
    MDBNavbarToggler,
    MDBDropdown,
    MDBDropdownToggle,
    MDBDropdownMenu,
    MDBDropdownItem,
    MDBInput,
    MDBBadge,
    MDBRow,
    MDBCol
  } from "mdb-vue-ui-kit";
  import { ref } from "vue";

  const sidenavMDB = ref(true);
  const dropdown1 = ref(false);
  const dropdown2 = ref(false);
  const dropdown3 = ref(false);
  const input1 = ref("");
</script>
<style>
  .page-intro {
    background-size: cover;
    background-position-x: center;
    background-color: white;
    width: 100vw;
    height: 100vh;
  }

  @media (min-width: 1400px) {
    main,
    #main-navbar {
      padding-left: 240px;
    }
  }
</style>

Sidenav - API


Import

<script>
  import {
    MDBSideNav,
    MDBSideNavMenu,
    MDBSideNavItem,
    MDBSideNavLink,
  } from 'mdb-vue-ui-kit';
</script>

Properties

SideNav

Name Type Default Description Example
absolute Boolean false Sets position absolute on MDBSideNav component. When using absolute place sidenav component inside fixed height wrapper. <MDBSideNav absolute />
backdrop Boolean true Adds/removes a backdrop in an over mode <MDBSideNav :backdrop="false" />
backdropClass String - Adds backdrop custom class <MDBSideNav backdropClass="backdrop classes" />
backdropStyle String - Adds backdrop custom style <MDBSideNav backdropStyle="z-index: 1000" />
color String "primary" Changes a color of active/hovered links and categories <MDBSideNav color="secondary" />
closeOnEsc Boolean false Closes a side drawer on ESC key (only when toggler is visible) <MDBSideNav :closeOnEsc="true" />
dark Boolean false Changes the MDBSideNav template to dark <MDBSideNav dark />
expandOnHover Boolean false Expands/collapses slim mode on mouseover / mouseleave <MDBSideNav :expandOnHover="true" />
light Boolean false Changes the MDBSideNav template to light <MDBSideNav light />
mode String 'over Changes the MDBSideNav position mode. Accepted values : "over | side | push" <MDBSideNav mode="side" />
modeBreakpoint Number CDefines breakpoint for change MDBSideNav mode from side to over <MDBSideNav :modeBreakpoint="1400" />
relative Boolean false Sets position relative on MDBSideNav component. When using relative place sidenav component inside fixed height wrapper. <MDBSideNav relative />
right Boolean false Sets the MDBSideNav on the right side of the window instead of the left <MDBSideNav right />
scrollLock Boolean false Allows to block scroll while MDBSideNav is active. <MDBSideNav :scrollLock="sidenavToggler" />
sidenavWidth Number 240 Changes the width of the MDBSideNav <MDBSideNav :sidenavWidth="90" />
slim Boolean false Changes the MDBSideNav mode to slim <MDBSideNav :slim="true" />
slimCollapsed Boolean false Initializes a component in a slim mode <MDBSideNav :slimCollapsed="true" />
slimWidth Number 60 Changes the width of the slim MDBSideNav <MDBSideNav :slimWidth="90" />
tag String 'nav' Defines tag of the MDBSideNav element <MDBSideNav tag="div" />
v-model String false Opens / closes side navigation <MDBSideNav v-model="true" />

SideNav Menu

Name Type Default Description Example
accordion Boolean 'false' Enables accordion behaviour in a navigation container <MDBSideNavMenu accordion />
scrollContainer Boolean 'false' Enables MDBScrollbar for MDBSideNavMenu component <MDBSideNavMenu scrollContainer />
tag String 'ul' Defines tag of the MDBSideNavMenu element <MDBSideNavMenu tag="div" />
filter Boolean false Adds search bar. <MDBSideNavMenu filter />

SideNav Item

Name Type Default Description Example
tag String 'li' Defines tag of the MDBSideNavItem element <MDBSideNavItem tag="div" />

CSS variables

As part of MDB’s evolving CSS variables approach, sidenav now use local CSS variables on .sidenav and .sidenav-backdrop for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.

Sidenav CSS variables are in different classes which belong to this component. To make it easier to use them, you can find below all of the used CSS variables.

// .sidenav
--#{$prefix}sidenav-transform: #{$sidenav-transform};
--#{$prefix}sidenav-zindex: #{$sidenav-zindex};
--#{$prefix}sidenav-background-color: #{$sidenav-background-color};
--#{$prefix}sidenav-width: #{$sidenav-width};
--#{$prefix}sidenav-height: #{$sidenav-height};
--#{$prefix}sidenav-box-shadow: #{$sidenav-box-shadow};
--#{$prefix}sidenav-data-hidden-false-transform: #{$sidenav-data-hidden-false-transform};
--#{$prefix}sidenav-data-color-light-color: #{$sidenav-data-color-light-color};
--#{$prefix}sidenav-data-right-true-transform: #{$sidenav-data-right-true-transform};
--#{$prefix}sidenav-data-slim-collapsed-true-width: #{$sidenav-data-slim-collapsed-true-width};
--#{$prefix}sidenav-menu-padding: #{$sidenav-menu-padding};
--#{$prefix}sidenav-collapse-sidenav-link-font-size: #{$sidenav-collapse-sidenav-link-font-size};
--#{$prefix}sidenav-collapse-sidenav-link-height: #{$sidenav-collapse-sidenav-link-height};
--#{$prefix}sidenav-link-font-size: #{$sidenav-link-font-size};
--#{$prefix}sidenav-link-padding-y: #{$sidenav-link-padding-y};
--#{$prefix}sidenav-link-padding-x: #{$sidenav-link-padding-x};
--#{$prefix}sidenav-link-height: #{$sidenav-link-height};
--#{$prefix}sidenav-link-border-radius: #{$sidenav-link-border-radius};
--#{$prefix}sidenav-link-transition: #{$sidenav-link-transition};
--#{$prefix}sidenav-link-hover-background-color: #{$sidenav-link-hover-background-color};
--#{$prefix}sidenav-link-active-focus-background-color: #{$sidenav-link-active-focus-background-color};
--#{$prefix}sidenav-link-active-color: #{$sidenav-link-active-color};
--#{$prefix}sidenav-subheading-font-size: #{$sidenav-subheading-font-size};
--#{$prefix}sidenav-subheading-padding-y: #{$sidenav-subheading-padding-y};
--#{$prefix}sidenav-subheading-padding-x: #{$sidenav-subheading-padding-x};
--#{$prefix}sidenav-subheading-fw: #{$sidenav-subheading-fw};
--#{$prefix}sidenav-sm-link-pt: #{$sidenav-sm-link-pt};
--#{$prefix}sidenav-sm-link-pb: #{$sidenav-sm-link-pb};
--#{$prefix}sidenav-rotate-icon-margin-right: #{$sidenav-rotate-icon-margin-right};
--#{$prefix}sidenav-rotate-icon-transition: #{$sidenav-rotate-icon-transition};
--#{$prefix}sidenav-light-color: #{$sidenav-light-color};

// .sidenav-backdrop
--#{$prefix}sidenav-backdrop-zindex: #{$sidenav-backdrop-zindex};
--#{$prefix}sidenav-backdrop-background-color: #{$sidenav-backdrop-background-color};

SCSS variables

$sidenav-zindex: 1035;
$sidenav-backdrop-zindex: 1034;

$sidenav-transform: translateX(-100%);
$sidenav-background-color: $white;
$sidenav-width: 240px;
$sidenav-height: 100vh;
$sidenav-box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.05);

$sidenav-data-hidden-false-transform: translateX(0%);
$sidenav-data-color-light-color: rgba(255, 255, 255, 0.6);
$sidenav-data-right-true-transform: translateX(100%);
$sidenav-data-slim-collapsed-true-width: 77px;

$sidenav-menu-padding: 0.2rem;

$sidenav-collapse-sidenav-link-font-size: 0.78rem;
$sidenav-collapse-sidenav-link-height: 1.5rem;
$sidenav-collapse-sidenav-link-padding-left: 3rem;

$sidenav-link-font-size: 0.89rem;
$sidenav-link-padding-y: 1rem;
$sidenav-link-padding-x: 1.5rem;
$sidenav-link-height: 3rem;
$sidenav-link-border-radius: 5px;
$sidenav-link-transition: all 0.3s linear;

$sidenav-link-hover-color: $primary;
$sidenav-link-hover-background-color: #f6f9fc;

$sidenav-link-active-focus-color: $sidenav-link-hover-color;
$sidenav-link-active-focus-background-color: $sidenav-link-hover-background-color;
$sidenav-link-active-color: $sidenav-link-hover-color;

$sidenav-rotate-icon-margin-right: 0.8rem;
$sidenav-rotate-icon-transition: transform 0.3s;

$sidenav-backdrop-background-color: rgba(0, 0, 0, 0.1);

$sidenav-light-color: $sidenav-data-color-light-color;

$sidenav-subheading-font-size: 0.6rem;
$sidenav-subheading-padding-y: 1rem;
$sidenav-subheading-padding-x: 1.5rem;
$sidenav-subheading-fw: 700;

$sidenav-sm-link-pt: 0.4rem;
$sidenav-sm-link-pb: $sidenav-sm-link-pt;