پیام متنی (Callout)
بلوک اطلاعرسانی برای نمایش پیامهای اطلاعاتی، هشدار، خطا و موفقیت
معرفی
کامپوننت Callout برای نمایش پیامهای متنی در سطح صفحه استفاده میشود. برخلاف Alert که بیشتر برای هشدارهای کوتاه است، Callout برای بلوکهای اطلاعاتی بزرگتر با عنوان و توضیحات مناسب است.
چه زمانی استفاده نکنیم:
- برای اعلانهای گذرا (transient) — از
Sonner(toast) استفاده کنید - برای خطاهای داخل فرم — از
FormMessageاستفاده کنید - برای پیام بالای کل صفحه (نه درون محتوا) — از
Bannerاستفاده کنید
Alert در 5.0 حذف شد
کد قدیمی Alert را npx --no parto-migrate-v5 به Callout تبدیل میکند: variant="default" ← neutral،
AlertTitle/AlertDescription ← CalloutTitle/CalloutDescription.
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
زمین بازی
تنظیمات
ظاهر
محتوا
import { Callout } from '@partodata/ui'
<Callout>
این یک یادآوری مهم برای کاربران است.
</Callout>استفاده
import { Callout, CalloutTitle, CalloutDescription } from '@partodata/ui'<Callout>
<CalloutTitle>توجه</CalloutTitle>
<CalloutDescription>این یک پیام اطلاعاتی است.</CalloutDescription>
</Callout>مثالها
انواع مختلف
<div className="flex flex-col gap-4">
<Callout variant="info">
<CalloutTitle>اطلاعات</CalloutTitle>
<CalloutDescription>این قابلیت بهزودی فعال خواهد شد.</CalloutDescription>
</Callout>
<Callout variant="warning">
<CalloutTitle>هشدار</CalloutTitle>
<CalloutDescription>اعتبار حساب شما رو به اتمام است.</CalloutDescription>
</Callout>
<Callout variant="destructive">
<CalloutTitle>خطا</CalloutTitle>
<CalloutDescription>ارتباط با سرور قطع شده است.</CalloutDescription>
</Callout>
<Callout variant="success">
<CalloutTitle>موفقیت</CalloutTitle>
<CalloutDescription>تغییرات ذخیره شد.</CalloutDescription>
</Callout>
<Callout variant="neutral">
<CalloutTitle>یادداشت</CalloutTitle>
<CalloutDescription>این بخش در حال بروزرسانی است.</CalloutDescription>
</Callout>
</div>بدون آیکون
<Callout variant="info" icon={null}>
این پیام بدون آیکون نمایش داده میشود.
</Callout>با آیکون سفارشی
import { RocketIcon } from 'lucide-react'
;<Callout variant="info" icon={<RocketIcon className="size-5" />}>
<CalloutTitle>قابلیت جدید</CalloutTitle>
<CalloutDescription>نسخه جدید با امکانات بیشتر منتشر شد.</CalloutDescription>
</Callout>متن ساده بدون عنوان
<Callout variant="warning">پیش از خروج، تغییرات را ذخیره کنید.</Callout>با اقدامات (actions)
با prop actions میتوانید دکمه یا لینک را کنار/زیر محتوای Callout بگذارید. با layout چیدمان آن را کنترل کنید.
import { Callout, Button } from '@partodata/ui'
// اقدامات زیر محتوا (پیشفرض)
;<Callout variant="info" actions={<Button size="sm">تنظیم دسترسی</Button>}>
برای مشاهدهٔ دادههای این کمپین به دسترسی بیشتری نیاز دارید.
</Callout>
// اقدامات در همان ردیف محتوا
;<Callout
variant="warning"
layout="horizontal"
actions={
<Button size="sm" variant="outline">
تمدید
</Button>
}
>
سهمیهٔ این ماه رو به پایان است.
</Callout>
// پشته در عرض کم، کنار هم در عرض زیاد
;<Callout variant="neutral" layout="responsive" actions={<Button size="sm">مشاهده</Button>}>
گزارش جدیدی برای این کمپین آماده شده است.
</Callout>Props
Callout
CalloutTitle
CalloutDescription
دسترسیپذیری
- حالتهای
destructiveوwarningدارایrole="alert"هستند؛liveاین را برای هر حالتی تعیین میکند (live={false}←role="note") - سایر حالتها دارای
role="note"هستند - آیکونها دارای
aria-hidden="true"هستند - نوع پیام («هشدار»، «خطا»، «اطلاع»، «موفقیت»، «یادداشت») بهصورت متن
sr-onlyدر ابتدای بلوک درج میشود، تا تفاوتwarningوdestructiveتنها با رنگ و آیکون منتقل نشود. این متن داخل ناحیهی زنده قرار دارد، بنابراین هم در خواندن عادی و هم هنگام اعلامrole="alert"شنیده میشود - زبان این برچسب با prop
localeتعیین میشود (پیشفرضfa) aria-labelروی کامپوننت، نام دسترسپذیرِ بلوک را تعیین میکند؛ برچسبsr-onlyهمچنان بخشی از محتوای خواندهشده باقی میماند
راهنمای استفاده
بکنید
- از Callout برای بلوکهای اطلاعاتی که کاربر باید قبل از ادامه بخواند استفاده کنید -
variantمناسب را انتخاب کنید —infoبرای اطلاعات،warningبرای هشدار،destructiveبرای خطا - ازCalloutTitleوCalloutDescriptionبرای ساختاردهی بهتر پیام استفاده کنید
نکنید
- از Callout برای پیامهای گذرا (مثل «ذخیره شد») استفاده نکنید — از
Sonnerاستفاده کنید - بیش از 2-3 Callout در یک صفحه قرار ندهید — اهمیت پیامها کاهش مییابد
کامپوننتهای مرتبط
- Sonner — اگر نیاز به اعلان گذرا دارید که خودکار ناپدید شود