Expandable section

An expandable section is a content section with a text toggle that reveals content that is hidden by default.

Examples

Hidden

Expanded

This content is visible only when the component is expanded.

Indented

This content is visible only when the component is expanded.

Disclosure variation (hidden)

Disclosure variation (expanded)

This content is visible only when the component is expanded.

Disclosure variation (indented)

This content is visible only when the component is expanded.

Detached

This content is visible only when the component is expanded.

Truncate expansion (hidden)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus finibus, diam vitae eleifend consequat, metus sapien posuere quam, ut tincidunt nunc enim eget sapien. Mauris ac dui imperdiet dolor dignissim efficitur laoreet quis erat. Proin turpis leo, malesuada eget urna et, tristique mollis odio. Ut mattis nulla lorem, elementum hendrerit nunc molestie vitae. Proin massa sem, bibendum id urna in, viverra porta neque. Ut ut mi ac lacus rhoncus mollis id quis sem. Suspendisse non justo elementum, dictum eros nec, hendrerit sapien. Mauris aliquet, est sit amet tincidunt vehicula, purus est hendrerit arcu, vitae egestas odio lorem ut lacus. In et neque non metus viverra rhoncus quis non purus. Integer id venenatis tortor. Nulla sollicitudin convallis tellus, at porta eros volutpat in. Curabitur rhoncus rhoncus nisi, sit amet tincidunt dolor efficitur vitae. Integer purus neque, porta non odio lobortis, accumsan elementum risus. Pellentesque viverra id lacus a cursus. Etiam eu pulvinar risus. Etiam ultrices nec urna id consequat.

Truncate expansion (expanded)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus finibus, diam vitae eleifend consequat, metus sapien posuere quam, ut tincidunt nunc enim eget sapien. Mauris ac dui imperdiet dolor dignissim efficitur laoreet quis erat. Proin turpis leo, malesuada eget urna et, tristique mollis odio. Ut mattis nulla lorem, elementum hendrerit nunc molestie vitae. Proin massa sem, bibendum id urna in, viverra porta neque. Ut ut mi ac lacus rhoncus mollis id quis sem. Suspendisse non justo elementum, dictum eros nec, hendrerit sapien. Mauris aliquet, est sit amet tincidunt vehicula, purus est hendrerit arcu, vitae egestas odio lorem ut lacus. In et neque non metus viverra rhoncus quis non purus. Integer id venenatis tortor. Nulla sollicitudin convallis tellus, at porta eros volutpat in. Curabitur rhoncus rhoncus nisi, sit amet tincidunt dolor efficitur vitae. Integer purus neque, porta non odio lobortis, accumsan elementum risus. Pellentesque viverra id lacus a cursus. Etiam eu pulvinar risus. Etiam ultrices nec urna id consequat.

Documentation

Accessibility

Attribute
Applied to
Outcome
aria-expanded="true"
.pf-v6-c-expandable-section__toggle .pf-v6-c-button
Indicates that the expandable section content is visible. Required
aria-expanded="false"
.pf-v6-c-expandable-section__toggle .pf-v6-c-button
Indicates the the expandable section content is hidden. Required
hidden
.pf-v6-c-expandable-section__content
Indicates that the expandable section content element is hidden. Use with aria-expanded="false" Required
aria-hidden="true"
.pf-v6-c-expandable-section__toggle-icon
Hides the icon from screen readers. Required
aria-controls="[id of content element]"
.pf-v6-c-expandable-section.pf-m-detached .pf-v6-c-expandable-section__toggle .pf-v6-c-button
Identifies the element controlled by the toggle button. Required
id
.pf-v6-c-expandable-section.pf-m-detached .pf-v6-c-expandable-section__content
Gives the content an id for use with aria-controls on .pf-v6-c-expandable-section__toggle .pf-v6-c-button. Required

Usage

Class
Applied to
Outcome
.pf-v6-c-expandable-section
<div>
Initiates the expandable section component. Required
.pf-v6-c-expandable-section__toggle
<div>
Initiates the expandable toggle wrapper. Required
.pf-v6-c-expandable-section__toggle-icon
<span>
Initiates the expandable toggle icon. Required
.pf-v6-c-expandable-section__content
<div>
Initiates the expandable section content. Required
.pf-m-expanded
.pf-v6-c-expandable-section
Modifies the component for the expanded state.
.pf-m-display-lg
.pf-v6-c-expandable-section
Modifies the styling of the component to have large display styling.
.pf-m-indented
.pf-v6-c-expandable-section
Indicates that the expandable section content is indented and is aligned with the start of the title text to provide visual hierarchy.
.pf-m-truncate
.pf-v6-c-expandable-section
Indicates that the expandable section content is truncated by default, and not truncated when expanded.
.pf-m-expand-top
.pf-v6-c-expandable-section__toggle-icon
Modifies the toggle icon to point up when expanded.
--pf-v6-c-expandable-section--m-truncate__content--LineClamp
.pf-v6-c-expandable-section.pf-m-truncate
Modifies the number of lines to show before truncating.

CSS variables

