بنر بحران (PostCrisisBanner)
نوار باریک هشدار روی لبه بالایی کارت پست برای برجسته کردن منشنهای بحرانی یا پرشدت — با چهار سطح شدت، برچسب فارسی پیشفرض و نقطه تپنده در حالت بحرانی.
معرفی
PostCrisisBanner نوار باریکی است که روی لبه بالایی PostCard رندر میشود تا منشنهای بحرانی یا پرشدت را در نگاه اول قابل تشخیص کند. طراحی آن عمداً ظریف است — به جای قرمز کردن کل کارت، فقط یک نوار کمارتفاع با رنگ ملایم اضافه میکند تا پست همچنان اسکنپذیر بماند. در شدت بحرانی، نقطه تپنده متحرک نیز نمایش داده میشود.
چه زمانی استفاده کنیم:
- برجسته کردن پستهای بحرانی در فید پایش برند — مثلاً موج گسترده بازخورد منفی درباره بستهبندی محصول جدید
- صفهای triage که تحلیلگر باید موارد نیازمند رسیدگی فوری را سریع از بقیه تشخیص دهد
- کارتهای سفارشی (خارج از
PostCard) که به همان زبان بصری شدت در سراسر محصول نیاز دارند
چه زمانی استفاده نکنیم:
- برای اعلانهای سراسری صفحه یا محصول (اطلاعرسانی، بهروزرسانی) — از
Bannerاستفاده کنید - برای نمایش شدت بهصورت چیپ فشرده داخل متادیتا، جدول یا فوتر کارت — از
SeverityBadgeاستفاده کنید - وقتی از
PostCardاستفاده میکنید وseverityپست برابرcriticalاست — کارت خودش این بنر را رندر میکند؛ دوباره اضافه نکنید
استفاده
import { PostCrisisBanner } from '@partodata/ui'<PostCrisisBanner severity="high" />حالتها و انواع
چهار سطح شدت
هر چهار مقدار PostSeverity پشتیبانی میشود. سه سطح low، medium و high از توکنهای --severity-* رنگ میگیرند و سطح critical از توکن --status-critical. برچسب پیشفرض هر سطح به فارسی است: «شدت پایین»، «شدت متوسط»، «شدت بالا» و «بحرانی». فقط در سطح critical نقطه کنار آیکن با انیمیشن ping میتپد.
<PostCrisisBanner severity="low" />
<PostCrisisBanner severity="medium" />
<PostCrisisBanner severity="high" />
<PostCrisisBanner severity="critical" />برچسب سفارشی
با prop اختیاری label میتوانید به جای نام پیشفرض شدت، متن دقیقتری نمایش دهید. رنگ و آیکن همچنان از severity پیروی میکنند.
<PostCrisisBanner severity="high" label="نیاز به پاسخ تیم برند" />نشستن روی لبه کارت
بنر فقط گوشههای بالایی گرد (rounded-t-md) و حاشیه بالا و کناری دارد — یعنی برای نشستن روی لبه بالایی یک کارت طراحی شده است. بدنه زیرین را بدون حاشیه بالا رندر کنید تا یکپارچه دیده شوند:
<div>
<PostCrisisBanner severity="critical" />
<div className="rounded-b-md border border-t-0 border-border bg-background-surface-100 px-3 py-2 text-sm">
موج گسترده انتقاد از کمپین تخفیف فصلی در چند پلتفرم
</div>
</div>ترکیب خودکار با PostCard
PostCard وقتی post.severity === 'critical' باشد، این بنر را بهصورت خودکار بالای کارت رندر میکند — نیازی به ترکیب دستی نیست. برای سایر سطوح شدت، PostCard بنر نمایش نمیدهد و در صورت نیاز باید خودتان آن را در layout سفارشی اضافه کنید.
راهنمای استفاده
بکنید
- بنر را روی لبه بالایی کارت قرار دهید و بدنه زیرین را بدون حاشیه بالا (
border-t-0) رندر کنید تا یک واحد بصری دیده شوند. - سطح شدت را از داده واقعی پایپلاین تحلیل (فیلد
severityپست) تعیین کنید، نه بهصورت دستی و سلیقهای. - در فید پستها از خود
PostCardاستفاده کنید تا بنر حالت بحرانی بهصورت خودکار و یکدست رندر شود. labelسفارشی را کوتاه و یکخطی نگه دارید — مثلاً «نیاز به پاسخ تیم برند».
نکنید
- کل کارت را به رنگ هشدار درنیاورید — بنر عمداً ظریف است تا فید اسکنپذیر بماند؛ همین یک نوار کافی است.
- برای پیامهای عمومی سامانه (قطعی سرویس، اطلاعرسانی نسخه جدید) از این کامپوننت استفاده نکنید — جای آنها
BannerیاAlertاست. - چند بنر روی یک کارت نچینید — هر پست فقط یک سطح شدت دارد.
- متن طولانی یا چندخطی در
labelقرار ندهید — بنر یک نوار تکخطی با فونت ریز است.
Props
PostCrisisBanner علاوه بر props زیر، همه ویژگیهای React.HTMLAttributes<HTMLDivElement> (مانند className) را میپذیرد و ref را با forwardRef به عنصر ریشه منتقل میکند. عنصر ریشه دارای data-slot="post-crisis-banner" و data-severity است که برای استایلدهی سفارشی قابل استفادهاند.
دسترسیپذیری
- در شدت
critical، عنصر ریشهrole="alert"میگیرد — صفحهخوانها ظاهر شدن بنر را بلافاصله اعلام میکنند. - در شدتهای
low،mediumوhighهیچ role تنظیم نمیشود و متن بنر در جریان عادی سند خوانده میشود. - کامپوننت غیرتعاملی است: فوکوسپذیر نیست، در ترتیب Tab قرار نمیگیرد و تعامل کیبورد ندارد.
- معنا تنها با رنگ منتقل نمیشود — برچسب متنی و آیکن مثلث هشدار در همه سطوح شدت حاضرند.
- انیمیشن تپش نقطه صرفاً تزئینی است و هیچ اطلاعاتی فقط از طریق حرکت منتقل نمیشود؛ بلاک سراسری
prefers-reduced-motionدر استایلهای دیزاینسیستم، این انیمیشن را برای کاربرانی که کاهش حرکت را انتخاب کردهاند عملاً غیرفعال میکند.
کامپوننتهای مرتبط
- PostCard — در فید پستها از خود
PostCardاستفاده کنید؛ وقتی شدت پست بحرانی باشد، این بنر بهصورت خودکار بالای کارت رندر میشود. - SeverityBadge — اگر شدت را بهصورت چیپ فشرده داخل متادیتا، جدول یا لیست لازم دارید، نه نوار روی لبه کارت.
- Banner — برای اعلان سراسری صفحه یا بخش (اطلاعرسانی محصول، وضعیت سرویس)، نه هشدار متصل به یک پست مشخص.
- Alert — برای پیام درونصفحهای با عنوان و توضیح، وقتی پیام به کارت پست خاصی وابسته نیست.
کارت پست (PostCard)
نمایش یکپارچه پست از تمام پلتفرمهای سوشاللیسنینگ — اینستاگرام، توییتر، تلگرام، یوتیوب، تیکتاک، لینکدین، ترِدز، فیسبوک، روبینو — با سه نمای فشرده، راحت و گرید، handling خودکار نسبتهای ابعادی، و اکشنهای آیکنی روی هاور.
لیست پست (PostList)
کانتینر لیست پستها با toggle حالت نمایش، ناوبری کیبورد، و پشتیبانی از انتخاب چندتایی