Badge

برچسبی کوچک برای نمایش وضعیت، دسته‌بندی یا شمارنده در کنار عناصر دیگر؛ یا نقطه‌ای که روی گوشهٔ یک عنصر (مثل آواتار) می‌نشیند.

ری‌اکت ۱۹ و Next.js با پیاده‌سازی دسترس‌پذیری داخلی دیگویو ۳ با Composition API و Reka UISvelte ۵ با runes و Bits UIانگولار با signals و Angular CDK

این کامپوننت فعلاً برای ۱ فریم‌ورک از ۴ فریم‌ورک آماده است.

جدید

این نمونه هنوز برای Vue پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Svelte پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

این نمونه هنوز برای Angular پورت نشده است؛ آنچه می‌بینید نسخهٔ ری‌اکت است.

نصب

با CLI اختصاصی dig-ui کامپوننت را از رجیستری دیگ نصب کنید؛ وابستگی‌ها و فایل‌ها خودکار اضافه می‌شوند.

نصب سریع با لینک سخت و دیسک مشترکپکیج‌منیجر پیش‌فرض Node.jsYarn نسخهٔ ۲ به بالا (Berry)رانتایم و پکیج‌منیجر Bun
pnpm dlx dig-ui@latest add https://design-system-tau-green.vercel.app/r/badge.json
npx dig-ui@latest add https://design-system-tau-green.vercel.app/r/badge.json
yarn dlx dig-ui@latest add https://design-system-tau-green.vercel.app/r/badge.json
bunx --bun dig-ui@latest add https://design-system-tau-green.vercel.app/r/badge.json

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.

استفاده

import { Badge } from "@/components/ui/badge"

<Badge color="success">تایید شده</Badge>

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.

ترکیب اجزا

رنگ Badge با دو محور مستقل کار می‌کند، درست مثل Button و Alert.

محور color فقط چهار متغیر CSS را ست می‌کند — --badge، --badge-foreground، --badge-subtle و --badge-subtle-foreground — و محور variant تصمیم می‌گیرد این رنگ کجا بنشیند: پس‌زمینهٔ توپر، پس‌زمینهٔ خنثی با متن رنگی، پس‌زمینهٔ ملایم یا فقط حاشیه. افزودن رنگ تازه یعنی یک سطر در محور color، نه یک ردیف compound به‌ازای هر حالت بصری.

  • وقتی Badge بدون فرزند رندر شود — یا dot صریحاً true باشد — به یک نقطهٔ توپر بدون متن تبدیل می‌شود.
  • برای نشستن روی گوشهٔ یک عنصر دیگر (مثل شمارندهٔ اعلان روی آواتار)، عنصر لنگر و Badge را داخل BadgeAnchor بگذارید و به Badge یک placement بدهید.

دسترس‌پذیری

  • به‌صورت پیش‌فرض یک span تزئینی است؛ اگر نشان تنها راه انتقال یک وضعیت است، متن آن را برای صفحه‌خوان هم واضح بنویسید.
  • برای نشان‌های قابل‌کلیک، از asChild همراه با یک Link یا button استفاده کنید تا نقش تعاملی درست اعلام شود.
  • نشان نقطه‌ای (dot) هیچ متنی ندارد؛ اگر وضعیتی را منتقل می‌کند (مثل آنلاین/آفلاین) یک aria-label روی BadgeAnchor یا عنصر لنگر بگذارید تا صفحه‌خوان هم آن را بفهمد.

مرجع API

Badge

تمام ویژگی‌های استاندارد span نیز پشتیبانی می‌شود.

ویژگینوعپیش‌فرضتوضیح
variant"default" | "secondary" | "soft" | "outline""default"حالت بصری نشان؛ تعیین می‌کند رنگ کجا بنشیند.
color"default" | "primary" | "success" | "warning" | "destructive""default"رنگ معنایی، مستقل از حالت. default یعنی همان ظاهر خنثای دیگ.
size"sm" | "default" | "lg""default"اندازهٔ نشان.
dotbooleanبه‌صورت پیش‌فرض وقتی فرزندی داده نشود خودکار true می‌شود؛ برای اجبار به شکل نقطه‌ای حتی با فرزند، صریحاً true بدهید.
placement"top-end" | "top-start" | "bottom-end" | "bottom-start"وقتی داخل BadgeAnchor باشد، Badge را روی همان گوشه از عنصر لنگر می‌نشاند (مطلق‌موقعیت).
asChildbooleanfalseرندر استایل‌ها روی فرزند مستقیم به‌جای تگ span.

BadgeAnchor

قاب موقعیت‌دهی برای Badge‌های anchor‌شده؛ یک span با position: relative که عنصر لنگر و Badge را کنار هم نگه می‌دارد.

ویژگینوعپیش‌فرضتوضیح
childrenReact.ReactNodeعنصر لنگر (مثل Avatar یا Button) به‌علاوهٔ خود Badge.
classNamestringکلاس‌های تکمیلی برای قاب لنگر.

این کامپوننت هنوز برای Vue پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Reka UI در دست کار است.

این کامپوننت هنوز برای Svelte پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Bits UI در دست کار است.

این کامپوننت هنوز برای Angular پورت نشده است.

نسخهٔ ری‌اکت آماده است؛ پورت این فریم‌ورک روی Angular CDK در دست کار است.