Справочник на API

Всеки експорт на @kkwaenggwari/animated-chorus с props, типове и стойности по подразбиране. Същите имена работят в уеб и в React Native.

API: 17

Числа и текст

MotionNumber

Число, чиито разряди се въртят като колелца.

PropТипПо подразбиранеОписание
valuenumber | bigint | string—задължителноЧислото или числов текст, форматиран от вас.
mode'replace' | 'roll''replace'replace мести всеки променен разряд с една стъпка; roll минава през цифрите между тях.
direction'auto' | 'digit' | 'up' | 'down''auto'auto следва промяната на големината, така че преносите се превъртат в една посока; digit сравнява всеки разряд поотделно.
staggernumber45Милисекунди между променените разряди, от единиците навън. Цялата вълна е ограничена във времето.
format(value) => string | Intl.NumberFormatOptionsФункция, която връща текста за показване, или опции на Intl.NumberFormat (с intl).
intlbooleanfalseИзползвай вградения Intl.NumberFormat. Изключено по подразбиране, за да не се нуждае никоя среда от Intl.
localestring | string[]Локал за intl.
prefixstringТекст преди числото.
suffixstringТекст след числото.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(value) => voidИзпълнява се със стойността, след като разрядите спрат.
Страница на компонента и работна маса

MotionText

Текст, който се анимира при промяна: числовият се превърта по разряди, а другият се сменя.

PropТипПо подразбиранеОписание
childrenReactNodeТекстът за показване.
aselement'span'Елементът за рендериране.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(text) => voidИзпълнява се, когато движението спре.
Страница на компонента и работна маса

MotionStream

Поточен текст, който се разкрива с равномерно темпо и наваксва изблиците.

PropТипПо подразбиранеОписание
textstring—задължителноТекстът досега. Растящият текст се разкрива с равномерно темпо; пренаписването продължава от общото начало.
speednumber90Основна скорост на разкриване в знаци в секунда.
catchUpnumber900Натрупаното се разкрива за около толкова милисекунди чрез ускоряване.
initialbooleanfalseРазкривай и текста, наличен при монтиране (иначе се показва веднага).
effect'fade' | 'none''fade'fade плавно показва новите знаци; none ги показва директно.
children(visible: string) => ReactNodeФункция, която получава текста в нужното темпо, например за рендериране на Markdown.
aselement'span'Елементът за рендериране.
onMotionComplete(text) => voidИзпълнява се всеки път, когато разкриването навакса text.
Страница на компонента и работна маса

Съдържание и размер

MotionSwap

Съдържание, което се прелива, докато елементът сменя размера си.

PropТипПо подразбиранеОписание
valueunknownИдентичност на съдържанието; нова стойност предизвиква смяна. Дъщерният текст сам е своя идентичност.
childrenReactNodeСъдържанието.
aselement'span'Елементът за рендериране.
inlinebooleanas === 'span'true нагласява размера към съдържанието (етикети, икони); false запълва ширината на родителя и анимира височината.
align'start' | 'center' | 'end''center'Къде е съдържанието, докато размерът се променя.
effect'fade' | 'up' | 'down' | 'scale''fade'Как съдържанието влиза и излиза: up се издига, down се спуска, scale расте.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(value) => voidИзпълнява се, когато движението спре.
Страница на компонента и работна маса

MotionHeight

Анимира височината според съдържанието: свиване, разгъване и промени на съдържанието.

PropТипПо подразбиранеОписание
openbooleantruefalse свива до нулева височина; съдържанието остава монтирано, но скрито и неактивно.
childrenReactNodeСъдържанието.
aselement'div'Елементът за рендериране.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(open) => voidИзпълнява се с open, след като височината спре.
Страница на компонента и работна маса

MotionPresence

Държи съдържанието монтирано, докато се анимира при влизане и излизане.

PropТипПо подразбиранеОписание
presentboolean—задължителноПокажи или скрий съдържанието. Променяйте това вместо демонтиране.
enterPose{ opacity: 1, translateY: 0 }Позата в покой.
exitPose{ opacity: 0, translateY: -12 }Позата, с която съдържанието излиза и от която влиза.
aselement'div'Елементът за рендериране.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onExitComplete() => voidИзпълнява се, след като съдържанието е излязло и е премахнато.
Страница на компонента и работна маса

Избор и страници

MotionHighlight

Елементи от данни с едно подчертаване, което се мести към избрания елемент.

PropТипПо подразбиранеОписание
itemsreadonly T[]—задължителноВашият масив с данни.
valuekey | null—задължителноКлюч на подчертания елемент; null скрива подчертаването.
onValueChange(key, item) => voidИзпълнява се с ключа и елемента при натискане на елемент.
getKey(item) => string | numberitem.idВръща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент.
renderItem(item, { selected, index }) => ReactNodeitem.labelРисува елемент; получава дали е избран.
hoverbooleanfalseСледвай показалеца над елементите и се върни към value при излизане (уеб).
itemAselement'button'Елементът за всяка позиция.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.
highlightClassNamestringКлас за подчертаването; highlightStyle задава вградения му стил.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

MotionPager

Страници от данни с плъзгане.

PropТипПо подразбиранеОписание
itemsreadonly T[]—задължителноВашият масив с данни.
indexnumberПоказаната страница. Пропуснете я, за да остави пейджърът да управлява своята.
defaultIndexnumber0Начална страница, когато index не е контролиран.
onIndexChange(index, item) => voidИзпълнява се с индекса и елемента веднага щом плъзгане, клавиш или жест с колелцето спре.
getKey(item) => string | numberitem.idВръща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент.
renderItem(item, { index, active }) => ReactNodeitem.labelРисува страница; получава индекса ѝ и дали е активна.
gapnumber0Разстояние между страниците в пиксели.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

Списъци

MotionList

Списък с ключове от данни, който анимира само промененото.

PropТипПо подразбиранеОписание
itemsreadonly T[]—задължителноВашият масив с данни.
getKey(item) => string | numberitem.idВръща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент.
renderItem(item, index) => ReactNodeitem.labelРисува елемент.
aselement'div'Елементът за рендериране.
itemAselement'li' | 'div'Елементът за всяка позиция.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Как елементите влизат и излизат.
distancenumber16Път на rise и slide в пиксели.
staggernumber40Милисекунди между влизащите елементи.
order'forward' | 'reverse''forward'Посока на каскадата.
presentbooleantruefalse анимира излизането на всички елементи, като запазва оформлението; true ги връща.
initialbooleantrueВъзпроизвеждай влизането при монтиране на списъка.
playKeystring | numberПромяната му възпроизвежда влизането отново.
transitionTransitionspringПреход за влизащи и излизащи елементи.
layoutTransitionTransitionspringПреход за елементи, плъзгащи се към нови позиции.
Страница на компонента и работна маса

MotionReorder

Пренареждане на списък или мрежа с влачене, с преместване с клавиатура.

PropТипПо подразбиранеОписание
itemsreadonly T[]Елементите, когато вие управлявате реда.
defaultItemsreadonly T[][]Начални елементи, когато компонентът пази реда.
onItemsChange(items, { reason, key }) => voidИзпълнява се с новия ред и източника на промяната: влачене, пускане или клавиатура.
getKey(item) => string | numberitemВръща уникален ключ за елемент. По подразбиране — самия елемент.
renderItem(item, { index, dragging }) => ReactNodeitem.labelРисува елемент; получава индекса му и дали се влачи.
reorder'live' | 'drop''live'live мести другите елементи по време на влачене; drop чака пускането.
layout'list' | 'grid''grid'list или grid.
columnsnumber3Колони в мрежа.
gapnumber12Разстояние между елементите в пиксели.
disabledbooleanfalseИзключва влаченето.
durationnumber260Милисекунди, за които елементите се отместват.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.
Страница на компонента и работна маса

Жестове

MotionSwipe

Ред, който показва действия при хоризонтално плъзгане и може да бъде отместен.

PropТипПо подразбиранеОписание
childrenReactNodeСъдържанието на реда.
startActionsReactNodeПоказват се в началото на реда при влачене към края.
endActionsReactNodeПоказват се в края на реда при влачене към началото.
dismiss'start' | 'end' | 'both'Страни, от които дълго плъзгане или хвърляне премахва реда.
onDismiss(side) => voidИзпълнява се, след като редът се е изплъзнал и свил; тук премахнете елемента от данните си.
onOpenChange(side | null) => voidИзпълнява се с отворената страна или null, когато редът се затвори.
disabledbooleanfalseИзключва плъзгането.
contentClassNamestringКлас за съдържанието на реда; contentStyle задава вградения му стил.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

MotionHold

Натиснете и задръжте за потвърждение; ранното пускане връща назад.

PropТипПо подразбиранеОписание
childrenReactNodeЕтикетът на бутона.
onConfirm() => voidИзпълнява се, когато задържането приключи.
durationnumber1200Милисекунди, за които трябва да се задържи натискането.
disabledbooleanfalseИзключва бутона.
fillClassNamestringКлас за растящото запълване; fillStyle задава вградения му стил.
Страница на компонента и работна маса

Наслагвания

MotionSheet

Долен или горен панел, или странично чекмедже със спирки.

PropТипПо подразбиранеОписание
openbooleanfalseДали панелът е показан.
onOpenChange(open) => voidИзпълнява се с false, когато панелът бъде затворен с влачене, докосване или Escape.
detents(number | 'content')[]['content']Размери в покой: част от екрана, пиксели или 'content'.
detentnumberКонтролиран индекс на спирката.
defaultDetentnumber0Индекс на спирката при отваряне без detent.
onDetentChange(index) => voidИзпълнява се с индекса на спирката, на която панелът спира.
side'bottom' | 'top' | 'start' | 'end''bottom'Ръбът, от който идва панелът.
modalbooleantrueДобавя фон, задържа фокуса вътре и прави страницата неактивна.
dismissiblebooleantrueЗатварят го влачене отвъд най-малката спирка, фонът и Escape.
backdropClassNamestringКлас за фона; backdropStyle задава вградения му стил.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

MotionZoom

Изображение, което се мащабира от мястото си, докато запълни екрана.

PropТипПо подразбиранеОписание
srcstringИзображението, показано на място.
zoomSrcstringПо-голямо изображение, показвано след зареждане; запазете същото съотношение на страните.
marginnumber24Разстояние около мащабираното изображение в пиксели.
disabledbooleanfalseИзключва мащабирането.
onZoomChange(zoomed) => voidИзпълнява се с true при мащабиране и false при затваряне.
backdropStyleCSSPropertiesВграден стил за фона.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

Напредък

ProgressBar

Контролирана линия за напредък с неопределено състояние.

PropТипПо подразбиранеОписание
valuenumber | nullНапредък от 0 до max; null е неопределено.
maxnumber100Стойността, която означава завършено.
colorstring'currentColor'Цвят на запълването.
trackColorstring'#e7ece9'Цвят на пистата.
thicknessnumber8Дебелина на линията в пиксели.
direction'ltr' | 'rtl''ltr'Запълване отляво (ltr) или отдясно (rtl).
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

ProgressRing

Контролиран пръстен за напредък с неопределено състояние.

PropТипПо подразбиранеОписание
valuenumber | nullНапредък от 0 до max; null е неопределено.
maxnumber100Стойността, която означава завършено.
sizenumber96Диаметър в пиксели.
thicknessnumber8Дебелина на пръстена в пиксели.
colorstring'currentColor'Цвят на дъгата.
trackColorstring'#e7ece9'Цвят на пистата.
childrenReactNodeЕтикет в центъра.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
Страница на компонента и работна маса

Преходи

motionTokens

Готови стойности за всеки prop transition.

PropТипПо подразбиранеОписание
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520Продължителности в милисекунди.
easing{ ease, easeOut, expoOut, backOut }TransitionПреходи timing с продължителност и именувана крива.
spring{ quick, basic, gentle, bouncy }TransitionПружинни преходи — от бързи и твърди до меки и подскачащи.
Преходи
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} />
    </>
  );
}

Търсене

Пишете, за да търсите в документацията.