API リファレンス

@kkwaenggwari/animated-chorus のすべてのエクスポートと、その props、型、デフォルト値。Web でも React Native でも同じ名前で使えます。

17 個の API

数字とテキスト

MotionNumber

桁がホイールのように回る数字。

Prop型デフォルト説明
valuenumber | bigint | string—必須数値、または呼び出し側でフォーマットした数字のテキスト。
mode'replace' | 'roll''replace'replace は変わった桁を 1 段だけ動かし、roll は途中の数字を通って回ります。
direction'auto' | 'digit' | 'up' | 'down''auto'auto は大きさの変化に従うので繰り上がりが同じ向きに回り、digit は桁ごとに個別に比較します。
staggernumber45変わった桁どうしの間隔(ミリ秒)。1 の位から外側へ。波全体の長さには上限があります。
format(value) => string | Intl.NumberFormatOptions表示するテキストを返す関数、または Intl.NumberFormat のオプション(intl と一緒に)。
intlbooleanfalse組み込みの Intl.NumberFormat を使います。どのランタイムでも Intl を必須にしないよう、デフォルトはオフです。
localestring | string[]intl で使うロケール。
prefixstring数字の前のテキスト。
suffixstring数字の後のテキスト。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
onMotionComplete(value) => void桁が落ち着いた後に、その値を受け取って実行されます。
コンポーネントのページとワークベンチ

MotionText

変わるとアニメーションするテキスト。数字のテキストは桁ごとに回転し、それ以外のテキストは切り替わります。

Prop型デフォルト説明
childrenReactNode表示するテキスト。
aselement'span'描画する要素。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
onMotionComplete(text) => voidモーションが落ち着いたときに実行されます。
コンポーネントのページとワークベンチ

MotionStream

まとめて届くストリーミングテキストを一定のペースで表示し、溜まった分にも追いつきます。

Prop型デフォルト説明
textstring—必須これまでのテキスト。増えたテキストは一定のペースで表示され、書き直された場合は共通する先頭部分から続きます。
speednumber901 秒あたりの基本の表示文字数。
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タイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
onMotionComplete(value) => voidモーションが落ち着いたときに実行されます。
コンポーネントのページとワークベンチ

MotionHeight

高さを中身に合わせてアニメーションします。折りたたみ、展開、内容の変化。

