پرش به محتوا

جداکننده

یک خط افقی یا عمودی که منوها، نوار ابزارها و فهرست‌ها را تقسیم می‌کند — با رنگ حاشیهٔ یک‌رنگ و محکمی که مانند قاب‌های نئوبروتالیست است.

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.json
npx shadcn@latest add https://neobrutalism.com/r/base/separator.json
yarn dlx shadcn@latest add https://neobrutalism.com/r/base/separator.json
bunx --bun shadcn@latest add https://neobrutalism.com/r/base/separator.json

وابستگی‌های زیر را نصب کنید:

pnpm add @base-ui/react
npm install @base-ui/react
yarn add @base-ui/react
bun add @base-ui/react

کد زیر را کپی کرده و در پروژهٔ خود جای‌گذاری کنید.

components/ui/separator.tsx
"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 را ببینید.