@highlight-ui/accordion v5.1.7
@highlight-ui/accordion
Installation
Using npm:
npm install @highlight-ui/accordion
Using yarn:
yarn add @highlight-ui/accordion
Using pnpm:
pnpm install @highlight-ui/accordion
In your (S)CSS file:
@import url('@highlight-ui/accordion');
Once the package is installed, you can import the library:
import {
Accordion,
AccordionProps,
AccordionSection,
Expandable,
ExpandableProps,
} from '@highlight-ui/accordion';
Performance Tips
Once the package is installed, you can import the library. The Accordion component depends on React DND, which is a relatively heavy dependency. This component's package is tree shakeable, if you do not need the drag-and-drop functionalities you can import the StaticAccordion
component instead of the Accordion
component.
import { StaticAccordion } from '@highlight-ui/accordion';
If you only need the drag-and-drop functionalities of the component, you can import
the DraggableAccordion
component:
import { DraggableAccordion } from '@highlight-ui/accordion';
Usage
Standard Accordion
import React, { useState } from 'react';
import { Accordion } from '@highlight-ui/accordion';
export default function AccordionExample() {
return (
<Accordion
sections={
({
key: '1',
title: 'Title 1',
content: 'Lorem ipsum dolor sit amet consectetur adipisicing elit.',
},
{
key: '2',
title: 'Title 2',
disabled: true,
content: 'Lorem ipsum dolor sit amet consectetur adipisicing elit.',
},
{
key: '3',
title: 'Title 3',
content: 'Lorem ipsum dolor sit, amet consectetur adipisicing elit.',
})
}
/>
);
}
Accordion with actions
import React, { useState } from 'react';
import { Accordion } from '@highlight-ui/accordion';
import { Button } from '@highlight-ui/button';
import { Input } from '@highlight-ui/input';
export default function AccordionExample() {
return (
<Accordion
sections={[
{
key: '1',
title: 'Title 1',
actions: (
<Button variant="emphasized" onClick={() => alert('Hello')}>
Click me
</Button>
),
content: (
<div>
<Button>A focusable button</Button>
<Input placeholder="A focusable input" />
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</div>
),
},
{
key: '2',
title: 'Title 2',
actions: (
<Button variant="emphasized" onClick={() => alert('Hello')}>
Click me
</Button>
),
content: 'Lorem ipsum dolor sit amet consectetur adipisicing elit.',
},
]}
/>
);
}
Props 📜
Accordion
Prop | Type | Required | Default | Description |
---|---|---|---|---|
sections | AccordionSection | Yes | An array of AccordionSection data structure | |
selectable | boolean | No | false | Should segments be selectable using a checkbox |
selectableSections | AccordionSection | No | Indicates the selected checkboxes in sections | |
mutltiple | boolean | No | false | Should multiple sections remain open |
initiallyOpen | AccordionSection | No | The sections which are open by default. In case multiple is set to false , only the first array element will be opened. | |
onExpansionChange | (section: AccordionSection, isExpanded: boolean, index: number ) => void | No | Callback fired whenever the section opens or closes. | |
onSelectedSectionsChange | (sections: AccordionSection[]) => void | No | Will be called with each selection change when the selectable prop is true . | |
dragProps | DragProps<AccordionSection, D> | No | Configuration for drag-and-drop capabilities. |
Custom types 🔠
Type | Values | Description |
---|---|---|
AccordionSection | {key: string, title: React.ReactNode, content: React.ReactNode, actions?: React.ReactNode, disabled? boolean} | Used for a number of section props |
DragProps | Provided by the drag-and-drop utility package |
Contributing 🖌️
Please visit personio.design for usage guidelines and visual examples.
If you're interested in contributing, please visit our contribution page.
2 months ago
3 months ago
5 months ago
5 months ago
5 months ago
7 months ago
7 months ago
7 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
7 months ago
7 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago