项目作者: peteraiello

项目描述 :
An accessible accordion built using React.
高级语言: JavaScript
项目地址: git://github.com/peteraiello/custom-react-accordion.git
创建时间: 2021-02-04T16:11:00Z
项目社区:https://github.com/peteraiello/custom-react-accordion

开源协议:MIT License

下载


Custom React Accordion

Custom-React-Accordion

Demo

Demo available here.

NPM Package here.

Description

A minimal and accessible accordion app, created using Create React App and exported to NPM using Create React Library.

Install

  1. npm install --save custom-react-accordion

Usage

With JSON (recommended)

Format your accordion content as JSON data:

  1. [
  2. {
  3. "title": "Item 1",
  4. "description": "Lorem ipsum."
  5. },
  6. {
  7. "title": "Item 2",
  8. "description": "Lorem ipsum."
  9. }
  10. ]

Iterate through JSON and pass in the relevant values as props:

  1. <AccordionWrapper>
  2. {data.map((item, index) => (
  3. <AccordionItem key={index} index={index} title={item.title} description={item.description} ></AccordionItem>
  4. ))}
  5. </AccordionWrapper>

Without JSON

Same format as above, except for adding the props manually:

  1. <AccordionWrapper>
  2. <AccordionItem index={0} title={"Item 1"} description={"Lorem ipsum."}></AccordionItem>
  3. <AccordionItem index={1} title={"Item 2"} description={"Lorem ipsum."}></AccordionItem>
  4. <AccordionItem index={2} title={"Item 3"} description={"Lorem ipsum."}></AccordionItem>
  5. </AccordionWrapper>

Props

Prop Component Type Required Description
Index AccordionItem Number :white_check_mark: The index of the array.
Title AccordionItem String :white_check_mark: Title for each tab.
Description AccordionItem String :white_check_mark: Text for the open panel.

Accessibility

  • Markup includes the appropriate aria attributes (aria-expanded, aria-controls, aria-disabled).
  • Accordion is usable with keyboard only (Tab and Shift+Tab to switch and Enter to open tab).
  • Tested with the WAVE accessibility tool.

Thank you and good luck!