Semua komponen

MotionNumber · MotionText

Angka yang digitnya bergulir seperti roda, termasuk digit yang muncul atau hilang.

WebReact NativeAngka dan teks

Coba

Menyiapkan contoh…

Penggunaan terpendek

Total.jsx
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
  format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>

Yang ditanganinya untuk Anda

  • Simpanan: 999 → 1,000 menggulirkan setiap digit yang berubah ke arah yang sama, seperti odometer.
  • Digit yang muncul atau hilang bergulir masuk atau keluar dari kolomnya sendiri, bukan muncul tiba-tiba.
  • Pemisah, tanda, dan simbol mata uang muncul dan memudar bersama digit tempatnya berada.
  • Digit yang tersisa bergeser ke posisi barunya sambil bergulir, jadi angka tak pernah terpecah.
  • Nilai baru di tengah gerak melanjutkan tepat dari yang ada di layar.
  • Pemformatan tidak pernah memerlukan Intl: berikan teks atau fungsi format, atau aktifkan dengan intl.

Gunakan untuk

  • Total keranjang yang berubah saat item ditambahkan.
  • Penghitung atau skor langsung.
  • Angka dasbor yang diperbarui setiap beberapa detik.

Props

MotionNumber

PropTipeBawaanDeskripsi
valuenumber | bigint | string—wajibAngka, atau teks angka yang diformat pemanggil.
mode'replace' | 'roll''replace'replace menggerakkan setiap digit yang berubah satu langkah; roll melewati digit di antaranya.
direction'auto' | 'digit' | 'up' | 'down''auto'auto mengikuti perubahan besaran sehingga simpanan bergulir ke satu arah; digit membandingkan setiap digit sendiri-sendiri.
staggernumber45Milidetik antar digit yang berubah, dari satuan ke luar. Seluruh riaknya dibatasi.
format(value) => string | Intl.NumberFormatOptionsFungsi yang mengembalikan teks untuk ditampilkan, atau opsi Intl.NumberFormat (dengan intl).
intlbooleanfalseGunakan Intl.NumberFormat bawaan. Mati secara bawaan agar tidak ada runtime yang memerlukan Intl.
localestring | string[]Locale untuk intl.
prefixstringTeks sebelum angka.
suffixstringTeks setelah angka.
transitionTransitionspringKurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi.
onMotionComplete(value) => voidBerjalan dengan nilainya setelah digit berhenti.

MotionText

PropTipeBawaanDeskripsi
childrenReactNodeTeks yang ditampilkan.
aselement'span'Elemen yang dirender.
transitionTransitionspringKurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi.
onMotionComplete(text) => voidBerjalan saat gerak berhenti.

Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.

Web dan React Native

Di web, setiap digit adalah tumpukan kecil glyph yang diputar Web Animations API, dan teksnya tetap bisa dipilih. MotionText menganimasikan teks apa pun: teks angka bergulir per digit, teks lain bertukar.

Di React Native, angka tetap Text sungguhan untuk tata letak, pemilihan, dan aksesibilitas, termasuk pembungkusan baris dan numberOfLines; glyph bergerak dengan driver native.

Dipakai di contoh-contoh ini

Cari

Ketik untuk mencari dokumentasi.