Accordéon
Des sections qui se replient. Il est construit sur <details> et <summary>, si bien que l'état ouvert, le comportement clavier et la recherche dans la page viennent tous du navigateur.
Utilisation
Does it work with Nuxt?
Is there a Tailwind preset?
Exemples
Variantes
variant définit la décoration du groupe : flat (par défaut) ne dessine rien, outlined ajoute un fond surélevé, une bordure et des coins arrondis.
Flat, the default
No background, no border
Outlined
Its own surface
Une section à la fois
Un groupe ne garde qu'une section ouverte par défaut. multiple permet d'en garder plusieurs ouvertes en même temps. VSideNavigation a le défaut et la prop inverses, exclusive : une barre latérale laisse d'ordinaire plusieurs sections ouvertes.
How long does delivery take?
Do you ship outside Europe?
Can I change the address after ordering?
What can I return?
Who pays for the return?
When is the refund issued?
Sous-titres et icônes
icon place une icône avant le titre et subtitle ajoute une seconde ligne en dessous. Les slots #icon et #subtitle acceptent du balisage plutôt que du texte simple.
NotificationsEmail and in-app alerts
AvailabilityWorking hours and time zone
DocumentsContracts and invoices
Compact
compact réduit chaque rembourrage de 4px, le texte et les icônes gardant leur taille.
RuntimeNode 20.11
Package managerpnpm 11
Module formatESM only
Icônes d'ouverture et de fermeture
expandIcon remplace le chevron. Ajouter collapseIcon échange les deux icônes à l'ouverture, au lieu de faire pivoter la première.
Where do these two icons come from?
And without a collapse icon?
Sections désactivées
disabled empêche l'ouverture d'une section et la grise. Le clavier l'enjambe.
Personal details
Payment methods
Delivery preferences
Privacy
API
Props
| Prop | Type | Défaut |
|---|---|---|
multiple | boolean | false |
Laisse le lecteur garder plusieurs sections ouvertes à la fois. Sans lui, une seule reste ouverte et en ouvrir une referme la précédente, ce dont le navigateur se charge seul dès que tous les items partagent un même nom de <details>. | ||
variant | AccordionVariant'flat' | 'outlined' | 'flat' |
Comment le groupe est décoré. flat ne dessine rien et laisse l'accordéon poser sur la surface derrière lui ; outlined lui donne un fond surélevé, une bordure et des coins arrondis, si bien qu'il se lit comme une carte. | ||
expandIcon | IconSource | expand_more |
| L'icône affichée sur une section fermée. C'est un chevron, qui pivote de 180° quand la section s'ouvre. | ||
collapseIcon | IconSource | aucune |
| L'icône affichée sur une section ouverte. Sans elle, l'icône d'ouverture est simplement pivotée ; avec elle, les deux sont échangées. | ||
compact | boolean | false |
| Densité réduite : chaque rembourrage perd 4px, tandis que le texte et les icônes gardent leur taille. | ||
| Prop | Type | Défaut |
|---|---|---|
title | string | aucune |
Le titre de la section, la ligne qui reste visible quand elle est fermée. Utilisez le slot #title quand le titre demande du balisage plutôt que du texte simple. | ||
subtitle | string | aucune |
Une seconde ligne sous le titre, pour une courte explication ou un statut. Le slot #subtitle la remplace quand du balisage est nécessaire. | ||
icon | IconSource | aucune |
Une icône avant le titre. Le slot #icon la remplace. | ||
defaultOpen | boolean | false |
| Rend la section déjà ouverte. Seule sa valeur initiale est lue : le navigateur possède l'état ensuite, donc changer cette prop plus tard ne refermera pas une section que le lecteur a ouverte. | ||
disabled | boolean | false |
| Rend la section inerte. Elle ne peut plus être ouverte, le clavier l'enjambe, et elle se grise par les tokens de couleur. | ||
v-model:open | boolean | null | null |
Si la section est ouverte, quand vous voulez la piloter ou l'observer. Non liée, le navigateur garde cet état pour lui et defaultOpen n'en donne que la valeur initiale. | ||
Slots
| Slot | Type |
|---|---|
default | {} |
Les VAccordionItem qui composent le groupe. | |
| Slot | Type |
|---|---|
default | {} |
| Le contenu révélé quand la section est ouverte. | |
title | {} |
Un titre fait de balisage, qui remplace la prop title. | |
subtitle | {} |
Un sous-titre fait de balisage, qui remplace la prop subtitle. | |
icon | {} |
Du contenu libre avant le titre, qui prend la place de icon. | |
Types
Les types que les tables ci-dessus nomment, écrits comme la librairie les déclare. Ceux qui portent export s'importent depuis vectis-ui pour typer votre propre code ; les autres décrivent la forme de ce qu'un slot fournit.
export interface BuiltinIcon {
name: string
paths: readonly [string] | readonly [string, string]
}export type IconRender =
| { path: string; viewBox?: string }
| { component: Component; props?: Record<string, unknown> }
| { src: string }
| { text: string; class?: string }
| { class: string }export type IconSource = string | BuiltinIcon | IconRender