Dokumentacja API

Każdy eksport @kkwaenggwari/animated-chorus z props, typami i wartościami domyślnymi. Te same nazwy działają w sieci i w React Native.

API: 17

Liczby i tekst

MotionNumber

Liczba, której cyfry obracają się jak kółka.

PropTypDomyślnieOpis
valuenumber | bigint | string—wymaganeLiczba lub sformatowany przez ciebie tekst liczbowy.
mode'replace' | 'roll''replace'replace przesuwa każdą zmienioną cyfrę o jeden krok; roll przechodzi przez cyfry pośrednie.
direction'auto' | 'digit' | 'up' | 'down''auto'auto podąża za zmianą wielkości, więc przeniesienia przewijają się w jedną stronę; digit porównuje każdą cyfrę osobno.
staggernumber45Milisekundy między zmienionymi cyframi, od jedności na zewnątrz. Cała fala jest ograniczona w czasie.
format(value) => string | Intl.NumberFormatOptionsFunkcja zwracająca tekst do pokazania lub opcje Intl.NumberFormat (z intl).
intlbooleanfalseUżyj wbudowanego Intl.NumberFormat. Domyślnie wyłączone, więc żadne środowisko nie potrzebuje Intl.
localestring | string[]Locale dla intl.
prefixstringTekst przed liczbą.
suffixstringTekst po liczbie.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(value) => voidUruchamia się z wartością, gdy cyfry się ułożą.
Strona komponentu i stanowisko

MotionText

Tekst animowany przy zmianie: tekst liczbowy przewija się cyfra po cyfrze, inny się zamienia.

PropTypDomyślnieOpis
childrenReactNodeTekst do pokazania.
aselement'span'Element do wyrenderowania.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(text) => voidUruchamia się, gdy ruch się ułoży.
Strona komponentu i stanowisko

MotionStream

Tekst strumieniowany odsłaniany w równym tempie, który nadrabia serie.

PropTypDomyślnieOpis
textstring—wymaganeDotychczasowy tekst. Rosnący tekst odsłania się w równym tempie; przepisanie kontynuuje od wspólnego początku.
speednumber90Bazowa prędkość odsłaniania w znakach na sekundę.
catchUpnumber900Zaległość jest odsłaniana w mniej więcej tylu milisekundach dzięki przyspieszeniu.
initialbooleanfalseOdsłaniaj też tekst obecny przy montażu (w przeciwnym razie pokazuje się od razu).
effect'fade' | 'none''fade'fade wprowadza nowe znaki stopniowo; none pokazuje je od razu.
children(visible: string) => ReactNodeFunkcja dostająca tekst w wyrównanym tempie, na przykład do renderowania Markdown.
aselement'span'Element do wyrenderowania.
onMotionComplete(text) => voidUruchamia się za każdym razem, gdy odsłanianie dogoni text.
Strona komponentu i stanowisko

Treść i rozmiar

MotionSwap

Treść przenikająca się, gdy element zmienia rozmiar.

PropTypDomyślnieOpis
valueunknownTożsamość treści; nowa wartość ją zamienia. Dzieci będące zwykłym tekstem są własną tożsamością.
childrenReactNodeTreść.
aselement'span'Element do wyrenderowania.
inlinebooleanas === 'span'true dopasowuje rozmiar do treści (etykiety, ikony); false wypełnia szerokość rodzica i animuje wysokość.
align'start' | 'center' | 'end''center'Gdzie znajduje się treść podczas zmiany rozmiaru.
effect'fade' | 'up' | 'down' | 'scale''fade'Jak treść wchodzi i wychodzi: up unosi się, down opada, scale rośnie.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(value) => voidUruchamia się, gdy ruch się ułoży.
Strona komponentu i stanowisko

MotionHeight

Animuje wysokość do treści: zwijanie, rozwijanie i zmiany treści.

PropTypDomyślnieOpis
openbooleantruefalse zwija do zerowej wysokości; treść pozostaje zamontowana, ale ukryta i nieaktywna.
childrenReactNodeTreść.
aselement'div'Element do wyrenderowania.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(open) => voidUruchamia się z open, gdy wysokość się ułoży.
Strona komponentu i stanowisko

MotionPresence

Utrzymuje treść zamontowaną, gdy animuje się wejście i wyjście.

PropTypDomyślnieOpis
presentboolean—wymaganePokaż lub ukryj treść. Zmieniaj to zamiast odmontowywać.
enterPose{ opacity: 1, translateY: 0 }Poza w spoczynku.
exitPose{ opacity: 0, translateY: -12 }Poza, z którą treść wychodzi i z której wchodzi.
aselement'div'Element do wyrenderowania.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onExitComplete() => voidUruchamia się, gdy treść odejdzie i zostanie usunięta.
Strona komponentu i stanowisko

