React Collapse Component (2024)

React collapse component toggles the visibility of content across your project with a few classes and some scripts. Useful for a large amount of content.

Other frameworks

CoreUI components are available as native Angular, Bootstrap (Vanilla JS), and Vue components. To learn more please visit the following pages.

How it works#

The collapse component is used to show and hide content. Buttons or anchors are used as triggers that are mapped to specific elements you toggle. Collapsing an element will animate the height from its current value to 0. Given how CSS handles animations, you cannot use padding on a .collapse element. Instead, use the class as an independent wrapping element.

Example#

You can use a link or a button component.

Link

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.

const [visible, setVisible] = useState(false)

return (

<>

<CButton

color="primary"

href="#"

onClick={(event) => {

event.preventDefault()

setVisible(!visible)

}}

>

Link

</CButton>

<CButton color="primary" onClick={() => setVisible(!visible)}>

Button

</CButton>

<CCollapse visible={visible}>

<CCard className="mt-3">

<CCardBody>

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad

squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt

sapiente ea proident.

</CCardBody>

</CCard>

</CCollapse>

</>

)

Horizontal#

The collapse plugin also supports horizontal collapsing. Add the horizontal property to transition the width instead of height and set a width on the immediate child element.

This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.

const [visible, setVisible] = useState(false)

return (

<>

<CButton

className="mb-3"

onClick={() => setVisible(!visible)}

aria-expanded={visible}

aria-controls="collapseWidthExample"

>

Button

</CButton>

<div style={{ minHeight: '120px' }}>

<CCollapse id="collapseWidthExample" horizontal visible={visible}>

<CCard style={{ width: '300px' }}>

<CCardBody>

This is some placeholder content for a horizontal collapse. It's hidden by default and

shown when triggered.

</CCardBody>

</CCard>

</CCollapse>

</div>

</>

)

Multiple targets#

A <CButton> can show and hide multiple elements.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.

const [visibleA, setVisibleA] = useState(false)

const [visibleB, setVisibleB] = useState(false)

return (

<>

<CButton color="primary" onClick={() => setVisibleA(!visibleA)}>

Toggle first element

</CButton>

<CButton color="primary" onClick={() => setVisibleB(!visibleB)}>

Toggle second element

</CButton>

<CButton

color="primary"

onClick={() => {

setVisibleA(!visibleA)

setVisibleB(!visibleB)

}}

>

Toggle both elements

</CButton>

<CRow>

<CCol xs={6}>

<CCollapse visible={visibleA}>

<CCard className="mt-3">

<CCardBody>

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson

ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt

sapiente ea proident.

</CCardBody>

</CCard>

</CCollapse>

</CCol>

<CCol xs={6}>

<CCollapse visible={visibleB}>

<CCard className="mt-3">

<CCardBody>

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson

ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt

sapiente ea proident.

</CCardBody>

</CCard>

</CCollapse>

</CCol>

</CRow>

</>

)

API#

CCollapse#

import { CCollapse } from '@coreui/react'

// or

import CCollapse from '@coreui/react/src/components/collapse/CCollapse'

PropertyDescriptionTypeDefault
classNameA string of all className you want applied to the base component.string-
horizontalSet horizontal collapsing to transition the width instead of height.boolean-
onHideCallback fired when the component requests to be hidden.() => void-
onShowCallback fired when the component requests to be shown.() => void-
visibleToggle the visibility of component.boolean-

On this page

React Collapse Component (2024)
Top Articles
Latest Posts
Article information

Author: Rueben Jacobs

Last Updated:

Views: 5642

Rating: 4.7 / 5 (77 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Rueben Jacobs

Birthday: 1999-03-14

Address: 951 Caterina Walk, Schambergerside, CA 67667-0896

Phone: +6881806848632

Job: Internal Education Planner

Hobby: Candle making, Cabaret, Poi, Gambling, Rock climbing, Wood carving, Computer programming

Introduction: My name is Rueben Jacobs, I am a cooperative, beautiful, kind, comfortable, glamorous, open, magnificent person who loves writing and wants to share my knowledge and understanding with you.