<header class="header" id="header">
   <section class="wrapper container">
      <a href="./index.html" class="brand">Brand</a>
      <div class="burger" id="burger">
         <span class="burger-line"></span>
         <span class="burger-line"></span>
         <span class="burger-line"></span>
      </div>
      <span class="overlay"></span>
      <nav class="navbar" id="navbar">
         <ul class="menu" id="menu">
            <li class="menu-item"><a href="#" class="menu-link">Home</a></li>
            <li class="menu-item menu-dropdown">
               <span class="menu-link" data-toggle="submenu">Feature<i class="bx bx-chevron-down"></i></span>
               <ul class="submenu">
                  <li class="submenu-item"><a href="#" class="submenu-link">Feature Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Feature Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Feature Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Feature Link</a></li>
               </ul>
            </li>
            <li class="menu-item menu-dropdown">
               <span class="menu-link" data-toggle="submenu">Discover<i class="bx bx-chevron-down"></i></span>
               <ul class="submenu">
                  <li class="submenu-item"><a href="#" class="submenu-link">Discover Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Discover Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Discover Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Discover Link</a></li>
               </ul>
            </li>
            <li class="menu-item menu-dropdown">
               <span class="menu-link" data-toggle="submenu">Resource<i class="bx bx-chevron-down"></i></span>
               <ul class="submenu">
                  <li class="submenu-item"><a href="#" class="submenu-link">Resource Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Resource Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Resource Link</a></li>
                  <li class="submenu-item"><a href="#" class="submenu-link">Resource Link</a></li>
               </ul>
            </li>
            <li class="menu-item"><a href="#" class="menu-link">Support</a></li>
         </ul>
      </nav>
   </section>
