Blocks
Best menu blocks 2026: 9 verified sections
9 menu blocks from 2 registries, four of which are demos of the same component. What breaks when the menu opens: focus, Escape, scroll lock and the return to where you started.
Key points
- 9 menu blocks and only 2 publishers: the smallest category in the block catalogue.
- Four rows out of nine are variants of the same systaliko animated menu.
- A menu is judged by three keys: Tab, Escape and Shift+Tab closing it.
A menu is a disclosure component: it opens, shows, closes and returns focus where it was. The catalogue holds 9 menu blocks from 2 registries, measured on 1 November 2026, which makes it the smallest category in the block catalogue, so read the list as a sample rather than a market.
Every menu failure is visible from the keyboard. The panel opens, focus stays on the button that opened it and the first link is unreachable; Escape does nothing; the full-screen menu locks page scrolling and never restores it on close, so the visitor lands back at the top with no explanation; aria-expanded stays false while the menu is visible and the screen reader announces a state that does not exist.
Four rows out of nine are the same menu
Five blocks come from systaliko and four of them are called Animated Menu, Animated Menu Demo, Animated Menu 2 Demo and the full-screen Animated Menu Demo: one idea with presentation variants, plus a demo wrapper. The catalogue counts nine because it counts sections, but the distinct readings of the problem are three or four. Knowing that changes how you read the table: you are not choosing between nine designs, you are looking closely at a single author.
What breaks when the menu opens
A menu covering the page creates a new context: the content underneath is inert and must not receive focus. If the block does not move focus inside the panel, the first Tab jumps to a link behind the overlay, invisible but active. If it does not lock scrolling, a finger on mobile scrolls the page below while the menu stands still. If it does not handle Escape, keyboard users must hunt for a close button that may sit top left, outside the natural path.
The table, sorted by files
Here the File column separates almost nothing, because every block is a single file: the useful column is the name. The Demo suffix marks a wrapper that mounts the component rather than a section to paste. The flx rows carry descriptive names, “With action menu”, “With dropdown menu”, and are components containing a menu, not full-screen menus.
| Block | Registry | Files | Category |
|---|---|---|---|
| Animated Menu | systaliko | 1 | animated |
| Animated Menu 2 Demo | systaliko | 1 | animated |
| Animated Menu Demo | systaliko | 1 | animated |
| Animated Menu Demo | systaliko | 1 | animated |
| With action menu | flx | 1 | action |
| Account menu | flx | 1 | account |
| Full screen navigation menu | systaliko | 1 | screen |
| With dropdown menu | flx | 1 | dropdown |
The keyboard tests
Open the preview and do three things, in order. First: open the menu with Enter, then press Tab and confirm focus enters the panel. Second: press Escape and confirm the panel closes and focus returns to the button that opened it. Third: open the menu, try to scroll the page and check the content underneath does not move; then close it and confirm scrolling is available again.
- aria-expanded and aria-controls updated on the button that opens.
- Escape closes, focus returns to the trigger, Tab does not leave the panel.
- Page scroll locked on open and restored on close.
- Animation with a fallback for prefers-reduced-motion.
curl "https://ui.eneawork.it/api/blocks/category/menu?limit=10"
The limit: demos and components in one list
Three rows are not panel menus: “With action menu” is a card with a menu inside, “Account menu” is a dropdown, “With dropdown menu” is an input with a menu attached. They join because their title contains the word menu and the manifest declares no categories. The category therefore mixes overlays, dropdowns and components that host a menu: if you want a mega menu, it is not here.
Decision rule
If you need the site’s global navigation, the right list is the navbar one: a menu is a local panel, not a bar. If you need a dropdown inside a card or a form, take the shadcn dropdown-menu component and not a block: the block brings a drawing and a state you will rewrite anyway. The alternative to animated menus is the details element with summary, or the native popover: zero dependencies, keyboard open and close handled by the browser, and a less spectacular look. Comparing component library, UI kit and design system helps you see which layer you are actually adopting.
The menus live under /blocks/category/menu, the inventory under /blocks, and the systaliko Animated Menu has its page here. For keyboard navigation read the keyboard guide for menus, for focus containment the focus trap in modals, and for the abstraction levels component library, UI kit and design system.
Frequently asked questions
How many menu blocks does the catalogue hold?
9 blocks from 2 registries, measured on 1 November 2026. Four of them are variants of the same systaliko animated menu.
What is the difference between a menu block and a navbar block?
A menu is a local panel that opens and closes; a navbar is the global navigation bar with links and a mobile menu. If you want the second, look at the navbar category.
Why does focus stay behind an open menu?
Because the block never moves focus into the panel and never makes the content underneath inert. The first Tab lands on a link that is invisible but active.
Should a menu lock page scrolling?
Yes, when it covers the screen. It must lock on open and restore on close, otherwise on mobile a finger scrolls the content below while the menu stands still.
An animated menu or the details element?
For spectacle, the animated menu; for navigation, details with summary costs zero dependencies and handles keyboard open and close without code.