API-Referenz

Jeder Export von @kkwaenggwari/animated-chorus mit seinen props, Typen und Standardwerten. Dieselben Namen funktionieren im Web und unter React Native.

17 APIs

Zahlen und Text

MotionNumber

Eine Zahl, deren Stellen wie Räder rollen.

PropTypStandardBeschreibung
valuenumber | bigint | string—erforderlichDie Zahl oder vom Aufrufer formatierter Zahlentext.
mode'replace' | 'roll''replace'replace bewegt jede geänderte Stelle um einen Schritt; roll läuft durch die Ziffern dazwischen.
direction'auto' | 'digit' | 'up' | 'down''auto'auto folgt der Größenänderung, sodass Überträge in eine Richtung rollen; digit vergleicht jede Stelle für sich.
staggernumber45Millisekunden zwischen geänderten Stellen, von den Einern nach außen. Die gesamte Welle ist begrenzt.
format(value) => string | Intl.NumberFormatOptionsEine Funktion, die den anzuzeigenden Text zurückgibt, oder Intl.NumberFormat-Optionen (mit intl).
intlbooleanfalseNutzt das eingebaute Intl.NumberFormat. Standardmäßig aus, damit keine Laufzeitumgebung Intl braucht.
localestring | string[]Locale für intl.
prefixstringText vor der Zahl.
suffixstringText nach der Zahl.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(value) => voidLäuft mit dem Wert, sobald die Stellen zur Ruhe gekommen sind.
Komponentenseite und Werkbank

MotionText

Text, der animiert, wenn er sich ändert: Zahlentext rollt pro Stelle, anderer Text wird ausgetauscht.

PropTypStandardBeschreibung
childrenReactNodeDer anzuzeigende Text.
aselement'span'Das zu rendernde Element.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(text) => voidLäuft, wenn die Bewegung zur Ruhe kommt.
Komponentenseite und Werkbank

MotionStream

Gestreamter Text, gleichmäßig eingeblendet, der bei Schüben aufholt.

PropTypStandardBeschreibung
textstring—erforderlichDer bisherige Text. Wachsender Text wird gleichmäßig eingeblendet; eine Umschreibung setzt am gemeinsamen Anfang an.
speednumber90Grundtempo des Einblendens in Zeichen pro Sekunde.
catchUpnumber900Ein Rückstau wird durch Beschleunigen in etwa so vielen Millisekunden eingeblendet.
initialbooleanfalseAuch den beim Mount vorhandenen Text einblenden (sonst erscheint er sofort).
effect'fade' | 'none''fade'fade blendet neue Zeichen ein; none zeigt sie direkt.
children(visible: string) => ReactNodeEine Funktion, die den getakteten Text erhält, etwa um Markdown zu rendern.
aselement'span'Das zu rendernde Element.
onMotionComplete(text) => voidLäuft, sobald das Einblenden text eingeholt hat.
Komponentenseite und Werkbank

Inhalt und Größe

MotionSwap

Inhalt, der überblendet, während das Element seine Größe ändert.

PropTypStandardBeschreibung
valueunknownIdentität des Inhalts; ein neuer Wert löst den Wechsel aus. Reine Text-Kinder sind ihre eigene Identität.
childrenReactNodeDer Inhalt.
aselement'span'Das zu rendernde Element.
inlinebooleanas === 'span'true passt die Größe an den Inhalt an (Labels, Icons); false füllt die Breite des Elternelements und animiert die Höhe.
align'start' | 'center' | 'end''center'Wo der Inhalt sitzt, während sich die Größe ändert.
effect'fade' | 'up' | 'down' | 'scale''fade'Wie Inhalt kommt und geht: up steigt, down fällt, scale wächst.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(value) => voidLäuft, wenn die Bewegung zur Ruhe kommt.
Komponentenseite und Werkbank

MotionHeight

Animiert die Höhe auf ihren Inhalt: Ein- und Ausklappen sowie Inhaltsänderungen.

PropTypStandardBeschreibung
openbooleantruefalse klappt auf Höhe null ein; der Inhalt bleibt gemountet, aber versteckt und inaktiv.
childrenReactNodeDer Inhalt.
aselement'div'Das zu rendernde Element.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onMotionComplete(open) => voidLäuft mit open, sobald die Höhe zur Ruhe gekommen ist.
Komponentenseite und Werkbank

MotionPresence

Hält Inhalt gemountet, während er ein- und ausblendet.

PropTypStandardBeschreibung
presentboolean—erforderlichInhalt zeigen oder verbergen. Ändere das, statt zu unmounten.
enterPose{ opacity: 1, translateY: 0 }Die Pose in Ruhe.
exitPose{ opacity: 0, translateY: -12 }Die Pose, mit der der Inhalt geht und aus der er kommt.
aselement'div'Das zu rendernde Element.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
onExitComplete() => voidLäuft, nachdem der Inhalt abgegangen und entfernt ist.
Komponentenseite und Werkbank

