Accordions are a good way to deliver a large amount of information. An accordion is a list of headers that after being clicked reveal or hide more content related to them. The header gives the user a summary of the content and the user decides if they need to see the extended content or not.

Import

import { Accordion } from '@contentful/f36-components';

Examples

The accordion has two variations that define the alignment of the chevron icon: left or right.

Basic usage

Using it with other components

Other typographic components can be passed as the accordion's title and anything can be used as the accordion's content. For example:

Props (API reference)

Accordion

Name

Type

Default

align
"start"
"end"

Specify the alignment of the chevron inside the accordion header

end
children
ReactNode

Child nodes to be rendered in the component

className
string

CSS class to be appended to the root element

testId
string

A [data-test-id] attribute used for testing purposes

cf-ui-accordion

Accordion.Item

Name

Type

Default

align
"start"
"end"

Specify the alignment of the chevron inside the accordion header

end
children
ReactNode

The children of the AccordionItem are in fact the content of the accordion

className
string

CSS class to be appended to the root element

onCollapse
Function

A function to be called when the accordion item is closed

onExpand
Function

A function to be called when the accordion item is opened

testId
string

A [data-test-id] attribute used for testing purposes

cf-ui-accordion-item
title
string
number
false
true
{}
ReactElement<any, string | JSXElementConstructor<any>>
ReactNodeArray
ReactPortal

The accordion title

Accordion Title
titleElement
"h1"
"h2"
"h3"
"h4"
"h5"
"h6"

The heading element that will be used by the AccordionHeader

h2

Content guidelines

  • The title should be a short message that summarize the content of the accordion.
  • Anything can be passed as the content of the accordion, but often organizing it with Texts and Tables would be enough.
  • When using headings, be mindful about the heading levels. The header is a Subheading with h2 tag.

Accessibility

  • It allows keyboard navigation to open and close the accordions