Collapsible
Collapsible is an element that allows a user to toggle (view/hide) supplemental information or actions.
When to use:
- To organize related information.
- To shorten pages and reduce scrolling when content is not crucial to read in full.
- When space is at a premium and long content cannot be displayed all at once.
Basic Usage
The styling prop at the top level <Collapsible /> component determines if the collapsible has basic styling, card, or card with heading.
Basic Style <Collapsible styling="basic" />
Card Style <Collapsible styling="card" />
This is the default style if no styling prop is supplied.
Large Card Style <Collapsible styling="card-lg" />
Card with custom icons <Collapsible styling="card-lg" />
Default Open
With Callbacks
Advanced Usage
For needs that deviate from the three styles above, use <Collapsible.Advanced />
Bare minimum
Card style with advanced usage
With a close button
onOpen, onClose and onToggle callbacks
See the developer console for logging.
Controlled usage
Imperative methods
If you need to open or close the Collapsible intermittently due to an event,
such as loading the page or clicking a link, you can open or close
an uncontrolled Collapsible by getting a ref to the component and calling
collapsibleRef.open() or collapsibleRef.close(). The internal state of
the component will be updated accordingly.
Theme Variables (SCSS)#
// Collapsible$collapsible-card-spacer-y: .5rem !default;$collapsible-card-spacer-x: .5rem !default;$collapsible-card-spacer-y-lg: $card-spacer-y !default;$collapsible-card-spacer-x-lg: $card-spacer-x !default;$collapsible-card-body-spacer-left: .75rem !default;$collapsible-card-spacer-icon: 2.5rem !default;$collapsible-basic-spacer-y: .5rem !default;$collapsible-basic-spacer-x: .5rem !default;$collapsible-basic-spacer-icon: .625rem !default;
- children
nodeRequired RequiredSpecifies contents of the component.
- className
stringRequiredSpecifies class name to append to the base element.
- defaultOpen
boolRequiredDefaultfalseSpecifies whether the
Collapsibleshould be initially open. - iconWhenClosed
elementRequiredDefault<Icon src={ExpandMore} />Specifies icon to show when
Collapsibleis closed. - iconWhenOpen
elementRequiredDefault<Icon src={ExpandLess} />Specifies icon to show when
Collapsibleis open. - onClose
funcRequiredCallback fired when
Collapsiblecloses. - onOpen
funcRequiredCallback fired when
Collapsibleopens. - onToggle
funcRequiredCallback fired when
Collapsible'sstate is toggled. - open
boolRequiredSpecifies whether
Collapsibleis open. - styling
enumRequired'basic' | 'card' | 'card-lg'Default'card'Specifies style variant.
- title
nodeRequired RequiredSpecifies title.
- unmountOnExit
boolRequiredDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed
- children
nodeRequiredSpecifies contents of the component.
- className
stringRequiredSpecifies classname to append to the base element.
- defaultOpen
boolRequiredDefaultfalseSpecifies whether
Collapsibleshould be initially open. - open
boolRequiredSpecifies whether
Collapsibleis open. - onToggle
funcRequiredCallback fired when
Collapsible'sstate is toggled. - onOpen
funcRequiredCallback fired when
Collapsibleopens. - onClose
funcRequiredCallback fired when
Collapsiblecloses. - unmountOnExit
boolRequiredDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed.
- children
nodeRequiredSpecifies contents of the component.
- tag
stringRequiredDefault'div'Specifies content's base element.
- transitionWrapper
elementRequiredSpecifies transition element.
- children
nodeRequiredSpecifies contents of the component.
- tag
stringRequired |elementTypeRequired RequiredDefault'div'Specifies base element.
- openOnly
boolRequiredDefaultfalseSpecifies whether toggling
Collapsible'sstate will always trigger only open action. - closeOnly
boolRequiredDefaultfalseSpecifies whether toggling
Collapsible'sstate will always trigger only close action. - onClick
funcRequiredCallback fired when element gets clicked.
- onKeyDown
funcRequiredCallback fired when a key is pressed.
- children
nodeRequiredSpecifies contents of the component.
- whenOpen
boolRequiredDefaultfalseSpecifies whether the content should be visible when
Collapsibleis open. - whenClosed
boolRequiredDefaultfalseSpecifies whether the content should be visible when
Collapsibleis closed.