Перейти к содержимому

Разделитель

Горизонтальная или вертикальная линия, разделяющая меню, панели инструментов и списки, — выполненная тем же сплошным цветом, что и необруталистские рамки.

import { Separator } from "@/components/ui/separator"

export function SeparatorDemo() {

Separator рисует тонкую горизонтальную или вертикальную линию между блоками контента. Построен на компоненте Base UI Separator и намеренно минимален: одна линия цвета border темы — тот же сплошной stroke, что очерчивает каждую необруталистскую рамку.

Когда это пригодится:

  • Секции меню и тулбара — разделить группы действий в dropdown, сайдбарах и command bar.
  • Сложенные списки — разделить строки на страницах настроек, в лентах и панелях уведомлений.
  • Inline-метаданные — вертикальные линии между stats вроде views, stars и last-updated.

Установка

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 { 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 отражает проп orientation, поэтому программы чтения с экрана объявляют его как семантический разделитель. Для чисто декоративных линий — между inline-stats, например — добавьте aria-hidden="true" (или используйте обычный стилизованный <div>), чтобы ассистивные технологии не объявляли бессмысленные dividers. Это отличается от варианта Radix, который по умолчанию декоративен (role="none").

Справочник API

См. документацию Base UI Separator.