Separator
Pozioma lub pionowa linia dzieląca menu, paski narzędzi i listy — narysowana w tym samym jednolitym kolorze obramowania, co ramki w stylu neobrutalistycznym.
import { Separator } from "@/components/ui/separator"
export function SeparatorDemo() {Separator rysuje cienką poziomą lub pionową linię między blokami treści. Zbudowany na komponencie Base UI Separator i celowo utrzymany w minimalistycznej formie: pojedyncza linia w kolorze border motywu — ta sama jednolita kreska, która obrysowuje każdą neobrutalistyczną ramkę.
Sięgnij po to rozwiązanie, gdy:
- Sekcje menu i pasków narzędzi — rozdzielanie grup akcji w menu rozwijanych, paskach bocznych i paskach poleceń.
- Listy ułożone w pion — oddzielanie wierszy na stronach ustawień, w feedach i panelach powiadomień.
- Metadane w jednym wierszu — pionowe kreski między statystykami, takimi jak wyświetlenia, gwiazdki i data ostatniej aktualizacji.
Instalacja#
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
Zainstaluj następujące zależności:
pnpm add @base-ui/reactnpm install @base-ui/reactyarn add @base-ui/reactbun add @base-ui/react
Skopiuj i wklej poniższy kod do swojego projektu.
"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 }
Zaktualizuj ścieżki importu, aby pasowały do konfiguracji twojego projektu.
Użycie#
import { Separator } from "@/components/ui/separator"<Separator />Przykłady#
Pionowy#
Użyj orientation="vertical" dla separatora pionowego.
import { Separator } from "@/components/ui/separator"
export function SeparatorVertical() {Menu#
Pionowe separatory między elementami menu z opisami.
import { Separator } from "@/components/ui/separator"
export function SeparatorMenu() {Lista#
Poziome separatory między elementami listy.
import { Separator } from "@/components/ui/separator"
export function SeparatorList() {RTL#
Aby włączyć obsługę RTL w Neobrutalism, zobacz przewodnik konfiguracji RTL.
"use client"
import * as React from "react"Dostępność#
Separator z Base UI zawsze renderuje role="separator" z aria-orientation odzwierciedlającym prop orientation, więc czytniki ekranu ogłaszają go jako semantyczny podział. Przy kreskach czysto dekoracyjnych — powiedzmy między statystykami w jednym wierszu — dodaj aria-hidden="true" (albo użyj zwykłego ostylowanego <div>), aby technologie asystujące nie ogłaszały podziałów, które nie niosą znaczenia. Zwróć uwagę, że to zachowanie różni się od wariantu Radix, który domyślnie jest dekoracyjny (role="none").
Referencja API#
Zobacz dokumentację Base UI Separator.