The mega menu component adapts a large number of options or to show lower-level pages at first sight.
Parent Nav Item
The parent navigation item inherits CSS classes from the primary navigation item with children. The .ucla-main-nav__item--has-mega-menu
CSS class is added to the <li>
element.
<!-- ... -->
<li class="ucla-main-nav__item ucla-main-nav__item--has-children ucla-main-nav__item--has-mega-menu">
<a href="#" class="ucla-main-nav__link">Parent Item</a>
<button class="ucla-main-nav__toggle" aria-expanded="false" aria-label="toggle">
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="12 17.2 24 14.8"><title>Arrow Down</title><path class="down-arrow--blue" d="m14.8 17.2 9.2 9.2 9.2-9.2L36 20 24 32 12 20l2.8-2.8z"></path></svg>
</button>
<!-- ... -->
</li>
<!-- ... -->
Mega Menu Container
The mega menu container is the full-width dropdown that holds the content in your mega menu sub-navigation. This will be nested inside the <li>
element.
<!-- ... -->
<li class="ucla-main-nav__item ucla-main-nav__item--has-children ucla-main-nav__item--has-mega-menu">
<!-- ... -->
<div class="ucla-main-nav__mega-menu">
<!-- ... -->
</div>
</li>
<!-- ... -->
Mega Menu Content
Columns
The content inside the mega menu container supports any element in the Design System. You would utilize this by using the Grid System with a container. The example below is using a 4-Column Grid.
<!-- ... -->
<div class="ucla-main-nav__mega-menu">
<div class="container">
<div class="ucla-grid cols-4-lg">
<div> <!-- ... --> </div>
<div> <!-- ... --> </div>
<div> <!-- ... --> </div>
<div> <!-- ... --> </div>
</div>
</div>
</div>
<!-- ... -->
Navigation Headers and Links
For navigation headers, you can use the .ucla-main-nav__mega-menu-header
class on any text element. Please follow the W3C Standards for heading ranks.
The navigation list structure is as follows:
.ucla-main-nav__mega-menu-list
-<ul>
.ucla-main-nav__mega-menu-item
-<li>
.ucla-main-nav__mega-menu-link
-<a>
<!-- ... -->
<div class="ucla-grid cols-4-lg">
<!-- ... -->
<div>
<p class="ucla-main-nav__mega-menu-header">Mega Menu Heading</p>
<ul class="ucla-main-nav__mega-menu-list">
<li class="ucla-main-nav__mega-menu-item">
<a class="ucla-main-nav__mega-menu-link" href="#">Nav Item</a>
</li>
<!-- ... -->
</ul>
<div>
<!-- ... -->
</div>
<!-- ... -->