Separator
Visual divider for grouping content with orientation support.
pnpm dlx @glinui/cli@latest add separatorInstallation
pnpm dlx @glinui/cli@latest add separatorPrefer the package?
Usage
Variants
Omitted `variant` follows the ambient style: an engraved glinr hairline, a flat plain line, or glass.
import { Separator } from "@glinui/ui"
<Separator /><Separator variant="plain" /><Separator variant="hairline" /><Separator variant="dashed" />Variants
import { Separator } from "@glinui/ui"
export function SeparatorVariantDemo() {
return (
<div className="space-y-4">
<Separator variant="default" />
<Separator variant="glass" />
<Separator variant="outline" />
<Separator variant="ghost" />
</div>
)
}Vertical
Render inside a flex container with an explicit height to display a vertical divider.
import { Separator } from "@glinui/ui"
export function SeparatorVerticalDemo() {
return (
<div className="flex h-8 items-center gap-4">
<span className="text-sm">Left</span>
<Separator orientation="vertical" />
<span className="text-sm">Right</span>
</div>
)
}Sizes
import { Separator } from "@glinui/ui"
export function SeparatorSizeDemo() {
return (
<div className="space-y-4">
<Separator size="sm" />
<Separator size="md" />
<Separator size="lg" />
</div>
)
}Decorative vs Semantic
By default separators are decorative (`aria-hidden`). Set `decorative={false}` for separators that carry structural meaning for assistive technology.
import { Separator } from "@glinui/ui"
export function SeparatorDecorativeDemo() {
return (
<div className="space-y-4">
<div className="space-y-2">
<p className="text-xs text-neutral-500 dark:text-neutral-400">decorative (default)</p>
<Separator decorative />
</div>
<div className="space-y-2">
<p className="text-xs text-neutral-500 dark:text-neutral-400">semantic</p>
<Separator decorative={false} />
</div>
</div>
)
}Hairline
A 1px divider that fades out at both ends, lit from the top.
import { Separator } from "@glinui/ui"
export function Demo() {
return <Separator variant="hairline" />
}Accessibility
- Uses `role="separator"` when not decorative.
- Set `decorative={false}` for semantic separators.
- Use `decorative={false}` for separators that convey structural meaning.
- Use `orientation="vertical"` for column-like content splits.
ARIA Attributes
- `role="separator"` when not decorative
- `aria-orientation`
- `aria-hidden` when decorative
Reduced Motion
No animation dependencies.
Separator is a static element and does not use motion.
API Reference
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
variant | VariantProps<typeof lineVariants>["variant"] | No | ambient (glinr) | Line style. Omitted or `default` follows the ambient design style. |
orientation | "horizontal" | "vertical" | No | horizontal | Divider direction. |
size | "sm" | "md" | "lg" | No | md | Thickness. |
label | string | No | - | Centered text label displayed on the separator. |
icon | React.ReactNode | No | - | Centered icon displayed on the separator. |
decorative | boolean | No | true | When true, sets aria-hidden. |
Source
Import directly from the package or browse the source on GitHub. Click any file to view it.
Import
import { Separator } from "@glinui/ui"Source Files
Dependencies
@glinui/uiGenerated API Snapshot
Beta
Generated API Snapshot
BetaAuto-extracted from TypeScript source in packages/ui/src/components/separator.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.
Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata
Primary Props Type
SeparatorProps
SeparatorProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
decorative | boolean | No | true | When true the element is purely visual (default). When false, role="separator" is applied. |
icon | React.ReactNode | No | - | Icon node rendered centred on the separator line. Overrides label when both are provided. |
label | string | No | - | Text label rendered centred on the separator line. |
orientation | "horizontal" | "vertical" | No | "horizontal" | Variant option from lineVariants. |
size | "sm" | "md" | "lg" | No | "md" | Variant option from lineVariants. |
variant | VariantProps<typeof lineVariants>["variant"] | No | - | Line style. Omitted (or `default`) follows the ambient design style: glinr (engraved hairline), plain (flat 1px border color) or glass. Other names are fixed styles. |