جداکننده
یک خط افقی یا عمودی که منوها، نوار ابزارها و فهرستها را تقسیم میکند — با رنگ حاشیهٔ یکرنگ و محکمی که مانند قابهای نئوبروتالیست است.
import { Separator } from "@/components/ui/separator"
export function SeparatorDemo() {Separator یک خط باریک افقی یا عمودی بین بلوکهای محتوا میکشد. بر پایهٔ Base UI Separator ساخته شده و عمداً مینیمال نگه داشته شده: یک خط تکی به رنگ border تم — همان stroke solid که دور هر قاب نئوبروتالیستی را میگیرد.
برای این موارد از آن استفاده کنید:
- بخش منو و نوار ابزار — گروههای اقدام را در dropdown، sidebar و نوار فرمان جدا کنید.
- فهرستهای stacked — ردیفها را در صفحات تنظیمات، فید و پنل اعلان تقسیم کنید.
- Metadata درونخطی — خط عمودی بین آمارهایی مثل بازدید، ستاره و تاریخ بهروزرسانی.
نصب#
pnpm dlx shadcn@latest add https://neobrutalism.com/r/base/separator.jsonnpx shadcn@latest add https://neobrutalism.com/r/base/separator.jsonyarn dlx shadcn@latest add https://neobrutalism.com/r/base/separator.jsonbunx --bun shadcn@latest add https://neobrutalism.com/r/base/separator.json
وابستگیهای زیر را نصب کنید:
pnpm add @base-ui/reactnpm install @base-ui/reactyarn add @base-ui/reactbun add @base-ui/react
کد زیر را کپی کرده و در پروژهٔ خود جایگذاری کنید.
"use client"
import * as React from "react"
import { Separator as SeparatorPrimitive } from "radix-ui"
import { cn } from "@/lib/utils"
function Separator({
className,
orientation = "horizontal",
decorative = true,
...props
}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {
return (
<SeparatorPrimitive.Root
data-slot="separator"
decorative={decorative}
orientation={orientation}
className={cn(
"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",
className
)}
{...props}
/>
)
}
export { Separator }
مسیرهای import را مطابق با پیکربندی پروژهٔ خود بهروزرسانی کنید.
استفاده#
import { Separator } from "@/components/ui/separator"<Separator />نمونهها#
عمودی#
برای یک جداکنندهٔ عمودی، از orientation="vertical" استفاده کنید.
import { Separator } from "@/components/ui/separator"
export function SeparatorVertical() {منو#
جداکنندههای عمودی میان آیتمهای منو همراه با توضیحات.
import { Separator } from "@/components/ui/separator"
export function SeparatorMenu() {فهرست#
جداکنندههای افقی میان آیتمهای فهرست.
import { Separator } from "@/components/ui/separator"
export function SeparatorList() {RTL#
برای فعالسازی پشتیبانی RTL در Neobrutalism، راهنمای پیکربندی RTL را ببینید.
"use client"
import * as React from "react"دسترسیپذیری#
Separator در Base UI همیشه role="separator" رندر میکند، با aria-orientation که propِ orientation را منعکس میکند، تا صفحهخوان آن را بهعنوان divider معنایی اعلام کند. برای خطهایی که صرفاً تزئینیاند — مثلاً بین آمار درونخطی — aria-hidden="true" اضافه کنید (یا یک <div> استایلشدهٔ ساده) تا فناوری کمکی dividerهای بیمعنا را اعلام نکند. توجه: این با variantِ Radix فرق دارد که بهصورت پیشفرض decorative است (role="none").
مرجع API#
مستندات Base UI Separator را ببینید.