Menu Bar
The Menu Bar component is a multi-level navigation system that supports nested dropdown files, active hovers (automatic switching between columns), keyboard alignment shortcuts, and icon prefix markers. Ideal for application layouts, sidebars, or toolbars.
Multi-Level Dropdown Menus
Click on any top-level menu item above (like File or Edit) to trigger the list, then hover over other header items or submenus (such as Share or Find) to observe immediate cascading switching and multi-level layout rendering.
<!-- Menu Bar layout wrapper -->
<ul data-role="menu" class="menubar">
<!-- Top Level File Item -->
<li class="menu-item">
<a href="#">File</a>
<!-- Dropdown -->
<ul class="menu-dropdown">
<li>
<a href="#">
<span class="menu-label-wrapper">
<i data-lucide="file-plus"></i>
<span>New File</span>
</span>
<span class="menu-shortcut">Ctrl+N</span>
</a>
</li>
<li class="divider"></li>
<!-- Submenu: Share -->
<li class="menu-item">
<a href="#">
<span class="menu-label-wrapper">
<i data-lucide="share"></i>
<span>Share</span>
</span>
<span class="arrow">▶</span>
</a>
<ul class="menu-dropdown">
<li><a href="#">Email</a></li>
<li><a href="#">Slack</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- Initialization script -->
<script>
document.addEventListener('DOMContentLoaded', () => {
Menu.init();
});
</script>
Configuration & Initialization
Initialize menus declaratively by attaching the role identifier:
- Add
data-role="menu"to the root<ul>element to register it. - Ensure submenus have class
.menu-itemon the parent<li>, class.menu-dropdownon the nested child<ul>, and class.divideron empty separators.