react-sanfona
v1.5.0
Published
React accessible accordion component
Downloads
2,367
Maintainers
Readme
react-sanfona
React accordion component

Usage
Install via NPM:
npm install react-sanfonaThen:
import { Accordion, AccordionItem } from 'react-sanfona';
…
render() {
return (
<Accordion>
{[1, 2, 3, 4, 5].map(item => {
return (
<AccordionItem title={`Item ${item}`} expanded={item === 1}>
<div>
{`Item ${item} content`}
</div>
</AccordionItem>
);
})}
</Accordion>
);
}
…
options / PropTypes
Accordion
| Property | Type | Description | Default |
|:---|:---|:---|:---|
| allowMultiple | Boolean | Allow multiple items to be open at the same time. | false |
| isHovered | Boolean | Allow expanding an element after the mouse hovers an item. | false |
| openNextAccordionItem | Boolean | Opens the next accordion item after the previous one is closed. Defaults first one as active and applies for each accordion item except the last one. | false |
| className | String | Custom classname applied to root element | null |
| style | Object | Inline styles applied to root element | null |
| onChange | Function | Triggered when component updates and passes new state as an argument | null |
| rootTag | String | Custom HTML tag used for root element | 'div' |
| duration | Number | Open/close transition duration in milliseconds | 300 |
| easing | String | Open/close transition easing | 'ease' |
AccordionItem
| Property | Type | Description | Default |
|:---|:---|:---|:---|
| title | String/ Object | Text or Object to display in header. | null |
| expanded | Boolean | If item body should be expanded or not | false |
| onExpand | Function | Callback for when item is expanded | null |
| onClose | Function | Callback for when item closes | null |
| className | String | Custom classname applied to root item element | null |
| bodyClassName | String | Custom classname applied to the accordion item body | null |
| expandedClassName | String | Custom classname applied when accordion is expanded | null |
| titleClassName | String | Custom classname applied to accordion item header text | null |
| disabled | Boolean | If item should be disabled or not | false |
| disabledClassName | String | Custom classname applied to accordion item header text when item is disabled | null |
| rootTag | String | Custom HTML tag used for root element | 'div' |
| titleTag | String | Custom HTML tag used for title element | 'h3' |
| bodyTag | String | Custom HTML tag used for body element | 'div' |
| duration | Number | Open/close transition duration in milliseconds | 300 |
| easing | String | Open/close transition easing | 'ease' |
Styling with classnames
| Classname | Targets |
|:---|:---|
| react-sanfona| Accordion container |
| react-sanfona-item | AccordionItem container |
| react-sanfona-item-expanded | AccordionItem container when expanded |
| react-sanfona-item-title | AccordionItem header text |
| react-sanfona-item-body | AccordionItem body container |
| react-sanfona-item-body-wrapper | AccordionItem body children wrapper |
| react-sanfona-item-disabled | AccordionItem is disabled |
development
npm install
npm start // served on localhost:8080
npm test