Expand or collapse columnSelectorVariableValue
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--PaddingBlockStart
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--PaddingInlineEnd
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--PaddingBlockEnd
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--PaddingInlineStart
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--BackgroundColor
transparent
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle--ColumnGap
calc(0.25rem + 0.5rem)
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-icon--MinWidth
1em
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-icon--Color
(In light theme) #1f1f1f
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-icon--Transition
.2s ease-in 0s
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-icon--Rotate
0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-icon--m-expand-top--Rotate
0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-expanded__toggle-icon--Rotate
90deg
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-expanded__toggle-icon--m-expand-top--Rotate
-90deg
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-text--Color
(In light theme) #0066cc
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__toggle-text--hover--Color
(In light theme) #004d99
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-expanded__toggle-text--Color
(In light theme) #004d99
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__content--PaddingBlockStart
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__content--PaddingInlineEnd
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__content--PaddingBlockEnd
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__content--PaddingInlineStart
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section__content--MaxWidth
auto
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-limit-width__content--MaxWidth
46.875rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg--BackgroundColor
(In light theme) #f2f2f2
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg--BorderColor
(In light theme) #c7c7c7
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg--BorderRadius
16px
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--PaddingBlockStart
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--PaddingInlineEnd
1.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--PaddingBlockEnd
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--PaddingInlineStart
1.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--BorderRadius
16px
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--Width
100%
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--hover--BackgroundColor
(In light theme) #e0e0e0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--active--BackgroundColor
(In light theme) #e0e0e0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__toggle--focus--BackgroundColor
(In light theme) #e0e0e0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__content--PaddingInlineEnd
1.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__content--PaddingBlockEnd
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg__content--PaddingInlineStart
1.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-expanded--m-display-lg__toggle--BorderRadius
16px 16px 0 0
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-indented__content--PaddingInlineStart--base
calc(calc(0.25rem + 0.5rem) + 1em)
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-indented__content--PaddingInlineStart
calc(calc(calc(0.25rem + 0.5rem) + 1em) + 0.5rem)
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-display-lg--m-indented__content--PaddingInlineStart
calc(calc(calc(0.25rem + 0.5rem) + 1em) + 1.5rem)
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate--PaddingBlockStart
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate--PaddingInlineEnd
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate--PaddingBlockEnd
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate--PaddingInlineStart
1rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate__toggle--PaddingBlockEnd
0.5rem
:where(:root, .pf-v6-c-expandable-section)--pf-v6-c-expandable-section--m-truncate__content--LineClamp
3
.pf-v6-c-expandable-section.pf-m-expanded--pf-v6-c-expandable-section__toggle-text--Color
(In light theme) #004d99
.pf-v6-c-expandable-section.pf-m-expanded--pf-v6-c-expandable-section__toggle-icon--Rotate
90deg
.pf-v6-c-expandable-section.pf-m-expanded--pf-v6-c-expandable-section__toggle-icon--m-expand-top--Rotate
-90deg
.pf-v6-c-expandable-section.pf-m-expanded--pf-v6-c-expandable-section--m-display-lg--after--BackgroundColor
undefined
.pf-v6-c-expandable-section.pf-m-expanded--pf-v6-c-expandable-section--m-display-lg__toggle--BorderRadius
16px 16px 0 0
.pf-v6-c-expandable-section.pf-m-limit-width--pf-v6-c-expandable-section__content--MaxWidth
46.875rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--PaddingBlockStart
1rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--PaddingInlineEnd
1.5rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--PaddingBlockEnd
1rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--PaddingInlineStart
1.5rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--hover--BackgroundColor
(In light theme) #e0e0e0
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--active--BackgroundColor
(In light theme) #e0e0e0
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--focus--BackgroundColor
(In light theme) #e0e0e0
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--BorderRadius
16px
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__toggle--Width
100%
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__content--PaddingInlineEnd
1.5rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__content--PaddingBlockEnd
1rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section__content--PaddingInlineStart
1.5rem
.pf-v6-c-expandable-section.pf-m-display-lg--pf-v6-c-expandable-section--m-indented__content--PaddingInlineStart
calc(calc(calc(0.25rem + 0.5rem) + 1em) + 1.5rem)
.pf-v6-c-expandable-section.pf-m-indented--pf-v6-c-expandable-section__content--PaddingInlineStart
calc(calc(calc(0.25rem + 0.5rem) + 1em) + 0.5rem)
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__toggle--PaddingBlockStart
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__toggle--PaddingInlineEnd
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__toggle--PaddingBlockEnd
0.5rem
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__toggle--PaddingInlineStart
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__content--PaddingBlockStart
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__content--PaddingInlineEnd
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__content--PaddingBlockEnd
0
.pf-v6-c-expandable-section.pf-m-truncate--pf-v6-c-expandable-section__content--PaddingInlineStart
0
.pf-v6-c-expandable-section__toggle:is(:hover, :focus)--pf-v6-c-expandable-section__toggle-text--Color
(In light theme) #004d99
.pf-v6-c-expandable-section__toggle:is(:hover, :focus)--pf-v6-c-expandable-section__toggle--BackgroundColor
(In light theme) #e0e0e0, initial
.pf-v6-c-expandable-section__toggle-icon.pf-m-expand-top--pf-v6-c-expandable-section__toggle-icon--Rotate
0