Pular para o conteúdo

Separador

Uma linha horizontal ou vertical que divide menus, barras de ferramentas e listas — desenhada na mesma cor sólida das bordas dos quadros neobrutalistas.

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

export function SeparatorDemo() {

O separator desenha uma linha fina, horizontal ou vertical, entre blocos de conteúdo. Construído sobre o componente Base UI Separator e mantido deliberadamente minimalista: uma única linha na cor border do tema — o mesmo traço sólido que contorna todo quadro neobrutalista.

Quando usar:

  • Seções de menu e de toolbar — separe grupos de ações em dropdowns, sidebars e barras de comando.
  • Listas empilhadas — divida linhas em páginas de configurações, feeds e painéis de notificação.
  • Metadados inline — linhas verticais entre estatísticas como visualizações, estrelas e data da última atualização.

Instalação

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

Instale as seguintes dependências:

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

Copie e cole o código a seguir no seu projeto.

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 }

Atualize os caminhos de importação conforme a configuração do seu projeto.

Uso

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

Exemplos

Vertical

Use orientation="vertical" para um separador vertical.

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

export function SeparatorVertical() {

Separadores verticais entre itens de menu com descrições.

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

export function SeparatorMenu() {

Lista

Separadores horizontais entre itens de uma lista.

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

export function SeparatorList() {

RTL

Para ativar o suporte a RTL no Neobrutalism, consulte o guia de configuração de RTL.

"use client"

import * as React from "react"

Acessibilidade

O Separator do Base UI sempre renderiza role="separator", com aria-orientation refletindo a prop orientation, então leitores de tela o anunciam como um divisor semântico. Para linhas puramente decorativas — entre estatísticas inline, por exemplo — adicione aria-hidden="true" (ou use uma <div> estilizada comum) para que a tecnologia assistiva não anuncie divisores que não carregam significado. Note que isso difere da variante Radix, que é decorativa (role="none") por padrão.

Referência da API

Consulte a documentação Base UI Separator.