Curseur
Une valeur choisie en glissant, avec une poignée ou deux. Il est bâti sur de vrais champs range : le clavier, le formulaire et les technologies d'assistance viennent donc tous du navigateur.
Utilisation
Exemples
Intervalle
range offre deux poignées pour choisir une plage, ce qui fait de la valeur une paire. La paire reste ordonnée, une poignée emmenée au-delà de sa voisine la poussant devant elle, et chacune est annoncée comme le début ou la fin de la plage.
20 to 60
Minimum et maximum
min et max bornent la valeur, 0 et 100 sauf indication contraire, négatifs compris. Tout le reste se mesure par rapport à eux.
Temperature, -10 to 40
19 °C
Rating, 1 to 5
3 out of 5
Pas
step est l'écart entre deux valeurs sur lesquelles la poignée peut s'arrêter, et le pas d'une flèche du clavier. ticks marque ces arrêts sur le rail, et au-delà de cinquante pas aucune graduation n'est dessinée.
step 10, with ticks
step 0.1
0.4
0 to 95 by 10, so the last stop is 90
50
Libellés texte
labels nomme les arrêts sous le rail, une entrée par pas, et c'est ce qu'annonce un lecteur d'écran à la place du nombre brut. Donner des libellés active les graduations de lui-même.
Libellés icône
Un libellé peut porter une icône au lieu d'un mot, le libellé restant ce qui est annoncé et ce comme quoi la valeur est lue. Les deux formes se mélangent dans la même liste.
Information
Montrer la valeur pendant le glissement
tooltip affiche une bulle au-dessus de la poignée pendant le glissement ou tant qu'elle a le focus clavier, une par poignée. Elle est décorative et masquée aux technologies d'assistance.
Saisir la valeur exactement
inputs ajoute un champ numérique à côté du rail, un par extrémité en mode plage. Ce qui est saisi est validé à la sortie du champ ou sur Entrée, ramené dans les bornes et aligné sur le pas ; une saisie illisible remet la valeur précédente.
Taille des champs
size règle la hauteur des champs numériques qu'ajoute inputs, md par défaut comme sur tout champ. Dans un VInputGroup, c'est la rangée qui décide, comme pour ses autres champs.
Orientation
orientation à vertical dresse le curseur, la plus petite valeur en bas. Sa longueur vient d'un token et non de son conteneur.
Désactivé
disabled grise le rail, la poignée et les graduations par les tokens de couleur, sort les poignées de l'ordre de tabulation et désactive les champs numériques avec elles.
Lecture seule
readonly montre la valeur sans permettre de la changer. Une entrée de plage n'a pas de lecture seule native, donc le composant annule les touches qui déplacent une poignée et remet en place une poignée que le pointeur a déplacée. Les poignées restent focalisables et annoncées, et les champs numériques passent en lecture seule avec elles.
Invalide
invalid cercle les poignées de la couleur de danger, comme une case à cocher colore sa bordure, et le signale aux technologies d'assistance par aria-invalid sur chaque poignée et chaque champ.
Dans un formulaire
name, id et les aria-* sont redirigés sur le vrai input range sous-jacent. Le nommage passe par la prop label, qui pose un aria-label ; votre propre aria-label ou aria-labelledby a la priorité sur elle, et une plage nomme alors ses deux poignées à partir de ce que vous avez donné. Une plage n'a pas de valeur unique à soumettre : seule la poignée de fin porte le nom. hint dessine une ligne d'aide sous la piste et s'ajoute à votre propre aria-describedby plutôt que de le remplacer.
API
Props
| Prop | Type | Défaut |
|---|---|---|
min | number | 0 |
| La valeur la plus basse que la poignée peut atteindre. | ||
max | number | 100 |
| La valeur la plus haute que la poignée peut atteindre. | ||
step | number | 1 |
| L'écart entre deux valeurs sur lesquelles la poignée peut s'arrêter. C'est aussi le pas des flèches, et ce sur quoi une valeur saisie dans le champ voisin est alignée. | ||
range | boolean | false |
| Propose deux poignées pour choisir un intervalle, ce qui fait de la valeur une paire. | ||
disabled | boolean | false |
| Rend le curseur inutilisable. | ||
readonly | boolean | false |
| Montre la valeur sans permettre de la changer. Les poignées restent focalisables et sont annoncées en lecture seule, mais ni le pointeur ni le clavier ne les déplacent, et les champs numériques passent en lecture seule avec elles. | ||
invalid | boolean | false |
| Marque la valeur comme invalide, ce qui colore les poignées et le signale aux technologies d'assistance. C'est pour une règle que le navigateur ne sait pas vérifier seul. | ||
size | SliderSize'sm' | 'md' | 'lg' | 'md' |
La hauteur des champs numériques qu'ajoute inputs. Dans un VInputGroup, la taille du groupe l'emporte, comme pour chaque champ de la rangée. | ||
label | string | aucune |
| Ce que les lecteurs d'écran annoncent pour le curseur. C'est un nom accessible, rien ne s'affiche à l'écran. En mode intervalle, les deux poignées sont annoncées comme le début et la fin de celui-ci. | ||
hint | string | aucune |
| Une ligne d'aide sous la piste, qui dit ce que les nombres signifient ou jusqu'où ils peuvent aller. Elle est rattachée au curseur pour les technologies d'assistance, donc lue après le nom plutôt que comme une partie de celui-ci. | ||
orientation | SliderOrientation'horizontal' | 'vertical' | 'horizontal' |
| Dresse le curseur à la verticale, la valeur la plus basse en bas. | ||
inputs | boolean | false |
| Ajoute un champ numérique à côté du curseur pour poser la valeur exactement, un champ ou un par extrémité en mode intervalle. Glisser est rapide mais imprécis ; c'est la porte de sortie. | ||
ticks | boolean | false |
| Marque chaque pas sur la piste. Fournir des libellés l'implique. Au-delà de cinquante pas, les marques formeraient un peigne illisible et ne sont pas dessinées du tout. | ||
labels | SliderLabel[] | aucune |
| Un libellé pour chaque pas, dans l'ordre : un texte, ou une icône avec les mots qui la nomment pour les lecteurs d'écran. Ils deviennent aussi ce qu'un lecteur d'écran annonce à la place du nombre brut. | ||
tooltip | boolean | false |
| Affiche la valeur dans une bulle au-dessus de la poignée pendant qu'on la déplace ou qu'elle a le focus. | ||
v-model | SliderValue | 0 |
La valeur : un nombre unique, ou une paire ordonnée dès que range est posé. C'est cette prop, et non la forme de cette valeur, qui décide du nombre de poignées. La paire reste ordonnée quoi que fasse le lecteur, une poignée emmenée au-delà de sa voisine la poussant devant elle. | ||
Événements
| Événement | Type |
|---|---|
input | [value: SliderValue] |
| La valeur est en train de changer : à chaque pas d'un glissement, et à chaque touche qui déplace une poignée. L'événement porte la valeur entière, une paire en mode intervalle, et part de l'une ou l'autre poignée. | |
change | [value: SliderValue] |
| Le lecteur s'est arrêté sur une valeur : une poignée a été relâchée ou déplacée au clavier, ou un champ numérique a été validé. L'événement porte la valeur entière, une paire en mode intervalle, et part de l'une ou l'autre poignée, là où le v-model suit chaque pas d'un glissement. | |
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
export type SliderLabel = string | { icon: IconSource; label: string }export type SliderValue = number | [number, number]
Variables CSS
| Token | Valeur |
|---|---|
--vectis-control-size-slider-track | 0.375rem |
--vectis-control-size-slider-thumb | 1.25rem |
--vectis-control-size-slider-length | 10rem |
--vectis-control-size-slider-field | 5rem |