Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-accessible-accordion

Package Overview
Dependencies
Maintainers
4
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-accessible-accordion

Accessible Accordion component for React

  • 2.2.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
99K
decreased by-3.73%
Maintainers
4
Weekly downloads
 
Created
Source

react-accessible-accordion npm Build Status Coverage Status Dependency Status devDependency Status Accessibility status

Accessible Accordion component for React. Inspired by rc-collapse and react-sanfona. :mag::ok_hand:

Try a demo now.

If you like accessible components, feel free to check this other repo react-accessible-modal.

Usage

First, grab the package from npm:

npm install --save react-accessible-accordion react react-dom

Then, import the editor and use it in your code. Here is a basic example:

import React from 'react';
import ReactDOM from 'react-dom';

import {
    Accordion,
    AccordionItem,
    AccordionItemTitle,
    AccordionItemBody,
} from 'react-accessible-accordion';

// Demo styles, see 'Styles' section below for some notes on use.
import 'react-accessible-accordion/dist/fancy-example.css';

const Example = () => (
    <Accordion>
        <AccordionItem>
            <AccordionItemTitle>
                <h3>Simple title</h3>
            </AccordionItemTitle>
            <AccordionItemBody>
                <p>Body content</p>
            </AccordionItemBody>
        </AccordionItem>
        <AccordionItem>
            <AccordionItemTitle>
                <h3>Complex title</h3>
                <div>With a bit of description</div>
            </AccordionItemTitle>
            <AccordionItemBody>
                <p>Body content</p>
            </AccordionItemBody>
        </AccordionItem>
    </Accordion>
);

ReactDOM.render(<Example />, document.querySelector('[data-mount]'));

Styles

We strongly encourage you to write your own styles for your accordions, but we've published these two starter stylesheets to help you get up and running:

// 'Minimal' theme - hide/show the AccordionBody component:
import 'react-accessible-accordion/dist/fancy-example.css';

// 'Fancy' theme - boilerplate styles for all components, as seen on our demo:
import 'react-accessible-accordion/dist/minimal-example.css';

We recommend that you copy them into your own app and modify them to suit your needs, particularly if you're using your own classNames.

API

Accordion

props:
nametypedefaultdescription
accordionBooleantrueOpen only one item at a time or not
onChangeFunction(keys)noopTriggered on change (open/close items)
classNameStringaccordionCSS class(es) applied to the component

AccordionItem

props:
nametypedefaultdescription
expandedBooleanfalseExpands this item on first render
classNameStringaccordion__itemCSS class(es) applied to the component
hideBodyClassNameStringnullClass name for hidden body state

AccordionItemTitle

props:
nametypedefaultdescription
classNameStringaccordion__titleCSS class(es) applied to the component
hideBodyClassNameStringnullClass name for hidden body state

AccordionItemBody

props:
nametypedefaultdescription
classNameStringaccordion__bodyCSS class(es) applied to the component
hideBodyClassNameStringaccordion__body--hiddenClass name for hidden body state

resetNextUuid

Function(void)
Resets the internal counter for Accordion items' identifiers (including `id` attributes). For use in test suites and isomorphic frameworks.

Accessibility

What this project is doing accessibility-wise?

This project manages two types of Accordions, with single or multiple items open.

Single item

Use this with with props accordion set to true on Accordion.

For this type of Accordion, you will get the following role set up on your elements:

  • Accordion: tablist
  • AccordionItem: no specific role
  • AccordionItemTitle: tab
  • AccordionItemBody: tabpanel
Multiple items

For this type of Accordion, you will get the following role set up on your elements:

Use this with with props accordion set to false on Accordion.

  • Accordion: no specific role
  • AccordionItem: no specific role
  • AccordionItemTitle: button
  • AccordionItemBody: no specific role

Development

Install

Clone the project on your computer, and install Node. This project also uses nvm.

nvm install
# Then, install all project dependencies.
npm install
# Install the git hooks.
./.githooks/deploy
# Set up a `.env` file with the appropriate secrets.
touch .env

Working on the project

Everything mentioned in the installation process should already be done.

# Make sure you use the right node version.
nvm use
# Start the the development tools in watch mode.
npm run start
# Runs linting.
npm run lint
# Runs tests.
npm run test
# View other available commands with:
npm run

Run the demo

Everything mentioned in the installation process should already be done.

# Make sure you use the right node version.
nvm use
# Start the server and the development tools.
npm run start-demo

Publish

npm version [TYPE]
git push origin master --tags
npm publish

Browser support

Supported browser / device versions:

BrowserDevice/OSVersionNotes
Mobile SafariiOSlatest
ChromeAndroidlatest
IEWindows11
MS EdgeWindowslatest
ChromeDesktoplatest
FirefoxDesktoplatest
SafariOSXlatest

Keywords

FAQs

Package last updated on 02 Mar 2018

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc