React menu
React component for building accessible menu, dropdown, submenu, context menu, and more
**react menu** is a React component for building accessible menu, dropdown, submenu, context menu, and more The project is written primarily in JavaScript, distributed under the MIT License license, first published in 2020. It has gained significant community traction with 1,220 stars and 59 forks on GitHub. Key topics include: accessibility, checkbox, contextmenu, dropdown, menu.
Latest release: v4.5.2
June 6, 2026View Changelog →
React-Menu
An accessible, keyboard-friendly React menu library
Features
- Lightweight, unstyled React menu components
- Unlimited submenu nesting
- Supports dropdown, hover, and context menus
- Radio and checkbox menu items
- Flexible positioning options
- Full keyboard interaction support
- Compatible with React 18+ concurrent rendering
- Supports server-side rendering
- Implements WAI-ARIA menu pattern
Install
with npm
bashnpm install @szhsin/react-menu
or with Yarn
bashyarn add @szhsin/react-menu
Usage
jsximport { Menu, MenuItem, MenuButton, SubMenu } from '@szhsin/react-menu'; export default function App() { return ( <Menu menuButton={<MenuButton>Open menu</MenuButton>}> <MenuItem>New File</MenuItem> <MenuItem>Save</MenuItem> <SubMenu label="Edit"> <MenuItem>Cut</MenuItem> <MenuItem>Copy</MenuItem> <MenuItem>Paste</MenuItem> </SubMenu> <MenuItem>Print...</MenuItem> </Menu> ); }
Edit on CodeSandbox<br><br>
Visit more examples and docs<br><br>
FAQs<br><br>
Still on an old version? Please checkout our migration guides.
License
MIT Licensed.
Contributors
Showing top 12 contributors by commit count.
This article is auto-generated from szhsin/react-menu via the GitHub API.Last fetched: 6/14/2026
