unstable_AccordionItem API
- Component status:
deprecated
import { unstable_AccordionItem as AccordionItem } from "@stratakit/structures";// ORimport * as AccordionItem from "@stratakit/structures/unstable_AccordionItem";AccordionItem.Root Deprecated
Section titled âAccordionItem.Root DeprecatedâAn item within an accordion. Disclosed content with a label.
Bare minimum example:
<AccordionItem.Root> <AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Header> <AccordionItem.Content>Body</AccordionItem.Content></AccordionItem.Root>If the accordion item discloses a significant section of the page, it may be
desirable to markup its label as a heading for accessibility purposes (e.g.
screen reader users often navigate by heading). For those cases, you can wrap
the AccordionItem.Button component with an AccordionItem.Heading
component and use its render prop for rendering an HTML heading element.
<AccordionItem.Root> <AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Heading render={<h2 />}> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Heading> </AccordionItem.Header> <AccordionItem.Content>Body</AccordionItem.Content></AccordionItem.Root>Example with a decoration:
<AccordionItem.Root> <AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Decoration render={<Icon href={svgPlaceholder} />} /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Header> <AccordionItem.Content>Body</AccordionItem.Content></AccordionItem.Root>defaultOpen
Section titled âdefaultOpenâboolean | undefined(optional)falseThe accordion itemâs initial open state.
boolean | undefined(optional)falseThe accordion itemâs controlled open state.
setOpen
Section titled âsetOpenâ((open: boolean) => void) | undefined(optional)Callback fired when the accordion item is opened.
Should be used with the open prop.
Additional props
Section titled âAdditional propsâAccordionItem.Header Deprecated
Section titled âAccordionItem.Header DeprecatedâThe always visible header of an accordion item.
Must include an AccordionItem.Button and AccordionItem.Marker as a direct
descendants.
Example:
<AccordionItem.Root> <AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Header> <AccordionItem.Content>Body</AccordionItem.Content></AccordionItem.Root>Additional props
Section titled âAdditional propsâAccordionItem.Button Deprecated
Section titled âAccordionItem.Button DeprecatedâThe accordion item button.
Must be a direct descendant of AccordionItem.Header.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button></AccordionItem.Header>Additional props
Section titled âAdditional propsâAccordionItem.Label Deprecated
Section titled âAccordionItem.Label DeprecatedâAn accordion itemâs label.
Must be a descendant of AccordionItem.Button.
Example:
<AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label></AccordionItem.Button>Additional props
Section titled âAdditional propsâAccordionItem.Decoration Deprecated
Section titled âAccordionItem.Decoration DeprecatedâThe always-visible, optional decoration of the AccordionItem.Header content.
It can be placed before or after the rest of the content in
AccordionItem.Header. However, the AccordionItem.Marker must always be
placed at either edge (beginning or end) of the header.
Use as a direct descendant of AccordionItem.Header. The decoration
can be placed before the rest of the header content.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Decoration render={<Icon href={svgPlaceholder} />} /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button></AccordionItem.Header>Alternatively, the decoration can also be placed after the rest of the header content.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> <AccordionItem.Decoration render={<Icon href={svgPlaceholder} />} /></AccordionItem.Header>There can also be multiple decorations if passed as children under
AccordionItem.Decoration.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Decoration> <Icon href={svgPlaceholder} /> <Icon href={svgPlaceholder} /> </AccordionItem.Decoration> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button></AccordionItem.Header>Additional props
Section titled âAdditional propsâAccordionItem.Marker Deprecated
Section titled âAccordionItem.Marker DeprecatedâThe visual marker of the AccordionItem.Header content. While it can be
placed before or after the rest of the content in AccordionItem.Header,
it is recommended to place the marker before.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button></AccordionItem.Header>Alternatively, the marker can also be placed after the rest of the header content.
Example:
<AccordionItem.Header> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> <AccordionItem.Marker /></AccordionItem.Header>Pass an icon as a child to override the default chevron icon:
<AccordionItem.Header> <AccordionItem.Marker> <Icon href={svgPlaceholder} /> </AccordionItem.Marker> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button></AccordionItem.Header>Additional props
Section titled âAdditional propsâAccordionItem.Content Deprecated
Section titled âAccordionItem.Content DeprecatedâThe disclosed content of the accordion item.
Example:
<AccordionItem.Root> <AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Header> <AccordionItem.Content>Body</AccordionItem.Content></AccordionItem.Root>Additional props
Section titled âAdditional propsâAccordionItem.Heading Deprecated
Section titled âAccordionItem.Heading DeprecatedâA heading for wrapping AccordionItem.Button.
The render prop is required.
Example:
<AccordionItem.Header> <AccordionItem.Marker /> <AccordionItem.Heading render={<h2 />}> <AccordionItem.Button> <AccordionItem.Label>Label</AccordionItem.Label> </AccordionItem.Button> </AccordionItem.Heading></AccordionItem.Header>(props: P) => React.ReactNode | React.ReactElement(required)