Details
<sl-details> | SlDetails
Details show a brief summary and expand to show additional content.
<sl-details summary="Toggle Me"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </sl-details>
Examples
Disabled
Use the disable
attribute to prevent the details from expanding.
<sl-details summary="Disabled" disabled> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </sl-details>
Customizing the Summary Icon
Use the expand-icon
and collapse-icon
slots to change the expand and collapse
icons, respectively. To disable the animation, override the rotate
property on the
summary-icon
part as shown below.
<sl-details summary="Toggle Me" class="custom-icons" disable-rotate> <sl-icon name="square-plus" slot="expand-icon"></sl-icon> <sl-icon name="square-minus" slot="collapse-icon"></sl-icon> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </sl-details>
Checkbox variant
Use sl-check-box
as summary icon. Can change the icon position with
summary-icon-position
, default position is right.
<div class="container"> <sl-details summary="Toggle Me" class="details-with-checkbox" summary-icon-position="left" disable-rotate open> <sl-checkbox slot="expand-icon"></sl-checkbox> <sl-checkbox checked slot="collapse-icon"></sl-checkbox> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </sl-details> <sl-details summary="Toggle Me" class="details-with-checkbox" summary-icon-position="left" disable-rotate> <sl-checkbox slot="expand-icon"></sl-checkbox> <sl-checkbox checked slot="collapse-icon"></sl-checkbox> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </sl-details> </div> <style> .container { display: flex; flex-direction: column; gap: 10px; } .details-with-checkbox sl-checkbox::part(form-control) { display: flex; align-items: center; } .details-with-checkbox sl-checkbox::part(label) { margin-inline-start: 0 !important; } </style>
Multi-actions
Use multi-actions by adding sl-dropdown
component to slot actions-dropdown
.
<sl-details summary="Toggle Me"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <sl-dropdown slot="actions-dropdown"> <sl-icon-button slot="trigger" name="ellipsis"></sl-icon-button> <sl-menu> <sl-menu-item value="delete">Delete</sl-menu-item> <sl-menu-item value="duplicate">Duplicate</sl-menu-item> <sl-menu-item value="disabled" disabled>Disabled</sl-menu-item> </sl-menu> </sl-dropdown> </sl-details>
Slots
Name | Description |
---|---|
(default) | The details’ main content. |
summary
|
The details’ summary. Alternatively, you can use the summary attribute. |
expand-icon
|
Optional expand icon to use instead of the default. Works best with <sl-icon> .
|
collapse-icon
|
Optional collapse icon to use instead of the default. Works best with <sl-icon> .
|
actions-dropdown
|
Optional multi-actions to use. Works best with <sl-dropdown> . |
Learn more about using slots.
Properties
Name | Description | Reflects | Type | Default |
---|---|---|---|---|
open
|
Indicates whether or not the details is open. You can toggle this attribute to show and hide the
details, or you can use the show() and hide() methods and this attribute
will reflect the details’ open state.
|
|
boolean
|
false
|
summary
|
The summary to show in the header. If you need to display HTML, use the summary slot
instead.
|
string
|
- | |
disabled
|
Disables the details so it can’t be toggled. |
|
boolean
|
false
|
summaryIconPosition
summary-icon-position
|
The position of the summary icon. |
'left' | 'right'
|
'right'
|
|
disableRotate
disable-rotate
|
Disables the rotation of the summary icon when the details are open. |
boolean
|
false
|
|
updateComplete |
A read-only promise that resolves when the component has finished updating. |
Learn more about attributes and properties.
Events
Name | React Event | Description | Event Detail |
---|---|---|---|
sl-show |
|
Emitted when the details opens. | - |
sl-after-show |
|
Emitted after the details opens and all animations are complete. | - |
sl-hide |
|
Emitted when the details closes. | - |
sl-after-hide |
|
Emitted after the details closes and all animations are complete. | - |
Learn more about events.
Methods
Name | Description | Arguments |
---|---|---|
show() |
Shows the details. | - |
hide() |
Hides the details | - |
Learn more about methods.
Parts
Name | Description |
---|---|
base |
The component’s base wrapper. |
header |
The header that wraps both the summary and the expand/collapse icon. |
summary |
The container that wraps the summary. |
summary-icon |
The container that wraps the expand/collapse icons. |
content |
The details content. |
Learn more about customizing CSS parts.
Animations
Name | Description |
---|---|
details.show |
The animation to use when showing details. You can use height: auto with this
animation.
|
details.hide |
The animation to use when hiding details. You can use height: auto with this animation.
|
Learn more about customizing animations.
Dependencies
This component automatically imports the following dependencies.
<sl-icon>