コンテンツへスキップ

区切り

メニュー、ツールバー、リストを区切る水平または垂直の線――ネオブルータリストの枠と同じ実線の色で描かれています。

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

export function SeparatorDemo() {

Separator はコンテンツのブロック間に細い横線または縦線を引きます。Base UI Separator コンポーネント上に構築し、意図的に最小限です。テーマの border 色の1本の線で、ネオブルータリストの枠を描くのと同じソリッドなストロークです。

次のような場面で使います:

  • メニューとツールバーの区切り — ドロップダウン、サイドバー、コマンドバー内のアクション群を分割。
  • 積み上げリスト — 設定ページ、フィード、通知パネルの行を区切る。
  • インラインのメタデータ — 閲覧数、スター、最終更新などの統計の間の縦線。

インストール

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

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 のドキュメントをご覧ください。