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
Card Style
This is the default style if no styling
prop is supplied.
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
node
Required RequiredSpecifies contents of the component.
- className
string
RequiredSpecifies class name to append to the base element.
- defaultOpen
bool
RequiredDefaultfalseSpecifies whether the
Collapsible
should be initially open. - iconWhenClosed
element
RequiredDefault<Icon src={ExpandMore} />Specifies icon to show when
Collapsible
is closed. - iconWhenOpen
element
RequiredDefault<Icon src={ExpandLess} />Specifies icon to show when
Collapsible
is open. - onClose
func
RequiredCallback fired when
Collapsible
closes. - onOpen
func
RequiredCallback fired when
Collapsible
opens. - onToggle
func
RequiredCallback fired when
Collapsible's
state is toggled. - open
bool
RequiredSpecifies whether
Collapsible
is open. - styling
enum
Required'basic' | 'card' | 'card-lg'Default'card'Specifies style variant.
- title
node
Required RequiredSpecifies title.
- unmountOnExit
bool
RequiredDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed
- children
node
RequiredSpecifies contents of the component.
- className
string
RequiredSpecifies classname to append to the base element.
- defaultOpen
bool
RequiredDefaultfalseSpecifies whether
Collapsible
should be initially open. - open
bool
RequiredSpecifies whether
Collapsible
is open. - onToggle
func
RequiredCallback fired when
Collapsible's
state is toggled. - onOpen
func
RequiredCallback fired when
Collapsible
opens. - onClose
func
RequiredCallback fired when
Collapsible
closes. - unmountOnExit
bool
RequiredDefaulttrueUnmount the component (remove it from the DOM) when it is collapsed.
- children
node
RequiredSpecifies contents of the component.
- tag
string
RequiredDefault'div'Specifies content's base element.
- transitionWrapper
element
RequiredSpecifies transition element.
- children
node
RequiredSpecifies contents of the component.
- tag
string
Required |elementType
Required RequiredDefault'div'Specifies base element.
- openOnly
bool
RequiredDefaultfalseSpecifies whether toggling
Collapsible's
state will always trigger only open action. - closeOnly
bool
RequiredDefaultfalseSpecifies whether toggling
Collapsible's
state will always trigger only close action. - onClick
func
RequiredCallback fired when element gets clicked.
- onKeyDown
func
RequiredCallback fired when a key is pressed.
- children
node
RequiredSpecifies contents of the component.
- whenOpen
bool
RequiredDefaultfalseSpecifies whether the content should be visible when
Collapsible
is open. - whenClosed
bool
RequiredDefaultfalseSpecifies whether the content should be visible when
Collapsible
is closed.