16
Icône
Une icône, depuis la source dont vous disposez. La bibliothèque embarque ses propres dessins, donc rien ici n'exige de police d'icônes, et un résolveur permet de brancher un jeu tiers à la place.
Utilisation
Exemples
Taille
size est un nombre de pixels, l'icône étant carrée. Sans elle, l'icône prend la taille que son contexte impose, et retombe sur 1em en l'absence de contexte.
20
24
32
48
Small text, with a in it.
Larger text, with a in it.
A heading
Pleine
filled demande la forme pleine de l'icône, ce qui sert à marquer un état. Une icône de la bibliothèque sans dessin plein rend celui qu'elle a toujours eu.
notifications
check_circle
warning
error
info
schedule
search, unchanged by filling
En miroir
mirrored retourne l'icône dans un contexte de droite à gauche, pour un glyphe qui désigne une direction physique : un chevron « précédent » pointe à gauche en français et à droite en arabe. La direction est celle que le navigateur a calculée, donc un dir sur n'importe quel ancêtre suffit. La plupart des icônes disent la même chose dans les deux sens et ne se retournent pas.
ltr
rtl
D'où vient le dessin
Le dessin est cherché dans un ordre fixe, et la première source qui répond est celle qui est dessinée :
render, une description explicite de ce qu'il faut dessiner : des données de tracé SVG, un composant, une image, ou la classe d'une police.src, l'adresse d'une image.name, proposé à votre résolveur en premier, puis au dessin que porte une icône de la bibliothèque, puis à une police à ligatures.- Le slot par défaut, un SVG en ligne, atteint quand ni
render, nisrc, ninamen'ont été donnés.
L'ordre est le contrat : votre résolveur passe avant les dessins de la bibliothèque, et un résolveur qui ne répond rien pour un nom donné le rend au lieu de laisser un trou, ce qui rend utilisable une correspondance partielle. Une simple chaîne n'est jamais qu'un nom, jamais une adresse. Brancher un jeu, et la liste de ce que la bibliothèque embarque, sont tous deux sur Iconographie.
API
Props
| Prop | Type | Défaut |
|---|---|---|
name | string | BuiltinIcon | aucune |
Quelle icône dessiner. Une simple chaîne est un nom : elle est proposée à votre résolveur, puis laissée à une police d'icônes en tant que ligature. Une des icônes de la bibliothèque, importée depuis vectis-ui/icons, porte son dessin avec elle ; le résolveur est tout de même interrogé d'abord, et le dessin répond quand rien d'autre ne le fait. | ||
render | IconRender | aucune |
| Une description explicite de ce qu'il faut dessiner, une image, un composant, un tracé ou une classe, qui l'emporte sur tout le reste. C'est la voie que prend chaque prop d'icône de la bibliothèque quand on lui donne autre chose qu'un simple nom. | ||
src | string | aucune |
L'adresse d'une image à utiliser comme icône. Elle l'emporte sur name. | ||
size | number | string | aucune |
| Une taille en pixels, en nombre ou en chaîne numérique. Sans elle, ou avec autre chose qu'un nombre, l'icône prend la taille que son contexte impose, un bouton en fixant une pour les icônes qu'il contient, et à défaut 1em, ce qui la fait suivre le texte alentour. | ||
label | string | aucune |
| Ce que l'icône signifie, pour les lecteurs d'écran. L'omettre marque l'icône comme décorative et la masque à ces derniers, ce qui est juste dès que le texte alentour dit déjà ce qu'elle dit. | ||
filled | boolean | false |
| Dessine la version pleine de l'icône. Les icônes intégrées l'honorent partout où le remplissage change réellement le dessin, et une police à ligatures le fait toujours. Cela ne signifie rien pour une image ou un SVG en ligne, dont la forme est fixe. | ||
mirrored | boolean | false |
Retourne l'icône horizontalement dans un contexte de droite à gauche, pour un glyphe qui désigne une direction physique : un chevron « précédent » pointe à gauche en français et à droite en arabe. Désactivé par défaut, la plupart des icônes disant la même chose dans les deux sens. La direction est celle que le navigateur a calculée, donc le dir d'un ancêtre suffit. | ||
Slots
| Slot | Type |
|---|---|
default | {} |
Un SVG en ligne, utilisé quand ni src ni name n'a été donné. | |
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 }