Count Upv1.0.0
عدد را وقتی دستکم ۴۰٪ آن در صفحه دیده شد از from تا value میشمارد؛ با from بزرگتر از value شمارش معکوس است. ارقام فارسی و جداکنندهٔ هزارگان دارد و حرکت با easeOut آرام روی عدد نهایی مینشیند.
این کامپوننت فعلاً برای ۱ فریمورک از ۴ فریمورک آماده است.
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
نصب
با CLI اختصاصی digdesign کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگیها و فایلها خودکار اضافه میشوند.
npx digdesign@latest add https://docs.digdesign.ir/r/count-up.jsonpnpm dlx digdesign@latest add https://docs.digdesign.ir/r/count-up.jsonyarn dlx digdesign@latest add https://docs.digdesign.ir/r/count-up.jsonbunx --bun digdesign@latest add https://docs.digdesign.ir/r/count-up.jsonاین کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
استفاده
import { CountUp } from "@/components/ui/count-up"
<CountUp value={1250} />این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
ترکیب اجزا
شمارنده یک span است با دو بخش: عدد متحرک که با aria-hidden از صفحهخوان پنهان است و عدد نهایی در sr-only. شمارش با IntersectionObserver فقط یک بار و وقتی به دید آمد شروع میشود و tabular-nums جلوی لرزش عرض عدد را میگیرد.
دسترسپذیری
- صفحهخوان فقط عدد نهایی را میخواند، نه هر فریم شمارش را.
- با prefers-reduced-motion عدد نهایی بیدرنگ نشان داده میشود.
- ارقام همعرض (tabular-nums) جلوی جابهجا شدن متن اطراف را حین شمارش میگیرند.
مرجع API
| ویژگی | نوع | پیشفرض | توضیح |
|---|---|---|---|
| value | number | — | عدد نهایی. |
| from | number | 0 | عدد شروع؛ بزرگتر از value یعنی شمارش معکوس. |
| duration | number | 1600 | مدت شمارش به میلیثانیه. |
| decimals | number | 0 | تعداد رقم اعشار. |
| prefix | React.ReactNode | — | پیش از عدد در جهت خواندن. |
| suffix | React.ReactNode | — | پس از عدد در جهت خواندن، مثل «+» یا «٪». |
این کامپوننت هنوز برای Vue پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Svelte پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
این کامپوننت هنوز برای Angular پورت نشده است.
نسخهٔ ریاکت آماده است؛ پورت این فریمورک در دست کار است.
نمونهها
آمار لندینگ
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
شمارش معکوس (from بزرگتر)
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
اعشار
این نمونه هنوز برای Vue پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Svelte پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
این نمونه هنوز برای Angular پورت نشده است؛ آنچه میبینید نسخهٔ ریاکت است.
کدام نمونه برای کدام موقعیت
| نمونه | کجا به کار میآید |
|---|---|
| آمار لندینگ | بخش آمار زیر قهرمان |
| شمارش معکوس (from بزرگتر) | ظرفیت باقیمانده یا موجودی رو به اتمام |
| اعشار | — |
دستورالعمل استفاده
برای چند عدد مهم، نه هر عددی
انجام بده
سه یا چهار آمار کلیدی در لندینگ یا سرِ داشبورد؛ حرکت توجه را به همانها میبرد.
انجام نده
اعداد جدول یا فرم را نشمارید؛ کاربر برای خواندن باید منتظر بماند.