ProductBrand
Join us
Foundations
  • Introduction
  • Colors
  • Typography
  • Icons
  • Illustrations
  • Logos
  • Shadows
Components
  • Accordion
  • Alert Dialog
  • Avatar
  • Badge
  • Button
  • Calendar
  • Card
  • Chart
  • Checkbox
  • Collapsible
  • Combobox
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Fluid Avatar
  • Hover Scroll Text
  • Input
  • Kbd
  • Popover
  • Progress Bar
  • Radio Group
  • Scroll Area
  • Select
  • Selectors
  • Separator
  • Separator Dot
  • Shimmer Text
  • Skeleton
  • Slider
  • Switch
  • Tabs
  • Textarea
  • Toast
  • Tooltip
Compositions
  • Empty State
  • File Attachment
  • Floating Bar
  • Input Banner
  • Markdown Editor
  • Media Controls
  • Product Feature Banner
  • Panels
  • Sidebar
  • Reasoning Trace
  • Pagination
  • Data Table
  • Breadcrumb
  • Thread Outline
Inline
  • Overview
  • Stat Tile
  • Metric Row
  • Comparison Table
  • Chart Card
  • Trend Tile
  • Cite
  • Custom
  • Agent skill

Separator

A thin rule that divides related groups of content. Use it between list items, sections of a settings panel, or alongside groups of inline controls, anywhere a hairline reads more cleanly than extra padding.

Examples

Profile
Notifications
Billing

In a menu row

Account
florian@rogo.ai

Overview

Built on Base UI Separator. Renders a hairline <div> using the --border-primary token, with both orientations stretching to fill their parent on the non-axis side.

tsx
import { Separator } from "@rogo-technologies/ui/separator";

<Separator />;

Usage

Orientation

Pass orientation="vertical" for inline dividers between elements. The vertical variant stretches to the parent's height, so put it inside a flex row with a defined height or set one via className.

tsx
<Separator />
<Separator orientation="vertical" />

Decorative vs semantic

By default the separator is decorative (role="none"), purely visual and skipped by screen readers. Pass decorative={false} when the separator carries semantic meaning between distinct regions; the component then exposes role="separator" and aria-orientation.

tsx
<Separator decorative={false} />

Spacing

The separator does not add its own margin. Apply spacing on the surrounding layout or via className:

tsx
<Separator className="my-3" />

API

PropTypeDefaultDescription
orientation"horizontal" | "vertical""horizontal"Axis the separator runs along.
decorativebooleantrueWhen true, hides the separator from assistive technology.
classNamestring-Additional CSS classes, useful for color or size overrides.

All standard <div> attributes pass through.

Guidelines

Do

  • Use a separator when content groups belong to the same surface but need a visual rest between them
  • Keep the separator flush with the content it divides, and let surrounding padding do the spacing
  • Pair vertical separators with a fixed-height row so they have something to stretch against

Don't

  • Don't use a separator inside a card that already has a border around it. Pick one boundary
  • Don't stack separators around every list row, since the repetition reads as noise
  • Don't use a separator where a heading or label would communicate the boundary better
PreviousSelectors
NextSeparator Dot
Made in NYC© 2026 Rogo Technologies Inc.

Design at Rogo

We’re redesigning an entire industry. Come design it with us.

See open roles

Design at Rogo

  • How we workThe mission of design at Rogo, and the open roles
  • About RogoThe company and the product