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;
- childrennodeRequiredSpecifies contents of the component. 
- classNamestringSpecifies class name to append to the base element. 
- defaultOpenboolDefaultfalseSpecifies whether the Collapsibleshould be initially open.
- iconWhenClosedelementDefault<Icon src={ExpandMore} />Specifies icon to show when Collapsibleis closed.
- iconWhenOpenelementDefault<Icon src={ExpandLess} />Specifies icon to show when Collapsibleis open.
- onClosefuncCallback fired when Collapsiblecloses.
- onOpenfuncCallback fired when Collapsibleopens.
- onTogglefuncCallback fired when Collapsible'sstate is toggled.
- openboolSpecifies whether Collapsibleis open.
- stylingenum'basic' | 'card' | 'card-lg'Default'card'Specifies style variant. 
- titlenodeRequiredSpecifies title. 
- unmountOnExitboolDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed 
- childrennodeSpecifies contents of the component. 
- classNamestringSpecifies classname to append to the base element. 
- defaultOpenboolDefaultfalseSpecifies whether Collapsibleshould be initially open.
- openboolSpecifies whether Collapsibleis open.
- onTogglefuncCallback fired when Collapsible'sstate is toggled.
- onOpenfuncCallback fired when Collapsibleopens.
- onClosefuncCallback fired when Collapsiblecloses.
- unmountOnExitboolDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed. 
- childrennodeSpecifies contents of the component. 
- tagstringDefault'div'Specifies content's base element. 
- transitionWrapperelementSpecifies transition element. 
- childrennodeSpecifies contents of the component. 
- tagstring|elementTypeDefault'div'Specifies base element. 
- openOnlyboolDefaultfalseSpecifies whether toggling Collapsible'sstate will always trigger only open action.
- closeOnlyboolDefaultfalseSpecifies whether toggling Collapsible'sstate will always trigger only close action.
- onClickfuncCallback fired when element gets clicked. 
- onKeyDownfuncCallback fired when a key is pressed. 
- childrennodeSpecifies contents of the component. 
- whenOpenboolDefaultfalseSpecifies whether the content should be visible when Collapsibleis open.
- whenClosedboolDefaultfalseSpecifies whether the content should be visible when Collapsibleis closed.