</header>
:root {
   --color-white-100: hsl(206, 5%, 100%);
   --color-white-200: hsl(206, 5%, 90%);
   --color-white-300: hsl(206, 5%, 80%);
   --color-white-400: hsl(206, 5%, 60%);
   --color-white-500: hsl(206, 5%, 50%);

   --color-black-100: hsl(213, 23%, 8%);
   --color-black-200: hsl(214, 21%, 6%);
   --color-black-300: hsl(210, 21%, 6%);
   --color-black-400: hsl(216, 22%, 4%);
   --color-black-500: hsl(220, 18%, 3%);

   --color-pink-100: hsl(326, 85%, 90%);
   --color-pink-200: hsl(327, 87%, 80%);
   --color-pink-300: hsl(329, 86%, 70%);
   --color-pink-400: hsl(330, 81%, 60%);
   --color-pink-500: hsl(333, 71%, 50%);

   --shadow-small: 0 1px 3px 0 rgba(0, 0, 0, 0.1),
      0 1px 2px 0 rgba(0, 0, 0, 0.06);
   --shadow-medium: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
      0 2px 4px -1px rgba(0, 0, 0, 0.06);
   --shadow-large: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
      0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

*,
*::before,
*::after {
   padding: 0;
   margin: 0;
   box-sizing: border-box;
   list-style: none;
   list-style-type: none;
   text-decoration: none;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   text-rendering: optimizeLegibility;
}

html {
   font-size: 100%;
   box-sizing: inherit;
   scroll-behavior: smooth;
   height: -webkit-fill-available;
}

body {
   font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   font-size: 1rem;
   font-weight: 400;
   line-height: 1.5;
   color: var(--color-black-500);
   background-color: var(--color-white-100);
}

a,
button {
   cursor: pointer;
   border: none;
   outline: none;
   user-select: none;
   background: none;
   box-shadow: none;
}

img,
video {
   display: block;
   max-width: 100%;
   height: auto;
   object-fit: cover;
}

// Elements
.container {
   max-width: 75rem;
   height: auto;
   margin: 0 auto;
   padding: 0 1.25rem;
}

.brand {
   font-family: inherit;
   font-size: 1.6rem;
   font-weight: 700;
   line-height: 1.25;
   letter-spacing: -1px;
   text-transform: uppercase;
   color: var(--color-pink-500);
}

// Header
.header {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: auto;
   z-index: 100;
   margin: 0 auto;
   box-shadow: var(--shadow-medium);
   background-color: var(--color-white-100);
}

// Wrapper
.wrapper {
   display: flex;
   align-items: center;
   justify-content: space-between;
   column-gap: 1rem;
   row-gap: 2rem;
   width: 100%;
   height: 4rem;
   margin: 0 auto;
}

// Navbar
.navbar {
   @media screen and (max-width: 992px) {
      position: fixed;
      top: 0;
      left: -100%;
      width: 75%;
      height: 100%;
      z-index: 10;
      opacity: 0;
      overflow-y: auto;
      visibility: hidden;
      box-shadow: var(--shadow-medium);
      background-color: var(--color-white-100);
      transition: all 0.5s ease;

      &.active {
         left: 0rem;
         opacity: 1;
         visibility: visible;
      }
   }
}

// Menu
.menu {
   &-item {
      position: relative;
      display: inline-block;
      margin-left: 1.5rem;
   }

   &-link {
      display: flex;
      justify-content: center;
      align-items: center;
      column-gap: 0.25rem;
      font-family: inherit;
      font-size: 1rem;
      font-weight: 500;
      line-height: inherit;
      cursor: pointer;
      text-transform: capitalize;
      color: var(--color-black-500);
      transition: all 0.3s ease-in-out;

      > i.bx {
         font-size: 1.35rem;
         line-height: 1.5;
         color: inherit;
      }

      &:hover {
         outline: none;
         color: var(--color-pink-500);
      }
   }

   // Responsive Media Query
   @media only screen and (min-width: 993px) {
      &-dropdown:hover {
         > .submenu {
            display: block;
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
         }
      }
   }

   // Responsive Media Query
   @media only screen and (max-width: 992px) {
      width: 100%;
      height: auto;
      padding: 1rem 0;

      &-item {
         display: block;
         margin: 0 auto;
      }

      &-link {
         justify-content: space-between;
         padding: 0.5rem 1.25rem;
      }
   }
}

// Submenu
.submenu {
   position: absolute;
   top: 2.35rem;
   left: -2rem;
   min-width: 13rem;
   height: auto;
   padding: 0 1rem 1rem;
   opacity: 0;
   visibility: hidden;
   transform: translateY(1rem);
   border-radius: 0 0 0.25rem 0.25rem;
   border-top: 2px solid var(--color-pink-400);
   box-shadow: var(--shadow-medium);
   background-color: var(--color-white-100);
   transition: all 0.3s ease-in-out;

   &-item {
      display: block;
      margin-top: 0.75rem;
   }

   &-link {
      font-family: inherit;
      font-size: 1rem;
      font-weight: 500;
      line-height: inherit;
      cursor: pointer;
      color: var(--color-black-500);
      transition: all 0.35s ease;

      &:hover {
         outline: none;
         color: var(--color-pink-500);
      }
   }

   // Responsive Media Query
   @media only screen and (max-width: 992px) {
      position: relative;
      top: -0.5rem;
      left: 2.5rem;
      width: 100%;
      max-height: 0;
      padding: 0px;
      border: none;
      outline: none;
      opacity: 1;
      overflow: hidden;
      visibility: visible;
      transform: translateY(0px);
      box-shadow: none;
      background: transparent;
   }
}

// Burger
.burger {
   position: relative;
   display: none;
   cursor: pointer;
   user-select: none;
   width: 1.6rem;
   height: 1.15rem;
   opacity: 0;
   visibility: hidden;
   background: transparent;

   &-line {
      position: absolute;
      display: block;
      right: 0;
      width: 100%;
      height: 2.1px;
      opacity: 1;
      border: none;
      outline: none;
      border-radius: 1rem;
      background: var(--color-black-500);

      &:nth-child(1) {
         top: 0px;
      }
      &:nth-child(2) {
         top: 0.5rem;
         width: 70%;
      }
      &:nth-child(3) {
         top: 1rem;
      }
   }

   // Responsive Media Query
   @media only screen and (max-width: 992px) {
      display: block;
      opacity: 1;
      visibility: visible;
   }
}

// Overlay
.overlay {
   position: fixed;
   top: 0;
   left: 0;
   height: 100%;
   width: 100%;
   z-index: 9;
   opacity: 0;
   visibility: hidden;
   transition: all 0.35s ease-in-out;
   background-color: rgba(0, 0, 0, 0.65);

   // Responsive Media Query
   @media only screen and (max-width: 992px) {
      &.active {
         display: block;
         opacity: 1;
         visibility: visible;
      }
   }
}
View Compiled
const navbarMenu = document.getElementById("navbar");
const burgerMenu = document.getElementById("burger");
const overlayMenu = document.querySelector(".overlay");

// Show and Hide Navbar Function
const toggleMenu = () => {
   navbarMenu.classList.toggle("active");
   overlayMenu.classList.toggle("active");
};

// Collapsible Mobile Submenu Function
const collapseSubMenu = () => {
   navbarMenu
      .querySelector(".menu-dropdown.active .submenu")
      .removeAttribute("style");
   navbarMenu.querySelector(".menu-dropdown.active").classList.remove("active");
};

// Toggle Mobile Submenu Function
const toggleSubMenu = (e) => {
   if (e.target.hasAttribute("data-toggle") && window.innerWidth <= 992) {
      e.preventDefault();
      const menuDropdown = e.target.parentElement;

      // If Dropdown is Expanded, then Collapse It
      if (menuDropdown.classList.contains("active")) {
         collapseSubMenu();
      } else {
         // Collapse Existing Expanded Dropdown
         if (navbarMenu.querySelector(".menu-dropdown.active")) {
            collapseSubMenu();
         }

         // Expanded the New Dropdown
         menuDropdown.classList.add("active");
         const subMenu = menuDropdown.querySelector(".submenu");
         subMenu.style.maxHeight = subMenu.scrollHeight + "px";
      }
   }
};

// Fixed Resize Window Function
const resizeWindow = () => {
   if (window.innerWidth > 992) {
      if (navbarMenu.classList.contains("active")) {
         toggleMenu();
      }
      if (navbarMenu.querySelector(".menu-dropdown.active")) {
         collapseSubMenu();
      }
   }
};

// Initialize Event Listeners
burgerMenu.addEventListener("click", toggleMenu);
overlayMenu.addEventListener("click", toggleMenu);
navbarMenu.addEventListener("click", toggleSubMenu);
window.addEventListener("resize", resizeWindow);

External CSS

  1. https://unpkg.com/boxicons@2.1.2/css/boxicons.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.