콘텐츠로 건너뛰기

구분선

메뉴, 도구 모음, 목록을 구분하는 가로 또는 세로 선으로, 네오브루탈리즘 스타일의 테두리와 동일한 단색 테두리 색상으로 그려집니다.

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

export function SeparatorDemo() {

Separator는 콘텐츠 블록 사이에 얇은 가로 또는 세로 구분선을 그립니다. Base UI Separator 프리미티브를 기반으로 하며, 의도적으로 최소한으로 유지했습니다. 테마 border 색의 한 줄 — 네오브루탈리즘 프레임을 그리는 것과 같은 단색 선입니다.

다음과 같은 경우에 사용합니다.

  • 메뉴·툴바 섹션 — 드롭다운, 사이드바, 커맨드 바에서 동작 그룹을 나눕니다.
  • 쌓인 목록 — 설정 페이지, 피드, 알림 패널의 행을 구분합니다.
  • 인라인 메타데이터 — 조회수, 별, 최종 업데이트 날짜 사이의 세로 선.

설치

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

Neobrutalism에서 RTL 지원을 활성화하는 방법은 RTL 설정 가이드를 참고하세요.

"use client"

import * as React from "react"

접근성

Base UI의 Separator는 항상 role="separator"를 렌더링하고, aria-orientationorientation prop을 반영하므로 스크린 리더가 시맨틱 구분선으로 읽습니다. 인라인 통계 사이처럼 순수히 장식인 선에는 aria-hidden="true"를 두거나(또는 일반 스타일 <div>를 써서) 의미 없는 구분선을 보조 기술이 읽지 않게 하세요. 기본적으로 장식(role="none")인 Radix 변형과 다릅니다.

API 참조

자세한 내용은 Base UI 문서를 참고하세요.