/react-menu

React component for building accessible menu, dropdown, submenu, context menu, and more.

Primary LanguageJavaScriptMIT LicenseMIT

React-Menu

An accessible and keyboard-friendly React menu library.

Live examples and docs

NPM NPM TypeScript Known Vulnerabilities

Features

  • React menu components for easy and fast web development.
  • Unlimited levels of submenu.
  • Supports dropdown, hover, and context menu.
  • Supports radio and checkbox menu items.
  • Flexible menu positioning.
  • Comprehensive keyboard interactions.
  • Unstyled components and easy customisation.
  • Optimal level support (level 3) of React 18 concurrent rendering.
  • Supports server-side rendering.
  • WAI-ARIA Authoring Practices compliant.

Install

with npm

npm install @szhsin/react-menu

or with Yarn

yarn add @szhsin/react-menu

Usage

import { 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

Visit more examples and docs

FAQs

Still on older versions? Please checkout our migration guides.

License

MIT Licensed.