Animated Number
値が変わるときに、桁ごとのロールまたは連続補間で数値を切り替えます。
主なプロパティ
TRAnimatedNumber は、アプリケーションの状態から受け取った数値を表示します。タイマーやカウンターの状態は管理しません。既定の roll アニメーションは値の増減方向に変更された数字を移動し、count は数値を連続補間してから同じロケール書式を適用します。初回レンダーでは動かないため、サーバーレンダリングと hydration ですぐに最終値が表示されます。
| プロパティ | 値 | 既定値 |
|---|---|---|
animation | roll, count | roll |
duration | 0 以上のミリ秒 | 600 |
rollDirection | auto, up, down | auto |
format | Intl.NumberFormatOptions | 10 進数書式 |
locale | Intl.LocalesArgument | 実行時ロケール |
インストール
pnpm add @tinyrack/ui長い行はコード領域を横にスクロールして確認できます。
スタイル
@import '@tinyrack/ui/components/animated-number.css';長い行はコード領域を横にスクロールして確認できます。
インポート
import { TRAnimatedNumber } from '@tinyrack/ui/components/animated-number';長い行はコード領域を横にスクロールして確認できます。
プレイグラウンド
使用方法
変化する指標 パーマリンク
制御された値を変更すると、変化した各数字が値全体の増減方向へ移動します。
例
ロールと連続補間 パーマリンク
各桁の動きが重要な場合は roll を使います。2 つの数値間の変化を見せる場合は count を使ってください。
ロケール別の数値書式 パーマリンク
通貨、パーセント、単位、桁区切り、符号、小数点の文字は Intl.NumberFormat から取得します。
ロール方向の固定 パーマリンク
通常の指標には auto を使います。カウントダウンのように視覚方向に意味がある場合は、up または down に固定できます。
API
valueは必須です。値を更新すると選択したアニメーションが始まり、マウント時に 0 からアニメーションすることはありません。animation="roll"は整数の桁を右から、小数の桁を左から揃えます。rollDirectionはこのモードだけに適用されます。animation="count"は ease-out で補間した数値をフレームごとに書式設定します。durationは両方のモードの時間をミリ秒で設定します。0と負数は最終値を即時表示し、有限でない値は600に戻ります。formatとlocaleはIntl.NumberFormatに渡されます。いずれかを変更すると、異なる書式間をアニメーションせず、現在値を新しい書式ですぐに表示します。NaNと無限大もアニメーションせずに表示します。- 視覚的な数字レイヤーは支援技術から隠し、書式設定されたテキストを 1 つだけ残します。値の変更は既定では通知されません。更新を通知する必要がある場合だけ、ネイティブの
aria-liveにpoliteを渡してください。 prefers-reduced-motionがreduceの場合は、実行中の動きをキャンセルして最終値を維持します。ネイティブ span props、イベントハンドラー、スタイル、クラス名、React 19 の ref を転送します。
| CSS トークン | 既定値 | 用途 |
|---|---|---|
--tr-animated-number-duration | --tinyrack-duration-number | duration prop を省略したときのロールと文字切り替えの時間 |
--tinyrack-duration-number | 600ms | 数値の変化を読み取りやすくする基盤時間 |