Panneaux redimensionnables
VResizable partage un espace entre deux VResizablePanel ou plus et place une poignée entre chaque paire. Une poignée se fait glisser au pointeur, ou reçoit le focus et se déplace avec les flèches.
Utilisation
Exemples
Vertical
orientation="vertical" empile les panneaux. Le groupe a alors besoin d’une hauteur. grip dessine une pastille sur chaque poignée.
Limites
minSize et maxSize acceptent un nombre en pourcentage ou une longueur CSS comme 10rem. Quand un panneau atteint son minimum, la poignée prend le reste au panneau suivant.
Panneaux repliables
Un panneau collapsible se replie quand on le tire au-delà de la moitié de son minimum, ou avec Entrée sur sa poignée, et se rouvre à sa taille précédente. v-model:collapsed suit son état. collapsedSize garde une bande, comme un rail d’icônes ; à 0, le contenu sort de la mise en page et de l’ordre de tabulation.
Drag the line to the edge, or press Enter on it.
Groupes imbriqués
Un panneau peut contenir son propre groupe. Donnez au groupe intérieur height: 100%.
Enregistrer les tailles
Le v-model contient les tailles en pourcentage et change pendant le glisser. change est émis quand elles se stabilisent : c’est le moment de les enregistrer. Pour une page rendue sur le serveur, un cookie permet au serveur d’afficher directement les tailles enregistrées.
Sizes: 40 / 60
API
Props
| Prop | Type | Défaut |
|---|---|---|
orientation | ResizableOrientation'horizontal' | 'vertical' | 'horizontal' |
| Panneaux côte à côte, dans le sens du texte, ou empilés. | ||
disabled | boolean | false |
| Fige les tailles. Les poignées ne se déplacent plus et ne reçoivent plus le focus. | ||
grip | boolean | false |
| Dessine une pastille au milieu de chaque poignée. | ||
step | number | 5 |
| Déplacement d’une poignée par touche fléchée, en pourcentage. | ||
v-model | number[] | aucune |
Taille de chaque panneau en pourcentage de l’espace partagé, pour un total de 100. Sans liaison, les panneaux partent de leur defaultSize. | ||
| Prop | Type | Défaut |
|---|---|---|
index | number | 0 |
| Position du panneau, attribuée par le groupe. Ne pas la définir. | ||
defaultSize | number | aucune |
| Taille de départ en pourcentage quand le v-model n’en donne pas. Les panneaux sans taille se partagent le reste. | ||
minSize | ResizableLength | 0 |
| Taille minimale : un nombre en pourcentage ou une longueur CSS. | ||
maxSize | ResizableLength | aucune |
| Taille maximale : un nombre en pourcentage ou une longueur CSS. | ||
collapsible | boolean | false |
| Permet de replier le panneau en le faisant glisser ou avec Entrée sur sa poignée. | ||
collapsedSize | ResizableLength | 0 |
| Taille du panneau replié, en pourcentage ou en longueur CSS. À 0, le contenu est masqué. | ||
label | string | aucune |
| Nom accessible de la poignée qui redimensionne le panneau. | ||
v-model:collapsed | boolean | false |
| État replié. Le modifier replie ou rouvre le panneau. | ||
Événements
| Événement | Type |
|---|---|
change | [sizes: number[]] |
| Émet les tailles une fois stabilisées : après un glisser, une touche ou un repli. | |
Slots
| Slot | Type |
|---|---|
default | {} |
Les VResizablePanel, au moins deux. | |
| Slot | Type |
|---|---|
default | {} |
| Contenu du panneau. | |
Types
Types utilisés dans les tables d’API. Importez les types exportés depuis vectis-ui.
export type ResizableLength = number | string
Variables CSS
| Token | Valeur |
|---|---|
--vectis-control-size-resizable-hit | 0.75rem |
--vectis-control-size-resizable-grip-length | 1.5rem |
--vectis-control-size-resizable-grip-thickness | 0.5rem |