Separator
Pre-alphaThe registry and the CLI are not published yet.Roadmap

Separator

Horizontal or vertical divider.

Profile

MH

Margaret HamiltonSoftware engineering
1.2kPosts
18kFollowers
312Following

Led the team that wrote the Apollo flight software. Coined “software engineering”.

or

Message

Installation

npx axiom add separator
pnpm dlx axiom add separator
yarn dlx axiom add separator
bun x axiom add separator

No logic and no tokens: the line reads border.default or border.subtle.

Usage

import { Separator } from '@/components/ui/separator';

<Separator />
<Separator orientation="vertical" />
<Separator label="or" />

Props

PropTypeDefaultDescription
orientation'horizontal' | 'vertical''horizontal'A horizontal separator fills the width; a vertical one stretches to the height of its row.
variant'default' | 'subtle''default'border.default between blocks, border.subtle inside a surface such as a card.
thicknessnumberhairlineLine thickness. Defaults to the hairline metric (1pt), which reads as one physical pixel on dense screens.
insetSpacingToken | { start?: SpacingToken; end?: SpacingToken }Space left empty at the start and end of the line, to align it with content instead of the screen edge.
spacingSpacingToken0Margin on both sides of the line, along the cross axis.
labelReactNodeText centered in a horizontal separator, with a line on each side.
decorativebooleantrueHides the separator from screen readers. Set to false when it marks a meaningful boundary.
styleStyleProp<ViewStyle>Extra styles for the line.

No logic: a single file per styling variant.

Use cases

Inset dividers in a list

The line starts after the leading icon, the iOS way: rows read as a group, icons as a column.

Files

Roadmap.pdf
Moodboard.png
Standup.m4a
<FlatList
	data={files}
	renderItem={renderFile}
	ItemSeparatorComponent={() => <Separator inset={{ start: 14 }} />}
/>

Stats side by side

Vertical separators between values in a row.

5.2 kmDistance
28:14Time
5’25”Pace
<View style={{ flexDirection: "row" }}>
	<Stat label="Distance" value="5.2 km" />
	<Separator orientation="vertical" variant="subtle" />
	<Stat label="Time" value="28:14" />
</View>

Alternative sign-in methods

label splits two ways of doing the same thing.

Sign in
Email

Continue

or

Use Face ID

<Separator label="or" spacing={4} />