Getting StartedComponentsDesign TokensThemingTheme SynthesizerFrameworksAccessibilityUtilitiesServer RenderingBrowser SupportContributingChangelog App ShellAspect GridAuth ShellCenterClusterContainerDashboard GridDockFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbar Anchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkSpeed DialStepper NavTabsTop BarTree View AccordionAspect RatioAvatarAvatar GroupCalloutCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSeparatorSkeletonSpinnerStackVideoVirtual List Activity HeatmapAnimated NumberBadgeChartClockComparisonCountdown TimerData GridData TableDescription ListDiffEvent CalendarGaugeJSON TreeKanbanKey ValueLevel MeterListMeterSparklineStatStepperTableTagTimelineUptimeValue CardWaveform BlockquoteCode BlockGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriter ButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputOTP InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree Select AlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuGuided TourHover CardInline MessageLoading OverlayModalNotification PanelPopoverProgressProgress ToastSheetSnackbarSpotlightToastTooltip
ARC UI ARC Radiant Components
v3.2 Docs Components Tokens Synthesizer
Getting StartedFrameworksServer Rendering Design TokensThemingTheme SynthesizerTypographyUtilities All ComponentsAccessibilityBrowser SupportChangelogContributingStats App ShellAspect GridAuth ShellCenterClusterContainerDashboard GridDockFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbar Anchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkSpeed DialStepper NavTabsTop BarTree View AccordionAspect RatioAvatarAvatar GroupCalloutCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSeparatorSkeletonSpinnerStackVideoVirtual List Activity HeatmapAnimated NumberBadgeChartClockComparisonCountdown TimerData GridData TableDescription ListDiffEvent CalendarGaugeJSON TreeKanbanKey ValueLevel MeterListMeterSparklineStatStepperTableTagTimelineUptimeValue CardWaveform BlockquoteCode BlockGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriter ButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputOTP InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree Select AlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuGuided TourHover CardInline MessageLoading OverlayModalNotification PanelPopoverProgressProgress ToastSheetSnackbarSpotlightToastTooltip

Separator

Visual divider for separating content sections. Supports horizontal and vertical orientations, multiple line styles, and optional inline labels.

Components Separator
content static
<arc-separator>

Overview

Separator draws a thin line between content sections to create visual grouping and hierarchy. It replaces raw `<hr>` elements with a component that respects design tokens, supports vertical orientation for side-by-side layouts, and can carry an inline text label centered between two lines. Four variants control the line style: solid (default), dashed, dotted, and fade. The fade variant uses a gradient that tapers to transparent at both ends, producing a softer visual break that works well in card layouts and sidebars. Labeled separators render the text between two line segments, useful for "or" dividers in auth forms or section markers in long lists. The component sets `role="separator"` and `aria-orientation` automatically, ensuring assistive technology correctly identifies the divider and its direction.

Guidelines

When to use

  • Use between logical groups of content — form sections, list categories, nav groups
  • Use the fade variant for subtle breaks inside cards or sidebars
  • Use a labeled separator for "or" dividers in auth flows or filter groups
  • Use the vertical orientation to divide side-by-side toolbar groups

When not to use

  • Do not Stack multiple separators without meaningful content between them
  • Do not use a separator when whitespace alone provides sufficient visual grouping
  • Do not use the label slot for long text — keep it to one or two words
  • Do not use separator as a decorative border — it is a semantic content divider

Features

  • Horizontal and vertical orientations for flexible layout use
  • Four line variants: solid, dashed, dotted, and fade (gradient taper)
  • Optional inline label centered between two line segments
  • Semantic `role="separator"` with automatic `aria-orientation`
  • Uses `--border-default` token for consistent theme integration
  • Exposed CSS parts: separator, line, label for per-instance styling

Preview

Usage

<arc-separator></arc-separator>
<arc-separator variant="dashed"></arc-separator>
<arc-separator variant="fade"></arc-separator>
<arc-separator label="or"></arc-separator>

<!-- Vertical in a toolbar -->
<div style="display: flex; align-items: center; gap: 8px; height: 32px;">
  <span>Left</span>
  <arc-separator orientation="vertical"></arc-separator>
  <span>Right</span>
</div>
import { Separator } from '@arclux/arc-ui-react';

export default function Example() {
  return (
    <>
      <Separator />
      <Separator variant="dashed" />
      <Separator variant="fade" />
      <Separator label="or" />
    </>
  );
}
<script setup>
import { Separator } from '@arclux/arc-ui-vue';
</script>

<template>
  <Separator />
  <Separator variant="dashed" />
  <Separator variant="fade" />
  <Separator label="or" />
</template>
<script>
  import { Separator } from '@arclux/arc-ui-svelte';
</script>

<Separator />
<Separator variant="dashed" />
<Separator variant="fade" />
<Separator label="or" />
import { Component } from '@angular/core';
import { Separator } from '@arclux/arc-ui-angular';

@Component({
  imports: [Separator],
  template: `
    <arc-separator />
    <arc-separator variant="dashed" />
    <arc-separator variant="fade" />
    <arc-separator label="or" />
  `,
})
export class ContentSection {}
import { Separator } from '@arclux/arc-ui-solid';

export default function Example() {
  return (
    <>
      <Separator />
      <Separator variant="dashed" />
      <Separator variant="fade" />
      <Separator label="or" />
    </>
  );
}
import { Separator } from '@arclux/arc-ui-preact';

export default function Example() {
  return (
    <>
      <Separator />
      <Separator variant="dashed" />
      <Separator variant="fade" />
      <Separator label="or" />
    </>
  );
}
<!-- Auto-generated by @arclux/prism — do not edit manually -->
<!-- arc-separator — requires separator.css + base.css (or arc-ui.css) -->
<div class="arc-separator">
  <div class="separator" role="separator" aria-orientation=""></div>
</div>
<!-- Auto-generated by @arclux/prism — do not edit manually -->
<!-- arc-separator — self-contained, no external CSS needed -->
<div class="arc-separator" style="display: block; width: 100%">
  <div style="width: 100%; height: 1px; background: rgb(42, 42, 92)" role="separator" aria-orientation=""></div>
</div>

API

orientation 'horizontal' | 'vertical' 'horizontal'
Controls the divider direction. Vertical separators display as inline-flex with full parent height.
label string ''
Optional text displayed centered between two line segments. Only applies to horizontal orientation.
variant 'line' | 'dashed' | 'dotted' | 'fade' 'line'
Controls the line style. Fade uses a gradient that tapers to transparent at both ends.

See Also