Référence de l’API

Chaque export de @kkwaenggwari/animated-chorus avec ses props, ses types et ses valeurs par défaut. Les mêmes noms fonctionnent sur le web et React Native.

17 API

Nombres et texte

MotionNumber

Un nombre dont les chiffres tournent comme des roues.

PropTypeDéfautDescription
valuenumber | bigint | string—obligatoireLe nombre, ou un texte numérique déjà formaté par l’appelant.
mode'replace' | 'roll''replace'replace avance chaque chiffre modifié d’un cran ; roll passe par les chiffres intermédiaires.
direction'auto' | 'digit' | 'up' | 'down''auto'auto suit la variation d’ordre de grandeur pour que les retenues tournent dans un sens ; digit compare chaque chiffre isolément.
staggernumber45Millisecondes entre les chiffres modifiés, des unités vers l’extérieur. L’ondulation totale est bornée.
format(value) => string | Intl.NumberFormatOptionsUne fonction qui renvoie le texte à afficher, ou des options Intl.NumberFormat (avec intl).
intlbooleanfalseUtilise l’Intl.NumberFormat intégré. Désactivé par défaut pour qu’aucun environnement n’ait besoin d’Intl.
localestring | string[]Paramètre régional pour intl.
prefixstringTexte avant le nombre.
suffixstringTexte après le nombre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onMotionComplete(value) => voidS’exécute avec la valeur une fois les chiffres posés.
Page du composant et banc d’essai

MotionText

Un texte qui s’anime quand il change : le texte numérique défile chiffre par chiffre, le reste s’échange.

PropTypeDéfautDescription
childrenReactNodeLe texte à afficher.
aselement'span'L’élément à rendre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onMotionComplete(text) => voidS’exécute quand le mouvement se pose.
Page du composant et banc d’essai

MotionStream

Du texte en streaming révélé à un rythme régulier, qui rattrape son retard en cas de rafale.

PropTypeDéfautDescription
textstring—obligatoireLe texte reçu jusqu’ici. Un texte qui s’allonge est révélé à un rythme régulier ; une réécriture repart du début commun.
speednumber90Rythme de base de la révélation, en caractères par seconde.
catchUpnumber900Un retard accumulé est révélé en environ autant de millisecondes, en accélérant.
initialbooleanfalseRévéler aussi le texte présent au montage (sinon il s’affiche aussitôt).
effect'fade' | 'none''fade'fade fait apparaître les nouveaux caractères en fondu ; none les affiche directement.
children(visible: string) => ReactNodeUne fonction qui reçoit le texte rythmé, par exemple pour rendre du Markdown.
aselement'span'L’élément à rendre.
onMotionComplete(text) => voidS’exécute chaque fois que la révélation rattrape text.
Page du composant et banc d’essai

Contenu et taille

MotionSwap

Un contenu en fondu enchaîné pendant que l’élément se redimensionne.

PropTypeDéfautDescription
valueunknownIdentité du contenu ; une nouvelle valeur déclenche le changement. Les enfants en texte brut sont leur propre identité.
childrenReactNodeLe contenu.
aselement'span'L’élément à rendre.
inlinebooleanas === 'span'true dimensionne selon le contenu (libellés, icônes) ; false prend la largeur du parent et anime la hauteur.
align'start' | 'center' | 'end''center'Où se place le contenu pendant le changement de taille.
effect'fade' | 'up' | 'down' | 'scale''fade'Comment le contenu entre et sort : up monte, down descend, scale grandit.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onMotionComplete(value) => voidS’exécute quand le mouvement se pose.
Page du composant et banc d’essai

MotionHeight

Anime la hauteur selon son contenu : repli, dépli et changements de contenu.

PropTypeDéfautDescription
openbooleantruefalse replie à une hauteur nulle ; le contenu reste monté mais masqué et inerte.
childrenReactNodeLe contenu.
aselement'div'L’élément à rendre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onMotionComplete(open) => voidS’exécute avec open une fois la hauteur posée.
Page du composant et banc d’essai

MotionPresence

Garde le contenu monté pendant ses animations d’entrée et de sortie.

PropTypeDéfautDescription
presentboolean—obligatoireAfficher ou masquer le contenu. Modifiez ceci au lieu de démonter.
enterPose{ opacity: 1, translateY: 0 }La pose au repos.
exitPose{ opacity: 0, translateY: -12 }La pose avec laquelle le contenu sort et depuis laquelle il entre.
aselement'div'L’élément à rendre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onExitComplete() => voidS’exécute une fois le contenu sorti et retiré.
Page du composant et banc d’essai

