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