Prop型デフォルト説明
openbooleantruefalse で高さ 0 まで折りたたみます。中身はマウントされたまま非表示・操作不可になります。
childrenReactNode中身。
aselement'div'描画する要素。
transitionTransitionspringタイミングカーブ { 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タイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
onExitComplete() => void中身が退場して取り除かれた後に実行されます。
コンポーネントのページとワークベンチ

選択とページ送り

MotionHighlight

データから作る項目と、選択した項目へ移動するひとつのハイライト。

Prop型デフォルト説明
itemsreadonly T[]—必須データの配列。
valuekey | null—必須ハイライトする項目の key。null でハイライトを隠します。
onValueChange(key, item) => void項目が押されたときに、key と項目を受け取って実行されます。
getKey(item) => string | numberitem.id項目の一意で安定した key を返します。デフォルトは item.id、文字列や数値なら項目そのものです。
renderItem(item, { selected, index }) => ReactNodeitem.label項目を描画します。選択されているかどうかを受け取ります。
hoverbooleanfalseポインターを追って項目の上を移動し、離れると value へ戻ります(Web)。
itemAselement'button'各項目の要素。
itemClassNamestring各項目の要素のクラス。インラインスタイルは itemStyle で指定します。
highlightClassNamestringハイライトのクラス。インラインスタイルは highlightStyle で指定します。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

MotionPager

データから作るスワイプできるページ。

Prop型デフォルト説明
itemsreadonly T[]—必須データの配列。
indexnumber表示するページ。省略するとページャーが自分で管理します。
defaultIndexnumber0index を制御しないときの最初のページ。
onIndexChange(index, item) => voidスワイプ、キー、ホイールの操作でページが落ち着くとすぐに、インデックスと項目を受け取って実行されます。
getKey(item) => string | numberitem.id項目の一意で安定した key を返します。デフォルトは item.id、文字列や数値なら項目そのものです。
renderItem(item, { index, active }) => ReactNodeitem.labelページを描画します。インデックスと、表示中かどうかを受け取ります。
gapnumber0ページ間の間隔(ピクセル)。
itemClassNamestring各項目の要素のクラス。インラインスタイルは itemStyle で指定します。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

リスト

MotionList

データから作る key 付きのリストで、変わったところだけをアニメーションします。

Prop型デフォルト説明
itemsreadonly T[]—必須データの配列。
getKey(item) => string | numberitem.id項目の一意で安定した key を返します。デフォルトは item.id、文字列や数値なら項目そのものです。
renderItem(item, index) => ReactNodeitem.label項目を描画します。
aselement'div'描画する要素。
itemAselement'li' | 'div'各項目の要素。
itemClassNamestring各項目の要素のクラス。インラインスタイルは itemStyle で指定します。
effect'rise' | 'fade' | 'scale' | 'slide''rise'項目の出入りのしかた。
distancenumber16rise と 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項目の一意な key を返します。デフォルトは項目そのものです。
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タイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

MotionHold

長押しで確定。途中で離すと巻き戻ります。

Prop型デフォルト説明
childrenReactNodeボタンのラベル。
onConfirm() => void長押しが完了したときに実行されます。
durationnumber1200押し続ける必要がある時間(ミリ秒)。
disabledbooleanfalseボタンを無効にします。
fillClassNamestring広がっていく塗りのクラス。インラインスタイルは fillStyle で指定します。
コンポーネントのページとワークベンチ

オーバーレイ

MotionSheet

段階付きのボトムシート、トップシート、サイドドロワー。

Prop型デフォルト説明
openbooleanfalseシートを表示するかどうか。
onOpenChange(open) => voidシートがドラッグ、タップ、Escape で閉じられたときに false を受け取って実行されます。
detents(number | 'content')[]['content']止まる位置のサイズ: 画面に対する割合、ピクセル、または 'content'。
detentnumber制御する段階のインデックス。
defaultDetentnumber0detent を指定せずに開くときに使う段階のインデックス。
onDetentChange(index) => voidシートが落ち着いた段階のインデックスを受け取って実行されます。
side'bottom' | 'top' | 'start' | 'end''bottom'シートが出てくる辺。
modalbooleantrue背景を追加し、フォーカスを内側に閉じ込め、ページを操作不可にします。
dismissiblebooleantrueいちばん小さな段階を越えるドラッグ、背景、Escape で閉じられます。
backdropClassNamestring背景のクラス。インラインスタイルは backdropStyle で指定します。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

MotionZoom

画像がその場から画面いっぱいに拡大します。

Prop型デフォルト説明
srcstringその場に表示する画像。
zoomSrcstring読み込みが終わると表示される大きな画像。縦横比は同じにしてください。
marginnumber24拡大した画像のまわりに残す余白(ピクセル)。
disabledbooleanfalse拡大を無効にします。
onZoomChange(zoomed) => void拡大したときに true、閉じたときに false を受け取って実行されます。
backdropStyleCSSProperties背景のインラインスタイル。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

進捗

ProgressBar

終わりの見えない状態にも対応した、制御された進捗バー。

Prop型デフォルト説明
valuenumber | null0 から max までの進捗。null は終わりの見えない状態です。
maxnumber100完了を表す値。
colorstring'currentColor'塗りの色。
trackColorstring'#e7ece9'トラックの色。
thicknessnumber8線の太さ(ピクセル)。
direction'ltr' | 'rtl''ltr'左から(ltr)または右から(rtl)満たします。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

ProgressRing

終わりの見えない状態にも対応した、制御された進捗リング。

Prop型デフォルト説明
valuenumber | null0 から max までの進捗。null は終わりの見えない状態です。
maxnumber100完了を表す値。
sizenumber96直径(ピクセル)。
thicknessnumber8リングの太さ(ピクセル)。
colorstring'currentColor'弧の色。
trackColorstring'#e7ece9'トラックの色。
childrenReactNode中央に表示するラベル。
transitionTransitionspringタイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。
コンポーネントのページとワークベンチ

トランジション

motionTokens

どの transition prop にも使える、用意された値。

Prop型デフォルト説明
duration{ instant, fast, normal, slow }0 · 140 · 280 · 520長さ(ミリ秒)。
easing{ ease, easeOut, expoOut, backOut }Transition長さと名前付きのカーブを持つタイミングのトランジション。
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} />
    </>
  );
}

検索

入力するとドキュメントを検索します。