شمارش معکوس
countdownکامپوننتتایمر شمارش معکوس با اعداد فارسی؛ برای فلشسیلز فروشگاه یا لانچ محصول در لندینگ.
--
روز
--
ساعت
--
دقیقه
--
ثانیه
نصب
با CLI
اگر هنوز init نکردید، اول از راهنمای نصب پروژه را آماده کنید. بعد این دستور کامپوننت و وابستگیهاش را مینویسه.
$ npx vibefarsi add countdownنصب دستی
محتوای تب «کد» را در
components/ui/countdown.tsxبگذارید.$ npm i lucide-reactکپی کل فایلregistry json
استفاده
usage.tsx
1import { Countdown } from "@/components/ui/countdown"23const launch = new Date("2026-10-01T12:00:00+03:30")45<Countdown target={launch} className="max-w-md" />6<Countdown target={launch} units={["hours", "minutes", "seconds"]} variant="inline" size="sm" />پراپها
| پراپ | نوع | پیشفرض | توضیح |
|---|---|---|---|
| target | Date | string | number | - | زمان پایان؛ Date، رشتهی ISO یا timestamp. |
| units | ("days" | "hours" | "minutes" | "seconds")[] | هر چهار واحد | کدام خانهها نشان داده شوند، به ترتیب چپبهراست. |
| variant | "cards" | "inline" | "cards" | کارتهای جدا یا ۱۲:۳۴:۵۶ با دونقطه. |
| size | "sm" | "md" | "lg" | "md" | اندازهی رقم و پدینگ. |
| pad | boolean | true | رقمها دوخانهای با صفر (۰۰). |
| labels | Partial<Record<unit, string>> | - | برچسب فارسی هر واحد؛ پیشفرض روز/ساعت/دقیقه/ثانیه. |
| onComplete | () => void | - | یکبار وقتی به صفر رسید. |
نکتههای راستچین
- تا قبل از mount خانهها «--» هستند تا HTML سرور و کلاینت یکی بماند.
- useCountdown را هم میتوان جدا برای منطق سفارشی import کرد.
- dir=ltr روی رقمهاست تا ترتیب روز←ثانیه درست خوانده شود؛ برچسبها فارسی میمانند.