Sélection et pagination

MotionHighlight

Des éléments à partir de données, avec un surlignage unique qui se déplace vers l’élément sélectionné.

PropTypeDéfautDescription
itemsreadonly T[]—obligatoireVotre tableau de données.
valuekey | null—obligatoireKey de l’élément surligné ; null masque le surlignage.
onValueChange(key, item) => voidS’exécute avec la key et l’élément quand un élément est pressé.
getKey(item) => string | numberitem.idRenvoie une key unique et stable pour un élément. Par défaut item.id, ou l’élément lui-même pour les chaînes et les nombres.
renderItem(item, { selected, index }) => ReactNodeitem.labelDessine un élément ; reçoit s’il est sélectionné.
hoverbooleanfalseSuit le pointeur sur les éléments et revient à value à la sortie (web).
itemAselement'button'L’élément de chaque item.
itemClassNamestringClasse de l’élément de chaque item ; itemStyle définit son style en ligne.
highlightClassNamestringClasse du surlignage ; highlightStyle définit son style en ligne.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

MotionPager

Des pages à balayer à partir de données.

PropTypeDéfautDescription
itemsreadonly T[]—obligatoireVotre tableau de données.
indexnumberLa page affichée. Omettez-la pour laisser le pagineur gérer la sienne.
defaultIndexnumber0Page de départ quand index n’est pas contrôlé.
onIndexChange(index, item) => voidS’exécute avec l’index et l’élément dès qu’un balayage, une touche ou la molette se pose.
getKey(item) => string | numberitem.idRenvoie une key unique et stable pour un élément. Par défaut item.id, ou l’élément lui-même pour les chaînes et les nombres.
renderItem(item, { index, active }) => ReactNodeitem.labelDessine une page ; reçoit son index et si elle est active.
gapnumber0Espace entre les pages, en pixels.
itemClassNamestringClasse de l’élément de chaque item ; itemStyle définit son style en ligne.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

Listes

MotionList

Une liste à keys, à partir de données, qui n’anime que ce qui a changé.

PropTypeDéfautDescription
itemsreadonly T[]—obligatoireVotre tableau de données.
getKey(item) => string | numberitem.idRenvoie une key unique et stable pour un élément. Par défaut item.id, ou l’élément lui-même pour les chaînes et les nombres.
renderItem(item, index) => ReactNodeitem.labelDessine un élément.
aselement'div'L’élément à rendre.
itemAselement'li' | 'div'L’élément de chaque item.
itemClassNamestringClasse de l’élément de chaque item ; itemStyle définit son style en ligne.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Comment les éléments entrent et sortent.
distancenumber16Déplacement de rise et slide, en pixels.
staggernumber40Millisecondes entre les éléments entrants.
order'forward' | 'reverse''forward'Sens du décalage.
presentbooleantruefalse fait sortir tous les éléments en gardant la mise en page ; true les fait revenir.
initialbooleantrueJouer l’entrée au montage de la liste.
playKeystring | numberLe modifier rejoue l’entrée.
transitionTransitionspringTransition des éléments entrants et sortants.
layoutTransitionTransitionspringTransition des éléments qui glissent vers une nouvelle position.
Page du composant et banc d’essai

MotionReorder

Faites glisser pour réordonner une liste ou une grille, avec déplacements au clavier.

PropTypeDéfautDescription
itemsreadonly T[]Les éléments, quand vous contrôlez l’ordre.
defaultItemsreadonly T[][]Éléments de départ, quand le composant conserve l’ordre.
onItemsChange(items, { reason, key }) => voidS’exécute avec le nouvel ordre et indique s’il vient d’un glisser, d’un dépôt ou du clavier.
getKey(item) => string | numberitemRenvoie une key unique pour un élément. Par défaut, l’élément lui-même.
renderItem(item, { index, dragging }) => ReactNodeitem.labelDessine un élément ; reçoit son index et s’il est en cours de glisser.
reorder'live' | 'drop''live'live déplace les autres éléments pendant le glisser ; drop attend le dépôt.
layout'list' | 'grid''grid'list ou grid.
columnsnumber3Colonnes d’une grille.
gapnumber12Espace entre les éléments, en pixels.
disabledbooleanfalseDésactive le glisser.
durationnumber260Millisecondes pour les éléments qui s’écartent.
itemClassNamestringClasse de l’élément de chaque item ; itemStyle définit son style en ligne.
Page du composant et banc d’essai

Gestes

MotionSwipe

Une ligne qui révèle des actions par balayage horizontal et peut être écartée d’un balayage.