Wybór i strony

MotionHighlight

Elementy z danych z jednym wyróżnieniem, które przesuwa się do wybranego elementu.

PropTypDomyślnieOpis
itemsreadonly T[]—wymaganeTwoja tablica danych.
valuekey | null—wymaganeKlucz wyróżnionego elementu; null ukrywa wyróżnienie.
onValueChange(key, item) => voidUruchamia się z kluczem i elementem po naciśnięciu elementu.
getKey(item) => string | numberitem.idZwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element.
renderItem(item, { selected, index }) => ReactNodeitem.labelRysuje element; dostaje informację, czy jest wybrany.
hoverbooleanfalsePodążaj za wskaźnikiem nad elementami i wróć do value po wyjściu (sieć).
itemAselement'button'Element dla każdej pozycji.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.
highlightClassNamestringKlasa wyróżnienia; highlightStyle ustawia jego styl inline.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

MotionPager

Strony z danych przewijane gestem.

PropTypDomyślnieOpis
itemsreadonly T[]—wymaganeTwoja tablica danych.
indexnumberPokazywana strona. Pomiń ją, by pager zarządzał własną.
defaultIndexnumber0Strona początkowa, gdy index nie jest kontrolowany.
onIndexChange(index, item) => voidUruchamia się z indeksem i elementem, gdy tylko przesunięcie, klawisz lub gest kółka się ułoży.
getKey(item) => string | numberitem.idZwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element.
renderItem(item, { index, active }) => ReactNodeitem.labelRysuje stronę; dostaje jej indeks i informację, czy jest aktywna.
gapnumber0Odstęp między stronami w pikselach.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

Listy

MotionList

Lista z kluczami z danych, która animuje tylko to, co się zmieniło.

PropTypDomyślnieOpis
itemsreadonly T[]—wymaganeTwoja tablica danych.
getKey(item) => string | numberitem.idZwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element.
renderItem(item, index) => ReactNodeitem.labelRysuje element.
aselement'div'Element do wyrenderowania.
itemAselement'li' | 'div'Element dla każdej pozycji.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Jak elementy wchodzą i wychodzą.
distancenumber16Droga rise i slide w pikselach.
staggernumber40Milisekundy między wchodzącymi elementami.
order'forward' | 'reverse''forward'Kierunek kaskady.
presentbooleantruefalse animuje wyjście wszystkich elementów, zachowując układ; true je przywraca.
initialbooleantrueOdtwórz wejście przy montażu listy.
playKeystring | numberJej zmiana odtwarza wejście ponownie.
transitionTransitionspringPrzejście dla elementów wchodzących i wychodzących.
layoutTransitionTransitionspringPrzejście dla elementów przechodzących na nowe pozycje.
Strona komponentu i stanowisko

MotionReorder

Przeciągnij, by zmienić kolejność listy lub siatki, z przesuwaniem klawiaturą.

PropTypDomyślnieOpis
itemsreadonly T[]Elementy, gdy to ty kontrolujesz kolejność.
defaultItemsreadonly T[][]Elementy początkowe, gdy kolejność trzyma komponent.
onItemsChange(items, { reason, key }) => voidUruchamia się z nową kolejnością i informacją, czy pochodzi z przeciągania, upuszczenia czy klawiatury.
getKey(item) => string | numberitemZwraca unikalny klucz elementu. Domyślnie sam element.
renderItem(item, { index, dragging }) => ReactNodeitem.labelRysuje element; dostaje jego indeks i informację, czy jest przeciągany.
reorder'live' | 'drop''live'live przesuwa inne elementy podczas przeciągania; drop czeka na upuszczenie.
layout'list' | 'grid''grid'list lub grid.
columnsnumber3Kolumny w siatce.
gapnumber12Odstęp między elementami w pikselach.
disabledbooleanfalseWyłącza przeciąganie.
durationnumber260Milisekundy, w których elementy robią miejsce.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.
Strona komponentu i stanowisko

Gesty

MotionSwipe

Wiersz odsłaniający akcje poziomym przesunięciem, który można odrzucić.