Auswahl und Blättern

MotionHighlight

Elemente aus Daten mit einer Hervorhebung, die zum ausgewählten Element wandert.

PropTypStandardBeschreibung
itemsreadonly T[]—erforderlichDein Daten-Array.
valuekey | null—erforderlichKey des hervorgehobenen Elements; null blendet die Hervorhebung aus.
onValueChange(key, item) => voidLäuft mit Key und Element, wenn ein Element gedrückt wird.
getKey(item) => string | numberitem.idGibt einen eindeutigen, stabilen Key für ein Element zurück. Standard ist item.id oder bei Strings und Zahlen das Element selbst.
renderItem(item, { selected, index }) => ReactNodeitem.labelZeichnet ein Element; erhält, ob es ausgewählt ist.
hoverbooleanfalseDem Zeiger über Elemente folgen und beim Verlassen zu value zurückkehren (Web).
itemAselement'button'Das Element für jeden Eintrag.
itemClassNamestringKlasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style.
highlightClassNamestringKlasse für die Hervorhebung; highlightStyle setzt ihren Inline-Style.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

MotionPager

Wischbare Seiten aus Daten.

PropTypStandardBeschreibung
itemsreadonly T[]—erforderlichDein Daten-Array.
indexnumberDie angezeigte Seite. Weglassen, damit der Pager seine eigene verwaltet.
defaultIndexnumber0Startseite, wenn index nicht kontrolliert wird.
onIndexChange(index, item) => voidLäuft mit Index und Element, sobald eine Wisch-, Tasten- oder Mausradgeste einrastet.
getKey(item) => string | numberitem.idGibt einen eindeutigen, stabilen Key für ein Element zurück. Standard ist item.id oder bei Strings und Zahlen das Element selbst.
renderItem(item, { index, active }) => ReactNodeitem.labelZeichnet eine Seite; erhält ihren Index und ob sie aktiv ist.
gapnumber0Abstand zwischen Seiten in Pixeln.
itemClassNamestringKlasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

Listen

MotionList

Eine Liste mit Keys aus Daten, die nur das Geänderte animiert.

PropTypStandardBeschreibung
itemsreadonly T[]—erforderlichDein Daten-Array.
getKey(item) => string | numberitem.idGibt einen eindeutigen, stabilen Key für ein Element zurück. Standard ist item.id oder bei Strings und Zahlen das Element selbst.
renderItem(item, index) => ReactNodeitem.labelZeichnet ein Element.
aselement'div'Das zu rendernde Element.
itemAselement'li' | 'div'Das Element für jeden Eintrag.
itemClassNamestringKlasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Wie Elemente kommen und gehen.
distancenumber16Weg von rise und slide in Pixeln.
staggernumber40Millisekunden zwischen erscheinenden Elementen.
order'forward' | 'reverse''forward'Richtung des Versatzes.
presentbooleantruefalse animiert alle Elemente hinaus und behält das Layout; true holt sie zurück.
initialbooleantrueDas Erscheinen abspielen, wenn die Liste gemountet wird.
playKeystring | numberEine Änderung spielt das Erscheinen erneut ab.
transitionTransitionspringÜbergang für erscheinende und verschwindende Elemente.
layoutTransitionTransitionspringÜbergang für Elemente, die an neue Positionen gleiten.
Komponentenseite und Werkbank

MotionReorder

Zum Umsortieren einer Liste oder eines Rasters ziehen, mit Tastaturbewegungen.

PropTypStandardBeschreibung
itemsreadonly T[]Die Elemente, wenn du die Reihenfolge kontrollierst.
defaultItemsreadonly T[][]Startelemente, wenn die Komponente die Reihenfolge verwaltet.
onItemsChange(items, { reason, key }) => voidLäuft mit der neuen Reihenfolge und ob sie vom Ziehen, Ablegen oder von der Tastatur kam.
getKey(item) => string | numberitemGibt einen eindeutigen Key für ein Element zurück. Standard ist das Element selbst.
renderItem(item, { index, dragging }) => ReactNodeitem.labelZeichnet ein Element; erhält seinen Index und ob es gerade gezogen wird.
reorder'live' | 'drop''live'live bewegt andere Elemente beim Ziehen; drop wartet auf das Ablegen.
layout'list' | 'grid''grid'list oder grid.
columnsnumber3Spalten in einem Raster.
gapnumber12Abstand zwischen Elementen in Pixeln.
disabledbooleanfalseSchaltet das Ziehen aus.
durationnumber260Millisekunden für ausweichende Elemente.
itemClassNamestringKlasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style.
Komponentenseite und Werkbank

Gesten

MotionSwipe

Eine Zeile, die per horizontalem Wischen Aktionen freilegt und weggewischt werden kann.

