Sample Mega Menu Code

We believe in sharing... are you interested in a mega menu? Here is our code for our mega menu, help yourself.
What is a mega menu?
I was first introduced to the concept of a mega menu when I worked at UCare, a local health plan. The marketing team was very advanced and taught me about a different way to organize information. A traditional menu has a list of items at the top, and then maybe a drop down, with 1 column. A mega menu is just like that, except the drop down can have pictures, multiple columns, etc. This is a great way to organize many links, yet keeping the design in tack.

+++ SAMPLE CODE +++ USE AT YOUR OWN RISK +++
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<style>
/* ------------------------------------------- */
/* --- GENERAL STYLES & CONFIGURATION --- */
/* This CSS contains the necessary styles for the mega-menu structure, */
/* mobile responsiveness, and visual effects like transparency. Use at your own discretion, developed by 1stContact.ai */
/* ------------------------------------------- */
:root {
--primary-color: #041b4b; /* Main Nav Background */
--accent-color: #F27F59; /* Button Color */
}
/* Base Nav Layout */
.main-nav { padding: 1rem 0; position: relative; z-index: 100; background-color: var(--primary-color); }
.nav-container { max-width: 1400px; margin: 0 auto; padding: 0 1rem; }
.header-layout { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; }
/* Logo */
.logo { flex-shrink: 0; }
.logo img { height: 90px; width: 180px; object-fit: contain; }
/* Desktop Nav Links */
.nav-list { display: flex; list-style: none; margin: 0; padding: 0; gap: 1.2rem; }
.nav-link { color: white; text-decoration: none; font-weight: 500; padding: 0.5rem 0; display: block; white-space: nowrap; font-size: 0.85rem; }
/* Buttons */
.header-buttons { display: flex; align-items: center; gap: 1rem; flex-shrink: 0; white-space: nowrap; }
.btnb { display: inline-block; padding: 0.6rem 1.2rem; border-radius: 6px; font-weight: 600; text-decoration: none; font-size: 0.8rem; }
.btnb-primary { background-color: var(--accent-color); color: white; }
.btnb-secondary { background-color: transparent; color: white; border: 2px solid white; }
/* ------------------------------------------- */
/* --- MEGA MENU STYLES (Includes Fixes) --- */
/* ------------------------------------------- */
.nav-item { position: relative; }
.nav-item:hover .mega-menu-dropdown { transform: translateY(0); opacity: 1; visibility: visible; }
/* Transparent Dropdown Background */
.mega-menu-dropdown {
transform: translateY(-10px);
opacity: 0;
visibility: hidden;
transition: all 0.2s ease-in-out;
position: absolute;
top: 100%;
left: 0;
background: rgba(0, 0, 0, 0.8); /* Transparent Black Background */
backdrop-filter: blur(10px);
border-radius: 8px;
padding: 2rem;
min-width: 600px;
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2);
border: 1px solid rgba(255, 255, 255, 0.2);
z-index: 1000;
text-align: left;
}
/* Mega Menu Grid */
.menu-grid { display: grid; gap: 1rem; }
.menu-grid.three-columns { grid-template-columns: repeat(3, 1fr); }
.menu-grid.four-columns { grid-template-columns: repeat(4, 1fr); }
/* Subheading Styling */
.menu-column h4 { color: white; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; margin-bottom: 0.75rem; }
/* NEW: Spacing fix for subheadings following another subheading */
.menu-column h4 + h4 { margin-top: 1.5rem; }
/* Submenu List Styling */
.submenu { list-style: none; padding: 0; margin: 0; } /* FIX: Removes default list bullets */
.submenu a { color: white; text-decoration: none; font-size: 0.75rem; display: flex; align-items: center; padding: 0.25rem 0; white-space: nowrap; }
.submenu i { margin-right: 0.5rem; width: 1em; text-align: center; color: #60a5fa; font-size: 0.8rem; flex-shrink: 0; }
.fa-fw { width: 1em; }
/* ------------------------------------------- */
/* --- MOBILE MENU & RESPONSIVE --- */
/* ------------------------------------------- */
.mobile-menu-button { display: none; background: none; border: none; color: white; font-size: 1.5rem; padding: 0.5rem; }
.mobile-menu { display: none; background: white; position: absolute; top: 100%; left: 0; right: 0; padding: 1rem; }
@media (max-width: 1024px) {
.nav-list, .header-buttons { display: none; }
.mobile-menu-button { display: block; }
.header-layout { justify-content: space-between; }
}
</style>
<nav class="main-nav">
<div class="nav-container">
<div class="header-layout">
<div class="logo">
<a href="#demo-home">
<img src="https://assets.cdn.filesafe.space/ZxV6a5v2dtZF5cAAOedY/media/68c427a58c828c0b4cec0657.png"
alt="Company Logo">
</a>
</div>
<div class="nav-wrapper">
<ul id="main-navigation" class="nav-list">
<li class="nav-item group">
<a href="#demo-products" class="nav-link">Products</a>
<div class="mega-menu-dropdown">
<div class="menu-grid three-columns">
<div class="menu-column">
<h4>Core Plans</h4>
<ul class="submenu">
<li><a href="#plan-ent"><i class="fas fa-gem fa-fw"></i><span>Enterprise Plan</span></a></li>
<li><a href="#plan-free"><i class="fas fa-leaf fa-fw"></i><span>Free Plan</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Bundles & Add-ons</h4>
<ul class="submenu">
<li><a href="#bundle-complete"><i class="fas fa-box-open fa-fw"></i><span>Complete Bundle</span></a></li>
<li><a href="#addon-phone"><i class="fas fa-phone-volume fa-fw"></i><span>Business Phone</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Getting Started</h4>
<ul class="submenu">
<li><a href="#demo"><i class="fas fa-desktop fa-fw"></i><span>Schedule a Demo</span></a></li>
<li><a href="#trial"><i class="fas fa-play-circle fa-fw"></i><span>Start Free Trial</span></a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="nav-item group">
<a href="#demo-features" class="nav-link">Features</a>
<div class="mega-menu-dropdown">
<div class="menu-grid four-columns">
<div class="menu-column">
<h4>AI Features</h4>
<ul class="submenu">
<li><a href="#ai-writing"><i class="fas fa-magic fa-fw"></i><span>AI Email Writing</span></a></li>
<li><a href="#ai-chat"><i class="fas fa-comment-dots fa-fw"></i><span>Smart Chatbot</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Sales & CRM</h4>
<ul class="submenu">
<li><a href="#crm"><i class="fas fa-address-book fa-fw"></i><span>CRM</span></a></li>
<li><a href="#pipeline"><i class="fas fa-stream fa-fw"></i><span>Pipeline Management</span></a></li>
</ul>
<h4 class="subheading-spacer">Marketing</h4>
<ul class="submenu">
<li><a href="#automation"><i class="fas fa-robot fa-fw"></i><span>Automations</span></a></li>
<li><a href="#email-sms"><i class="fas fa-mail-bulk fa-fw"></i><span>Email & SMS Campaigns</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Communication</h4>
<ul class="submenu">
<li><a href="#phone"><i class="fas fa-phone fa-fw"></i><span>Business Phone System</span></a></li>
<li><a href="#live-chat"><i class="fas fa-comment fa-fw"></i><span>Live Chat Widgets</span></a></li>
</ul>
<h4 class="subheading-spacer">Operations</h4>
<ul class="submenu">
<li><a href="#scheduling"><i class="fas fa-calendar-alt fa-fw"></i><span>Online Scheduling</span></a></li>
<li><a href="#payments"><i class="fas fa-credit-card fa-fw"></i><span>Payment Processing</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Platform & Analytics</h4>
<ul class="submenu">
<li><a href="#reporting"><i class="fas fa-chart-line fa-fw"></i><span>Analytics & Reporting</span></a></li>
<li><a href="#api"><i class="fas fa-code fa-fw"></i><span>API Access</span></a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="nav-item group">
<a href="#demo-resources" class="nav-link">Resources</a>
<div class="mega-menu-dropdown">
<div class="menu-grid two-columns">
<div class="menu-column">
<h4>Learning Center</h4>
<ul class="submenu">
<li><a href="#calc"><i class="fas fa-calculator fa-fw"></i><span>Cost Calculator</span></a></li>
<li><a href="#faq"><i class="fas fa-info-circle fa-fw"></i><span>FAQ</span></a></li>
</ul>
</div>
<div class="menu-column">
<h4>Comparisons</h4>
<ul class="submenu">
<li><a href="#vs-hubspot"><i class="fas fa-balance-scale fa-fw"></i><span>vs HubSpot</span></a></li>
<li><a href="#vs-salesforce"><i class="fas fa-balance-scale fa-fw"></i><span>vs Salesforce</span></a></li>
</ul>
</div>
</div>
</div>
</li>
</ul>
</div>
<div class="header-buttons">
<a href="#demo-blog" class="header-link">Blog</a>
<a href="#demo-login" class="header-link">Login</a>
<a href="#demo-trial" class="btnb btnb-primary">Start Free Trial</a>
<a href="#demo-schedule" class="btnb btnb-secondary">Schedule Demo</a>
</div>
<button id="mobile-menu-button" class="mobile-menu-button" aria-expanded="false" aria-controls="mobile-menu">
<i class="fas fa-bars"></i>
</button>
</div>
</div>
<div id="mobile-menu" class="mobile-menu" aria-hidden="true">
<ul class="mobile-nav-list">
<li><a href="#demo-products">Products</a></li>
<li><a href="#demo-features">Features</a></li>
<li><a href="#demo-resources">Resources</a></li>
</ul>
<div class="mobile-buttons">
<a href="#demo-login" class="mobile-link">Login</a>
<a href="#demo-trial" class="btnb btnb-primary btnb-block">Start Free Trial</a>
<a href="#demo-schedule" class="btnb btnb-secondary btnb-block">Schedule Demo</a>
</div>
</div>
</nav>
<script>
// Mobile-Optimized Navigation Script (Minimized)
// This script is essential for the mobile menu toggle and responsive behavior.
(function() {
'use strict';
function toggleMobileMenu(e) {
if (e) {
e.preventDefault();
e.stopPropagation();
}
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
const icon = mobileMenuButton ? mobileMenuButton.querySelector('i') : null;
if (!mobileMenu || !mobileMenuButton) return;
const isMenuOpen = mobileMenu.classList.contains('show');
if (isMenuOpen) {
mobileMenu.classList.remove('show');
mobileMenuButton.setAttribute('aria-expanded', 'false');
mobileMenu.setAttribute('aria-hidden', 'true');
if (icon) { icon.className = 'fas fa-bars'; }
} else {
mobileMenu.classList.add('show');
mobileMenuButton.setAttribute('aria-expanded', 'true');
mobileMenu.setAttribute('aria-hidden', 'false');
if (icon) { icon.className = 'fas fa-times'; }
}
}
function initMobileMenu() {
const mobileMenuButton = document.getElementById('mobile-menu-button');
if (mobileMenuButton) {
mobileMenuButton.addEventListener('click', toggleMobileMenu, { passive: false });
}
}
document.addEventListener('DOMContentLoaded', initMobileMenu);
})();
</script>
Ready to replace HubSpot?
Start your 14-day free trial of the all-in-one AI CRM that sells for you.
Start Free TrialAbout 1stContact.ai
1stContact.ai is the all-in-one AI CRM platform built for B2B agencies and SMBs. It replaces HubSpot, Calendly, ActiveCampaign, and RingCentral with a single platform that includes Voice AI for 24/7 inbound call handling, A2P SMS marketing, pipeline management, email automation, local SEO directory sync, and the full IMPACT TOOLS suite.
With plans starting at $97 per month and unlimited users and contacts on every plan, 1stContact.ai delivers enterprise-grade capabilities at a fraction of the cost of competing CRMs. Key features include an AI voice agent that answers calls and books appointments, Conversation AI that handles SMS and web chat, automated lead follow-up that responds within the critical first five minutes, and built-in business coaching.
1stContact.ai is headquartered in Minneapolis, MN and serves businesses across the United States. To learn more, explore our features, compare CRM costs, browse our resource library, or book a strategy call with our team.