▦ Mega Menu Design Guide
Mega menus (also called "dropdown panels") reveal large panels з organized content коли hovering над navigation items. Unlike traditional dropdowns з simple lists, mega menus can include images, icons, multi-column layouts, та featured content. Properly designed, вони improve discoverability, reduce navigation depth, та provide rich context для complex site hierarchies. Цей guide охоплює UX patterns, implementation, та mushroom website-specific examples.
🎯 When to Use Mega Menus
✅ Perfect For
- Deep hierarchies: 10+ subcategories per section
- E-commerce: Product categories з images
- Content sites: Multiple article types/topics
- Service offerings: Many service types
- Educational sites: Complex subject organization
✅ Mushroom Hub: Excellent fit
❌ Avoid When
- Simple navigation: < 5-6 main items total
- Mobile-first: Mega menus struggle на small screens
- Minimal content: Not enough to fill panels
- Task-focused apps: Users know destination
🍄 Mushroom Website Navigation Structure:
Species ▾ ├─ Psilocybe │ ├─ P. cubensis (50+ strains) │ ├─ P. semilanceata │ ├─ P. cyanescens │ └─ P. azurescens ├─ Amanita ├─ Identification Guide └─ Field Guide Growing ▾ ├─ Cultivation Methods │ ├─ PF Tek │ ├─ Monotub │ └─ Uncle Ben's ├─ Equipment Guide ├─ Troubleshooting └─ Advanced Techniques Safety ▾ ├─ Dosage Guide ├─ Harm Reduction ├─ Drug Interactions ├─ Mental Health └─ Legal Status Science ▾ ├─ Pharmacology ├─ Research Studies ├─ Therapeutic Use └─ Microdosing
Conclusion: ✅ Mega menu perfect для organizing 30+ subcategories
📐 Layout Patterns
1. Multi-Column Grid (Recommended)
|
Column 1 Main Categories |
Column 2 Subcategories |
Column 3 Related Links |
Column 4 Featured Content |
Benefits:
- ✅ Organized, scannable layout
- ✅ Clear visual hierarchy
- ✅ Reduces cognitive load
- ✅ Space для descriptions
2. Featured Content Panel
Large image або highlight box у right column:
- Latest research article
- Beginner's guide banner
- Safety reminder callout
- Seasonal content (mushroom foraging season)
3. Icon-Enhanced Navigation
Small icons beside each link:
- 🍄 Species icons (different mushroom types)
- 🔬 Science (microscope)
- ⚠️ Safety (warning)
- 🌱 Growing (plant)
💻 Complete Implementation
HTML Structure:
<nav class="main-nav">
<ul class="nav-list">
<!-- Regular link (no mega menu) -->
<li><a href="/">Home</a></li>
<!-- Mega menu item -->
<li class="has-mega-menu">
<a href="/species" class="mega-menu-trigger">
Species
<svg class="chevron" width="12" height="8">
<path d="M1 1l5 5 5-5" stroke="currentColor" fill="none"/>
</svg>
</a>
<!-- Mega Menu Panel -->
<div class="mega-menu">
<div class="mega-menu-content">
<!-- Column 1: Psilocybe Species -->
<div class="mega-column">
<h4 class="mega-heading">🍄 Psilocybe Species</h4>
<ul class="mega-links">
<li><a href="/species/cubensis">P. cubensis</a></li>
<li><a href="/species/semilanceata">P. semilanceata</a></li>
<li><a href="/species/cyanescens">P. cyanescens</a></li>
<li><a href="/species/azurescens">P. azurescens</a></li>
<li><a href="/species/mexicana">P. mexicana</a></li>
</ul>
</div>
<!-- Column 2: Other Genera -->
<div class="mega-column">
<h4 class="mega-heading">Other Genera</h4>
<ul class="mega-links">
<li><a href="/species/amanita">Amanita muscaria</a></li>
<li><a href="/species/panaeolus">Panaeolus</a></li>
<li><a href="/species/gymnopilus">Gymnopilus</a></li>
</ul>
</div>
<!-- Column 3: Resources -->
<div class="mega-column">
<h4 class="mega-heading">Resources</h4>
<ul class="mega-links">
<li><a href="/species/identification">Identification Guide</a></li>
<li><a href="/species/lookalikes">Dangerous Lookalikes</a></li>
<li><a href="/species/field-guide">Field Guide (PDF)</a></li>
</ul>
</div>
<!-- Column 4: Featured -->
<div class="mega-column mega-featured">
<div class="featured-card">
<img src="/images/cubensis-guide.jpg" alt="Golden Teacher">
<h5>Beginner's Guide</h5>
<p>Start with P. cubensis Golden Teacher</p>
<a href="/guides/beginners" class="cta-link">Read Guide →</a>
</div>
</div>
</div>
</div>
</li>
<!-- More nav items... -->
</ul>
</nav>
CSS Styling:
/* Main Navigation */
.main-nav {
background: white;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
position: sticky;
top: 0;
z-index: 1000;
}
.nav-list {
display: flex;
list-style: none;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.nav-list > li {
position: relative;
}
.nav-list > li > a {
display: flex;
align-items: center;
gap: 5px;
padding: 20px 20px;
color: #2c3e50;
text-decoration: none;
font-weight: 600;
transition: color 0.2s;
}
.nav-list > li > a:hover {
color: #4facfe;
}
/* Mega Menu Panel */
.mega-menu {
position: absolute;
top: 100%;
left: 0;
right: 0;
background: white;
box-shadow: 0 8px 30px rgba(0,0,0,0.15);
opacity: 0;
visibility: hidden;
transform: translateY(-10px);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
border-top: 3px solid #4facfe;
}
.has-mega-menu:hover .mega-menu {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
/* Add delay để prevent accidental closes */
.has-mega-menu {
transition: none;
}
.mega-menu:hover,
.has-mega-menu:hover {
/* Prevents flickering */
}
/* Mega Menu Content Grid */
.mega-menu-content {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px;
max-width: 1200px;
margin: 0 auto;
padding: 40px;
}
/* Columns */
.mega-column {
min-width: 0; /* Prevents overflow */
}
.mega-heading {
font-size: 1.1em;
font-weight: 700;
color: #2c3e50;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 2px solid #e9ecef;
}
.mega-links {
list-style: none;
padding: 0;
}
.mega-links li {
margin: 0;
}
.mega-links a {
display: block;
padding: 10px 0;
color: #4a5568;
text-decoration: none;
transition: all 0.2s;
border-left: 3px solid transparent;
padding-left: 10px;
}
.mega-links a:hover {
color: #4facfe;
border-left-color: #4facfe;
padding-left: 15px;
}
/* Featured Content */
.mega-featured {
background: linear-gradient(135deg, #e0f7ff 0%, #b3e5ff 100%);
padding: 20px;
border-radius: 12px;
}
.featured-card img {
width: 100%;
border-radius: 8px;
margin-bottom: 15px;
}
.featured-card h5 {
font-size: 1.2em;
margin-bottom: 8px;
}
.featured-card p {
font-size: 0.95em;
color: #5a6c7d;
margin-bottom: 15px;
}
.cta-link {
display: inline-block;
padding: 10px 20px;
background: #4facfe;
color: white;
border-radius: 6px;
text-decoration: none;
font-weight: 600;
transition: background 0.2s;
}
.cta-link:hover {
background: #00f2fe;
}
/* Responsive */
@media (max-width: 1024px) {
.mega-menu-content {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
/* Hide mega menu на mobile, use hamburger instead */
.has-mega-menu .mega-menu {
display: none;
}
}
JavaScript Enhancements:
// Add keyboard navigation
const megaMenuTriggers = document.querySelectorAll('.mega-menu-trigger');
megaMenuTriggers.forEach(trigger => {
const parent = trigger.parentElement;
const megaMenu = parent.querySelector('.mega-menu');
// Keyboard support
trigger.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
megaMenu.classList.toggle('active');
}
if (e.key === 'Escape') {
megaMenu.classList.remove('active');
trigger.focus();
}
});
// Focus trap
const focusableElements = megaMenu.querySelectorAll('a, button');
const firstFocusable = focusableElements[0];
const lastFocusable = focusableElements[focusableElements.length - 1];
lastFocusable?.addEventListener('keydown', (e) => {
if (e.key === 'Tab' && !e.shiftKey) {
e.preventDefault();
firstFocusable?.focus();
}
});
});
// Close mega menu on outside click
document.addEventListener('click', (e) => {
if (!e.target.closest('.has-mega-menu')) {
document.querySelectorAll('.mega-menu.active').forEach(menu => {
menu.classList.remove('active');
});
}
});
⚡ Best Practices
Timing & Delays
- Open: Instant або 100ms delay
- Close: 300ms delay (prevents accidental close)
- Animation: 250-300ms smooth transition
Visual Hierarchy
- Clear headings для each column
- Visual separators (borders, spacing)
- Featured content stands out
- Consistent icon usage
Accessibility
- Keyboard navigation (Tab, Escape)
- ARIA attributes (
aria-expanded) - Focus indicators visible
- Screen reader friendly
Performance
- Lazy load images у featured content
- GPU-accelerated animations
- Minimize reflows/repaints
- Optimize Z-index stacking
✅ Mega Menu Checklist
Implementation Checklist:
- ☐ Multi-column grid layout (2-4 columns)
- ☐ Clear visual hierarchy (headings, sections)
- ☐ Smooth hover animation (< 300ms)
- ☐ Close delay (300ms) prevents accidental closes
- ☐ Featured content panel (optional)
- ☐ Icons enhance navigation
- ☐ Keyboard accessible
- ☐ ARIA labels implemented
- ☐ Mobile fallback (hamburger)
- ☐ Links logically grouped
- ☐ Max 4-5 columns (prevents overwhelming)
- ☐ Tested across browsers
- ☐ Performance optimized
- ☐ Works з sticky header