Hoppa till huvudinnehåll

Accordion

Utfällbar komponent som används för att minska informationsmängden som direkt presenteras för användaren.

<Accordion>
<AccordionItem
id='mandarin'
title='Mandarin'
>
Liten orange citrusfrukt
</AccordionItem>
<AccordionItem
id='sharon'
title='Sharon'
>
Persikoliknande frukt med fast kött
</AccordionItem>
<AccordionItem
id='watermelon'
title='Vattenmelon'
>
Stor frukt med rött, saftigt kött
</AccordionItem>
</Accordion>

Installation

npm install @midas-ds/components
import { Accordion, AccordionItem } from '@midas-ds/components'

Beskrivning

Accordion bygger på React Arias DisclosureGroup medan AccordionItem är motsvarande Disclosure. Se dokumentation för respektive komponent för fler detaljer.

Egenskaper

Accordion har flertalet varianter och egenskaper.

Contained

En tydligare variant av layouten när det finns en tydlig gräns mellan varje sektion.

<Accordion variant='contained'>
{/* more items */}
<AccordionItem
id='mandarin'
title='Mandarin'
>
Liten orange citrusfrukt
</AccordionItem>
</Accordion>

Status

AccordionItems kan ha en status för att förtydliga för användaren att hen antingen är klar med det steget eller påkalla uppmärksamhet till att det t.ex finns fler åtgärder att utföra.

<Accordion variant='contained'>
{/* more items */}
<AccordionItem
id='mandarin'
title='Mandarin'
type='success'
>
Liten orange citrusfrukt
</AccordionItem>
<AccordionItem
id='sharon'
title='Sharon'
type='warning'
>
Persikoliknande frukt med fast kött
</AccordionItem>
</Accordion>

Multiple

En accordion har som standard bara en öppet samtidigt och stänger automatiskt andra sektioner när en ny öppnas. Detta kan ändras genom att sätta prop allowsMultipleExpanded.

<Accordion allowsMultipleExpanded>
<AccordionItem>...</AccordionItem>
</Accordion>

Uncontrolled expanded

En Accordion kan ha en eller flera sektioner öppna som förvalt värde. Detta görs genom att sätta defaultExpandedKeysAccordion. Värdena i defaultExpandedKeys måste matcha id på de AccordionItem som du vill expandera.

<Accordion defaultExpandedKeys={['sharon']}>
<AccordionItem
id='mandarin'
title='Mandarin'
>
Liten orange citrusfrukt
</AccordionItem>
<AccordionItem
id='sharon'
title='Sharon'
>
Persikoliknande frukt med fast kött
</AccordionItem>
<AccordionItem
id='watermelon'
title='Vattenmelon'
>
Stor frukt med rött, saftigt kött
</AccordionItem>
</Accordion>
Persikoliknande frukt med fast kött

Controlled expanded

En controlled Accordion kan expanderas programmatiskt med expandedKeys och onExpandedChange. Värdena i expandedKeys måste matcha id på de AccordionItem-komponenter du vill expandera.

const [expandedKeys, setExpandedKeys] = React.useState<Set<Key>>(new Set(['mandarin']))

<Accordion
expandedKeys={expandedKeys}
onExpandedChange={setExpandedKeys}
allowsMultipleExpanded
>
<AccordionItem
id="mandarin"
title="Mandarin"
>
Liten orange citrusfrukt
</AccordionItem>
<AccordionItem
id="sharon"
title="Sharon"
>
Persikoliknande frukt med fast kött
</AccordionItem>
<AccordionItem
id="watermelon"
title="Vattenmelon"
>
Stor frukt med rött, saftigt kött
</AccordionItem>
</Accordion>

<pre>
Följande AccordionItems är öppna: {Array.from(expandedKeys).join(', ')}
</pre>
Liten orange citrusfrukt
Följande AccordionItems är öppna: mandarin

API

Accordion

NameTypeDefaultDescription
variantuncontained

Display either the larger contained variant or a smaller uncontained variant

typesingle

@deprecated since v8.0.0 Use 'allowsMultipleExpanded' instead

allowsMultipleExpanded-

Whether multiple items can be expanded at the same time.

isDisabled-

Whether all items are disabled.

expandedKeysIterable<Key>-

The currently expanded keys in the group (controlled).

defaultExpandedKeysIterable<Key>-

The initial expanded keys in the group (uncontrolled).

children-

The children of the component. A function may be provided to alter the children based on component state.

className-

The CSS className for the element. A function may be provided to compute the class based on component state.

style-

The inline style for the element. A function may be provided to compute the style based on component state.

idstring-

The element's unique identifier. See MDN.

AccordionItem