PropTypeDéfautDescription
childrenReactNodeLe contenu de la ligne.
startActionsReactNodeRévélées au début de la ligne quand on la fait glisser vers la fin.
endActionsReactNodeRévélées à la fin de la ligne quand on la fait glisser vers le début.
dismiss'start' | 'end' | 'both'Côtés où un long balayage ou un lancer supprime la ligne.
onDismiss(side) => voidS’exécute une fois la ligne sortie et repliée ; retirez ici l’élément de vos données.
onOpenChange(side | null) => voidS’exécute avec le côté ouvert, ou null quand la ligne se ferme.
disabledbooleanfalseDésactive le balayage.
contentClassNamestringClasse du contenu de la ligne ; contentStyle définit son style en ligne.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

MotionHold

Maintenez appuyé pour confirmer ; relâcher trop tôt fait revenir en arrière.

PropTypeDéfautDescription
childrenReactNodeLe libellé du bouton.
onConfirm() => voidS’exécute une fois l’appui maintenu terminé.
durationnumber1200Millisecondes pendant lesquelles l’appui doit être maintenu.
disabledbooleanfalseDésactive le bouton.
fillClassNamestringClasse du remplissage qui progresse ; fillStyle définit son style en ligne.
Page du composant et banc d’essai

Superpositions

MotionSheet

Un panneau inférieur, un panneau supérieur ou un tiroir latéral à crans.

PropTypeDéfautDescription
openbooleanfalseIndique si le panneau est affiché.
onOpenChange(open) => voidS’exécute avec false quand le panneau est fermé par un glisser, un appui ou Échap.
detents(number | 'content')[]['content']Tailles de repos : une fraction de l’écran, des pixels ou 'content'.
detentnumberIndex de cran contrôlé.
defaultDetentnumber0Index de cran utilisé à l’ouverture sans detent.
onDetentChange(index) => voidS’exécute avec l’index du cran où le panneau se pose.
side'bottom' | 'top' | 'start' | 'end''bottom'Le bord d’où vient le panneau.
modalbooleantrueAjoute un fond, garde le focus à l’intérieur et rend la page inerte.
dismissiblebooleantrueUn glisser au-delà du plus petit cran, le fond et Échap le ferment.
backdropClassNamestringClasse du fond ; backdropStyle définit son style en ligne.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

MotionZoom

Une image qui s’agrandit depuis sa place jusqu’à remplir l’écran.

PropTypeDéfautDescription
srcstringL’image affichée en place.
zoomSrcstringUne image plus grande affichée une fois chargée ; gardez le même rapport d’aspect.
marginnumber24Espace conservé autour de l’image agrandie, en pixels.
disabledbooleanfalseDésactive le zoom.
onZoomChange(zoomed) => voidS’exécute avec true à l’agrandissement et false à la fermeture.
backdropStyleCSSPropertiesStyle en ligne du fond.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

Progression

ProgressBar

Une ligne de progression contrôlée, avec un état indéterminé.

PropTypeDéfautDescription
valuenumber | nullProgression de 0 à max ; null est indéterminé.
maxnumber100La valeur qui signifie terminé.
colorstring'currentColor'Couleur du remplissage.
trackColorstring'#e7ece9'Couleur de la piste.
thicknessnumber8Épaisseur de la ligne, en pixels.
direction'ltr' | 'rtl''ltr'Remplir depuis la gauche (ltr) ou depuis la droite (rtl).
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

ProgressRing

Un anneau de progression contrôlé, avec un état indéterminé.

PropTypeDéfautDescription
valuenumber | nullProgression de 0 à max ; null est indéterminé.
maxnumber100La valeur qui signifie terminé.
sizenumber96Diamètre, en pixels.
thicknessnumber8Épaisseur de l’anneau, en pixels.
colorstring'currentColor'Couleur de l’arc.
trackColorstring'#e7ece9'Couleur de la piste.
childrenReactNodeUne étiquette affichée au centre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
Page du composant et banc d’essai

Transitions

motionTokens

Des valeurs prêtes à l’emploi pour toute prop transition.

PropTypeDéfautDescription
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Durées en millisecondes.
easing{ ease, easeOut, expoOut, backOut }TransitionTransitions temporelles avec une durée et une courbe nommée.
spring{ quick, basic, gentle, bouncy }TransitionTransitions à ressort, des plus vives et fermes aux plus douces et rebondissantes.
Transitions
App.jsx
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';

export function Score({ points, players }) {
  return (
    <>
      <MotionNumber value={points} />
      <MotionList items={players} renderItem={(player) => player.name} />
    </>
  );
}

Rechercher

Tapez pour rechercher dans la documentation.