Разделитель
Горизонтальная или вертикальная линия, разделяющая меню, панели инструментов и списки, — выполненная тем же сплошным цветом, что и необруталистские рамки.
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.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 { 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.