جداکننده (Separator)
کامپوننت خط جداکننده بصری
معرفی
کامپوننت Separator برای جدا کردن بصری محتوا و بخشهای مختلف استفاده میشود.
استفاده
دستهبندیها
همهفعالآرشیو
جزئیات
محتوا در این بخش با یک separator از سایر بخشها جدا شده است.
import { Separator } from '@parto/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>
<div className="flex items-center gap-3">
<Separator className="flex-1" />
<span className="text-muted-foreground text-sm">یا</span>
<Separator className="flex-1" />
</div>
</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>با متن
<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>Props
| Prop | Type | Default | Description |
|---|---|---|---|
orientation | 'horizontal' | 'vertical' | 'horizontal' | جهت خط جداکننده |
decorative | boolean | true | آیا فقط تزئینی است |
className | string | - | کلاسهای CSS اضافی |
دسترسیپذیری
- بهطور پیشفرض
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>