🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

react-accessible-dropdown-menu-hook

Package Overview
Dependencies
Maintainers
2
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-accessible-dropdown-menu-hook

A simple Hook for creating fully accessible dropdown menus in React

4.0.0
latest
Source
npm
Version published
Weekly downloads
5.5K
59.11%
Maintainers
2
Weekly downloads
 
Created
Source

React Accessible Dropdown Menu Hook

npm bundle size Codecov coverage npm downloads npm release tested with Rugged license

This Hook handles all the accessibility logic when building a dropdown menu, dropdown button, etc., and leaves the design completely up to you. It also handles the logic for closing the menu when you click outside of it.

  • ♿️ Fully accessible
  • 📦 Written entirely in TypeScript
  • 🔬 Thoroughly tested
  • ⚡️ Zero dependencies
  • ✨ Tiny size

Quick start

Install with Yarn or npm:

yarn add react-accessible-dropdown-menu-hook
npm install react-accessible-dropdown-menu-hook

Import the Hook:

import useDropdownMenu from 'react-accessible-dropdown-menu-hook';

Call the Hook, telling it how many items your menu will have:

const { buttonProps, itemProps, isOpen } = useDropdownMenu(numberOfItems);

Spread the buttonProps onto a button:

<button {...buttonProps}>Example</button>

Create the menu with the role='menu' property and spread itemProps[x] onto each item:

<div className={isOpen ? 'visible' : ''} role='menu'>
    <a {...itemProps[0]} href='https://example.com'>Regular link</a>
    <a {...itemProps[1]} onClick={handleClick}>With click handler</a>
</div>

Done!

Documentation

Read the docs at: https://sparksuite.github.io/react-accessible-dropdown-menu-hook/docs/

Demo

See it in action: https://sparksuite.github.io/react-accessible-dropdown-menu-hook/demo/

Accessibility notes

Our team carefully studied and adhered to strict accessibility guidelines when designing this Hook. To learn more, see: https://sparksuite.github.io/react-accessible-dropdown-menu-hook/docs/design/accessibility.

Contributing

We love contributions! Contributing is easy; learn how.

Keywords

react

FAQs

Package last updated on 22 Feb 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts