Accordion
Last modified by Thiago Krieck on 2023/12/05 11:32
Properties:
- Title
- Text
Shoelace
https://shoelace.style/components/details
In Shoelace the accordion component doesn't exist properly. A workaround is using a details component with the parameters below
<div class="details-group-example">
<sl-details summary="First" open>
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="Second">
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="Third">
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>
<script>
const container = document.querySelector('.details-group-example');
// Close all other details when one is shown
container.addEventListener('sl-show', event => {
if (event.target.localName === 'sl-details') {
[...container.querySelectorAll('sl-details')].map(details => (details.open = event.target === details));
}
});
</script>
<style>
.details-group-example sl-details:not(:last-of-type) {
margin-bottom: var(--sl-spacing-2x-small);
}
</style>vue-dsfr
<template>
<DsfrAccordionsGroup>
<li>
<DsfrAccordion
:title="title1"
:expanded-id="expandedId"
@expand="expandedId = $event"
>
Contenu de l’accordéon 1
</DsfrAccordion>
</li>
<li>
<DsfrAccordion
:title="title2"
:expanded-id="expandedId"
@expand="expandedId = $event"
>
Contenu de l’accordéon 2
</DsfrAccordion>
</li>
</DsfrAccordionsGroup>
</template>Vuetify
<v-expansion-panels>
<v-expansion-panel title="Title" text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi, ratione debitis quis est labore voluptatibus! Eaque cupiditate minima" >
</v-expansion-panel>
</v-expansion-panels>