<nav class="navbar">
<div class="container">
<a href="#" class="logo">
<svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path></svg>
<span>Brand</span>
</a>
<div class="menu-toggle" id="mobile-menu">
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</div>
<ul class="nav-menu">
<li><a href="#" class="nav-link">Home</a></li>
<li class="has-dropdown">
<a href="#" class="nav-link dropdown-toggle">Products <span class="arrow">▾</span></a>
<div class="mega-menu">
<div class="mega-content">
<div class="mega-column">
<h3>Software</h3>
<a href="#">Analytics Platform</a>
<a href="#">Marketing Tools</a>
<a href="#">CRM Solutions</a>
<a href="#">Cloud Storage</a>
</div>
<div class="mega-column">
<h3>Hardware</h3>
<a href="#">Processors</a>
<a href="#">Server Racks</a>
<a href="#">Networking</a>
<a href="#">Accessories</a>
</div>
<div class="mega-column featured">
<img src="https://placehold.co/300x150/3b82f6/ffffff?text=New+Arrival" alt="Feature">
<div class="featured-text">
<h4>New Version 5.0</h4>
<p>Experience the future of performance.</p>
</div>
</div>
</div>
</div>
</li>
<li><a href="#" class="nav-link">Pricing</a></li>
<li><a href="#" class="nav-link">About</a></li>
<li><a href="#" class="nav-btn">Get Started</a></li>
</ul>
</div>
</nav>
.navbar {
font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
background-color: #ffffff;
box-shadow: 0 2px 15px rgba(0,0,0,0.05);
position: relative;
z-index: 100;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
height: 70px;
}
.logo {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: #1f2937;
font-weight: 800;
font-size: 1.5rem;
}
.nav-menu {
display: flex;
align-items: center;
gap: 30px;
list-style: none;
margin: 0;
padding: 0;
}
.nav-link {
text-decoration: none;
color: #4b5563;
font-weight: 500;
font-size: 1rem;
transition: color 0.3s;
display: flex;
align-items: center;
gap: 5px;
}
.nav-link:hover {
color: #2563eb;
}
.nav-btn {
padding: 10px 24px;
background: #2563eb;
color: white;
border-radius: 50px;
text-decoration: none;
font-weight: 600;
transition: background 0.3s;
}
.nav-btn:hover {
background: #1d4ed8;
}
/* Mega Menu Desktop */
.has-dropdown {
position: relative;
height: 70px;
display: flex;
align-items: center;
}
.mega-menu {
position: absolute;
top: 70px;
left: 50%;
transform: translateX(-50%) translateY(10px);
background: #ffffff;
width: 600px;
border-radius: 12px;
box-shadow: 0 10px 40px rgba(0,0,0,0.1);
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
border: 1px solid #f3f4f6;
overflow: hidden;
}
.has-dropdown:hover .mega-menu {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
}
.mega-content {
display: grid;
grid-template-columns: 1fr 1fr 1.5fr;
padding: 25px;
gap: 20px;
}
.mega-column h3 {
margin: 0 0 15px 0;
font-size: 0.9rem;
text-transform: uppercase;
color: #9ca3af;
letter-spacing: 1px;
}
.mega-column a {
display: block;
padding: 8px 0;
text-decoration: none;
color: #1f2937;
font-weight: 500;
transition: padding 0.2s, color 0.2s;
}
.mega-column a:hover {
padding-left: 5px;
color: #2563eb;
}
.featured img {
width: 100%;
border-radius: 8px;
margin-bottom: 10px;
}
.featured-text h4 {
margin: 0;
color: #111827;
}
.featured-text p {
margin: 5px 0 0 0;
font-size: 0.85rem;
color: #6b7280;
}
/* Mobile Menu */
.menu-toggle {
display: none;
cursor: pointer;
flex-direction: column;
gap: 5px;
}
.bar {
width: 25px;
height: 3px;
background-color: #1f2937;
border-radius: 2px;
}
@media (max-width: 900px) {
.menu-toggle {
display: flex;
}
.nav-menu {
position: absolute;
top: 70px;
left: 0;
width: 100%;
background: #ffffff;
flex-direction: column;
align-items: flex-start;
padding: 20px;
box-shadow: 0 10px 20px rgba(0,0,0,0.05);
display: none;
box-sizing: border-box;
}
.nav-menu.active {
display: flex;
}
.has-dropdown {
height: auto;
flex-direction: column;
align-items: flex-start;
width: 100%;
}
/* Reset Desktop Hover for Mobile */
.has-dropdown:hover .mega-menu {
display: none;
}
/* Only show when class "dropdown-active" is added by JS */
.has-dropdown.dropdown-active .mega-menu {
display: block;
position: static;
transform: none;
width: 100%;
opacity: 1;
visibility: visible;
box-shadow: none;
border: none;
padding: 0;
}
.mega-content {
grid-template-columns: 1fr;
padding: 10px 0 0 20px;
}
.featured {
display: none;
}
.nav-menu li {
width: 100%;
padding: 10px 0;
border-bottom: 1px solid #f9fafb;
}
.nav-btn {
display: inline-block;
margin-top: 15px;
width: 100%;
text-align: center;
box-sizing: border-box;
}
.arrow {
margin-left: auto;
padding-right: 20px;
}
}
const mobileMenu = document.getElementById("mobile-menu");
const navMenu = document.querySelector(".nav-menu");
const dropdownToggles = document.querySelectorAll(".dropdown-toggle");
// Toggle Mobile Menu
mobileMenu.addEventListener("click", () => {
navMenu.classList.toggle("active");
});
// Toggle Dropdowns on Click (Mobile)
dropdownToggles.forEach(toggle => {
toggle.addEventListener("click", (e) => {
if (window.innerWidth <= 900) {
e.preventDefault(); // Prevent link navigation on mobile
toggle.parentElement.classList.toggle("dropdown-active");
}
});
});