جداکننده (Separator)
کامپوننت خط جداکننده بصری
معرفی
کامپوننت Separator برای جدا کردن بصری محتوا و بخشهای مختلف استفاده میشود.
چه زمانی استفاده نکنیم:
- برای ایجاد فاصله بین المانها — از
gapدر flex/grid استفاده کنید - بین تمام بخشهای صفحه — خط جداکننده بیش از حد خستگی بصری ایجاد میکند
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
زمین بازی
قبلبعد
تنظیمات
ظاهر
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
دستهبندیها
همهفعالآرشیو
جزئیات
محتوا در این بخش با یک separator از سایر بخشها جدا شده است.
یا
ادامه با
import { Separator } from '@parto-system-design/ui'
;<div className="space-y-6">
<div className="flex items-center gap-4">
<span>بخش اول</span>
<Separator orientation="vertical" className="h-6" />
<span>بخش دوم</span>
<Separator orientation="vertical" className="h-6" />
<span>بخش سوم</span>
</div>
{/* با متن در وسط */}
<Separator>یا</Separator>
<Separator>ادامه با</Separator>
</div>افقی (پیشفرض)
<div className="space-y-4">
<h4>بخش اول</h4>
<Separator />
<h4>بخش دوم</h4>
<Separator />
<h4>بخش سوم</h4>
</div>عمودی
<div className="flex h-20 items-center space-x-4">
<div>اولین</div>
<Separator orientation="vertical" />
<div>دومین</div>
<Separator orientation="vertical" />
<div>سومین</div>
</div>در منو
<div className="space-y-1">
<Button variant="ghost" className="w-full justify-start">
گزینه ۱
</Button>
<Button variant="ghost" className="w-full justify-start">
گزینه ۲
</Button>
<Separator className="my-2" />
<Button variant="ghost" className="w-full justify-start text-destructive">
حذف
</Button>
</div>با متن
اکنون میتوانید مستقیماً متن را به عنوان children به Separator بدهید:
<Separator>یا</Separator>
<Separator>ادامه با</Separator>روش قدیمی (دستی):
<div className="flex items-center gap-4">
<Separator className="flex-1" />
<span className="text-sm text-muted-foreground">یا</span>
<Separator className="flex-1" />
</div>در کارت
<Card>
<CardHeader>
<CardTitle>عنوان کارت</CardTitle>
<CardDescription>توضیحات کارت</CardDescription>
</CardHeader>
<Separator />
<CardContent className="pt-6">
<p>محتوای کارت</p>
</CardContent>
<Separator />
<CardFooter className="pt-6">
<Button>عملیات</Button>
</CardFooter>
</Card>حالتها و انواع
افقی و عمودی
دستهبندیها
همهفعالآرشیو
جزئیات
محتوا در این بخش با یک separator از سایر بخشها جدا شده است.
یا
ادامه با
با متن
<Separator>یا</Separator>
<Separator>ادامه با</Separator>Props
دسترسیپذیری
- بهطور پیشفرض
decorative={true}است و از screen readers نادیده گرفته میشود - اگر معنای ساختاری دارد،
decorative={false}تنظیم کنید - از
role="separator"استفاده میشود aria-orientationبرای جهت تنظیم میشود
استایل سفارشی
// خط ضخیمتر
<Separator className="h-1" />
// رنگ سفارشی
<Separator className="bg-primary" />
// خط نقطهچین
<Separator className="border-dashed" />
// با Gradient
<Separator className="bg-gradient-to-r from-transparent via-foreground to-transparent" />ملاحظات RTL
- جهت افقی تحت تأثیر RTL نیست
- جهت عمودی عمودی باقی میماند
- فاصلهگذاری با Logical Properties (
space-xبهgapتبدیل شود)
نکات استفاده
- برای جدا کردن محتوای مرتبط استفاده کنید
- در لیستها و منوها برای گروهبندی
- با دقت استفاده کنید تا صفحه شلوغ نشود
- در موبایل فاصله مناسب در نظر بگیرید
ترکیب با سایر کامپوننتها
// با Dialog
<DialogHeader>
<DialogTitle>عنوان</DialogTitle>
<DialogDescription>توضیحات</DialogDescription>
</DialogHeader>
<Separator className="my-4" />
<div>محتوا</div>
// با Navigation
<nav className="flex items-center">
<Link>خانه</Link>
<Separator orientation="vertical" className="mx-2 h-4" />
<Link>درباره</Link>
<Separator orientation="vertical" className="mx-2 h-4" />
<Link>تماس</Link>
</nav>راهنمای استفاده
بکنید
- از Separator برای جدا کردن بخشهای مرتبط ولی متفاوت استفاده کنید - در لیستها و منوها از Separator برای گروهبندی
منطقی گزینهها استفاده کنید - برای جداکنندههای تزئینی،
decorative={true}(پیشفرض) را حفظ کنید
نکنید
- از Separator صرفاً برای ایجاد فاصله استفاده نکنید — از
gapدر flex/grid استفاده کنید - تعداد زیاد Separator در یک صفحه قرار ندهید — خستگی بصری ایجاد میکند
کامپوننتهای مرتبط
- Card — اگر نیاز به گروهبندی محتوا با مرز بصری واضح دارید، نه فقط خط جداکننده
- ButtonGroupSeparator — اگر نیاز به جداکننده بین دکمههای یک گروه دارید