Ballmac UI home

Mega Menu

A data-driven header menu with wide panels of grouped, described links, an optional featured card, and an accordion list for small screens.

AcmeMenu on small screens

Open Product to see grouped links and a featured card. Arrow keys move between menus.

Installation

$ pnpm dlx shadcn@latest add @ballmac/mega-menu

Usage

import { MegaMenu, MegaMenuMobileList } from "@/components/ballmac/mega-menu"

The full example is in the Code tab above.

Examples

Mobile list

API reference

<MegaMenu>

PropTypeDefault
items*

Top-level entries: a plain link (`href`) or a panel (`columns`, optionally `featured`).

MegaMenuItem[]—
label

Accessible name of the navigation landmark.

string—

<MegaMenuMobileList>

PropTypeDefault
items*MegaMenuItem[]—
onNavigate

Called when a link is chosen, for example to close a sheet.

() => void—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
Enter / Space / ArrowDownOpens the focused panel
ArrowLeft / ArrowRightMoves between top-level items
TabEnters the panel links
EscapeCloses the panel

Use with AI

Pass items: a plain link ({label, href}) or a panel ({label, columns, featured}). MegaMenuMobileList renders the same data for the mobile menu. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Mega Menu (@ballmac/mega-menu) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Sites with many products or solutions
  • Headers that need descriptions beside links

Not for

  • A handful of plain links; use navbar
  • Application commands; use menubar

Registry JSON: https://ui.ballmac.com/r/mega-menu.json

Credits

Free to use in personal and commercial projects.