PropTypStandardBeschreibung
childrenReactNodeDer Zeileninhalt.
startActionsReactNodeErscheinen am Zeilenanfang, wenn die Zeile zum Ende gezogen wird.
endActionsReactNodeErscheinen am Zeilenende, wenn die Zeile zum Anfang gezogen wird.
dismiss'start' | 'end' | 'both'Seiten, auf denen ein langes Wischen oder ein Wurf die Zeile entfernt.
onDismiss(side) => voidLäuft, nachdem die Zeile hinausgeglitten und eingeklappt ist; entferne das Element hier aus deinen Daten.
onOpenChange(side | null) => voidLäuft mit der geöffneten Seite oder null, wenn die Zeile schließt.
disabledbooleanfalseSchaltet das Wischen aus.
contentClassNamestringKlasse für den Zeileninhalt; contentStyle setzt seinen Inline-Style.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

MotionHold

Gedrückt halten zum Bestätigen; zu frühes Loslassen spult zurück.

PropTypStandardBeschreibung
childrenReactNodeDie Button-Beschriftung.
onConfirm() => voidLäuft einmal, wenn das Halten abgeschlossen ist.
durationnumber1200Millisekunden, die der Druck gehalten werden muss.
disabledbooleanfalseSchaltet den Button aus.
fillClassNamestringKlasse für die wachsende Füllung; fillStyle setzt ihren Inline-Style.
Komponentenseite und Werkbank

Overlays

MotionSheet

Ein Bottom Sheet, Top Sheet oder seitliche Schublade mit Rastpunkten.

PropTypStandardBeschreibung
openbooleanfalseOb das Sheet angezeigt wird.
onOpenChange(open) => voidLäuft mit false, wenn das Sheet per Ziehen, Tippen oder Escape geschlossen wird.
detents(number | 'content')[]['content']Ruhegrößen: ein Bruchteil des Bildschirms, Pixel oder 'content'.
detentnumberKontrollierter Rastpunkt-Index.
defaultDetentnumber0Rastpunkt-Index beim Öffnen ohne detent.
onDetentChange(index) => voidLäuft mit dem Index des Rastpunkts, an dem das Sheet zur Ruhe kommt.
side'bottom' | 'top' | 'start' | 'end''bottom'Die Kante, von der das Sheet kommt.
modalbooleantrueFügt einen Hintergrund hinzu, hält den Fokus innen und macht die Seite inaktiv.
dismissiblebooleantrueZiehen über den kleinsten Rastpunkt hinaus, der Hintergrund und Escape schließen es.
backdropClassNamestringKlasse für den Hintergrund; backdropStyle setzt seinen Inline-Style.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

MotionZoom

Ein Bild, das von seiner Position auf Bildschirmgröße zoomt.

PropTypStandardBeschreibung
srcstringDas an Ort und Stelle gezeigte Bild.
zoomSrcstringEin größeres Bild, das nach dem Laden angezeigt wird; behalte dasselbe Seitenverhältnis.
marginnumber24Freiraum um das vergrößerte Bild in Pixeln.
disabledbooleanfalseSchaltet den Zoom aus.
onZoomChange(zoomed) => voidLäuft mit true beim Vergrößern und false beim Schließen.
backdropStyleCSSPropertiesInline-Style für den Hintergrund.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

Fortschritt

ProgressBar

Eine kontrollierte Fortschrittslinie mit unbestimmtem Zustand.

PropTypStandardBeschreibung
valuenumber | nullFortschritt von 0 bis max; null ist unbestimmt.
maxnumber100Der Wert, der „fertig“ bedeutet.
colorstring'currentColor'Füllfarbe.
trackColorstring'#e7ece9'Farbe der Spur.
thicknessnumber8Linienstärke in Pixeln.
direction'ltr' | 'rtl''ltr'Von links (ltr) oder von rechts (rtl) füllen.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

ProgressRing

Ein kontrollierter Fortschrittsring mit unbestimmtem Zustand.

PropTypStandardBeschreibung
valuenumber | nullFortschritt von 0 bis max; null ist unbestimmt.
maxnumber100Der Wert, der „fertig“ bedeutet.
sizenumber96Durchmesser in Pixeln.
thicknessnumber8Ringstärke in Pixeln.
colorstring'currentColor'Bogenfarbe.
trackColorstring'#e7ece9'Farbe der Spur.
childrenReactNodeEine Beschriftung in der Mitte.
transitionTransitionspringEine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung.
Komponentenseite und Werkbank

Übergänge

motionTokens

Fertige Werte für jede transition-Prop.

PropTypStandardBeschreibung
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Dauern in Millisekunden.
easing{ ease, easeOut, expoOut, backOut }TransitionTiming-Übergänge mit einer Dauer und einer benannten Kurve.
spring{ quick, basic, gentle, bouncy }TransitionFeder-Übergänge, von schnell und straff bis sanft und federnd.
Übergänge
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} />
    </>
  );
}

Suchen

Tippe, um die Dokumentation zu durchsuchen.