MotionNumber · MotionText
Angka yang digitnya bergulir seperti roda, termasuk digit yang muncul atau hilang.
WebReact NativeAngka dan teks
Coba
Menyiapkan contoh…
Penggunaan terpendek
<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,000menggulirkan 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 fungsiformat, atau aktifkan denganintl.
Gunakan untuk
- Total keranjang yang berubah saat item ditambahkan.
- Penghitung atau skor langsung.
- Angka dasbor yang diperbarui setiap beberapa detik.
Props
MotionNumber
| Prop | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
value | number | bigint | string | —wajib | Angka, 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. |
stagger | number | 45 | Milidetik antar digit yang berubah, dari satuan ke luar. Seluruh riaknya dibatasi. |
format | (value) => string | Intl.NumberFormatOptions | Fungsi yang mengembalikan teks untuk ditampilkan, atau opsi Intl.NumberFormat (dengan intl). | |
intl | boolean | false | Gunakan Intl.NumberFormat bawaan. Mati secara bawaan agar tidak ada runtime yang memerlukan Intl. |
locale | string | string[] | Locale untuk intl. | |
prefix | string | Teks sebelum angka. | |
suffix | string | Teks setelah angka. | |
transition | Transition | spring | Kurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi. |
onMotionComplete | (value) => void | Berjalan dengan nilainya setelah digit berhenti. |
MotionText
| Prop | Tipe | Bawaan | Deskripsi |
|---|---|---|---|
children | ReactNode | Teks yang ditampilkan. | |
as | element | 'span' | Elemen yang dirender. |
transition | Transition | spring | Kurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi. |
onMotionComplete | (text) => void | Berjalan 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
- Ringkasan checkoutJumlah, total per baris, dan total keseluruhan bergulir saat keranjang berubah; pemberitahuan kupon masuk dan pergi; membayar memerlukan tahanan yang disengaja.
MotionListMotionNumberMotionPresenceMotionHold - Kotak masukTab filter dengan hitungan langsung, baris yang bisa digeser pergi, dan daftar yang menutup celahnya.
MotionHighlightMotionListMotionSwipeMotionNumber