PropTypDomyślnieOpis
childrenReactNodeTreść wiersza.
startActionsReactNodeOdsłaniane na początku wiersza, gdy przeciąga się go w stronę końca.
endActionsReactNodeOdsłaniane na końcu wiersza, gdy przeciąga się go w stronę początku.
dismiss'start' | 'end' | 'both'Strony, po których długie przesunięcie lub rzut usuwa wiersz.
onDismiss(side) => voidUruchamia się po wysunięciu i zwinięciu wiersza; tu usuń element ze swoich danych.
onOpenChange(side | null) => voidUruchamia się z otwartą stroną lub null, gdy wiersz się zamyka.
disabledbooleanfalseWyłącza przesuwanie.
contentClassNamestringKlasa dla treści wiersza; contentStyle ustawia jej styl inline.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

MotionHold

Naciśnij i przytrzymaj, by potwierdzić; wczesne puszczenie cofa.

PropTypDomyślnieOpis
childrenReactNodeEtykieta przycisku.
onConfirm() => voidUruchamia się po zakończeniu przytrzymania.
durationnumber1200Milisekundy, przez które trzeba przytrzymać.
disabledbooleanfalseWyłącza przycisk.
fillClassNamestringKlasa dla rosnącego wypełnienia; fillStyle ustawia jego styl inline.
Strona komponentu i stanowisko

Nakładki

MotionSheet

Arkusz dolny, górny lub szuflada boczna z punktami zatrzymania.

PropTypDomyślnieOpis
openbooleanfalseCzy arkusz jest widoczny.
onOpenChange(open) => voidUruchamia się z false, gdy arkusz zostaje zamknięty przeciągnięciem, dotknięciem lub klawiszem Escape.
detents(number | 'content')[]['content']Rozmiary spoczynku: ułamek ekranu, piksele lub 'content'.
detentnumberKontrolowany indeks punktu zatrzymania.
defaultDetentnumber0Indeks punktu zatrzymania przy otwarciu bez detent.
onDetentChange(index) => voidUruchamia się z indeksem punktu zatrzymania, na którym arkusz się układa.
side'bottom' | 'top' | 'start' | 'end''bottom'Krawędź, z której wysuwa się arkusz.
modalbooleantrueDodaje tło, trzyma fokus w środku i czyni stronę nieaktywną.
dismissiblebooleantruePrzeciągnięcie poza najmniejszy punkt zatrzymania, tło i Escape go zamykają.
backdropClassNamestringKlasa tła; backdropStyle ustawia jego styl inline.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

MotionZoom

Obraz powiększający się od miejsca, w którym jest, aż wypełni ekran.

PropTypDomyślnieOpis
srcstringObraz pokazywany w miejscu.
zoomSrcstringWiększy obraz pokazywany, gdy się wczyta; zachowaj te same proporcje.
marginnumber24Odstęp wokół powiększonego obrazu w pikselach.
disabledbooleanfalseWyłącza powiększanie.
onZoomChange(zoomed) => voidUruchamia się z true po powiększeniu i false po zamknięciu.
backdropStyleCSSPropertiesStyl inline tła.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

Postęp

ProgressBar

Kontrolowana linia postępu ze stanem nieokreślonym.

PropTypDomyślnieOpis
valuenumber | nullPostęp od 0 do max; null oznacza stan nieokreślony.
maxnumber100Wartość oznaczająca ukończenie.
colorstring'currentColor'Kolor wypełnienia.
trackColorstring'#e7ece9'Kolor toru.
thicknessnumber8Grubość linii w pikselach.
direction'ltr' | 'rtl''ltr'Wypełnianie od lewej (ltr) lub od prawej (rtl).
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

ProgressRing

Kontrolowany pierścień postępu ze stanem nieokreślonym.

PropTypDomyślnieOpis
valuenumber | nullPostęp od 0 do max; null oznacza stan nieokreślony.
maxnumber100Wartość oznaczająca ukończenie.
sizenumber96Średnica w pikselach.
thicknessnumber8Grubość pierścienia w pikselach.
colorstring'currentColor'Kolor łuku.
trackColorstring'#e7ece9'Kolor toru.
childrenReactNodeEtykieta pokazywana w środku.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
Strona komponentu i stanowisko

Przejścia

motionTokens

Gotowe wartości dla dowolnego propa transition.

PropTypDomyślnieOpis
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Czasy trwania w milisekundach.
easing{ ease, easeOut, expoOut, backOut }TransitionPrzejścia timing z czasem trwania i nazwaną krzywą.
spring{ quick, basic, gentle, bouncy }TransitionPrzejścia sprężynowe, od szybkich i sztywnych po łagodne i sprężyste.
Przejścia
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} />
    </>
  );
}

Szukaj

Zacznij pisać, aby przeszukać dokumentację.