npm.io
1.12.2 • Published 1 month ago

@spectrum-web-components/divider

Licence
Apache-2.0
Version
1.12.2
Deps
1
Size
61 kB
Vulns
0
Weekly
0
Stars
1.5K

Overview

sp-divider brings clarity to a layout by grouping and dividing content that exists in close proximity. It can also be used to establish rhythm and hierarchy.

View the design documentation for this component.

Usage

See it on NPM! How big is this package in your project? Try it on Stackblitz

yarn add @spectrum-web-components/divider

Import the side effectful registration of <sp-divider> via:

import '@spectrum-web-components/divider/sp-divider.js';

When looking to leverage the Divider base class as a type and/or for extension purposes, do so via:

import { Divider } from '@spectrum-web-components/divider';
Options

Horizontal dividers are used to separate content stacked vertically.

Small
<h2 class="spectrum-Heading spectrum-Heading--sizeXS">Small</h2>
<sp-divider size="s"></sp-divider>
<p class="spectrum-Body">
  The small divider is used to divide similar components such as table rows,
  action button groups, and components within a panel.
</p>
Medium
<h2 class="spectrum-Heading spectrum-Heading--sizeS">Medium</h2>
<sp-divider size="m"></sp-divider>
<p class="spectrum-Body">
  The medium divider is used to divide subsections on a page, or to separate
  different groups of components such as panels, rails, etc.
</p>
Large
<h2 class="spectrum-Heading spectrum-Heading--sizeM">Large</h2>
<sp-divider size="l"></sp-divider>
<p class="spectrum-Body">
  The large divider should be used only for page titles or section titles.
</p>
Vertical

Vertical dividers are used to separate content horizontally.

When a vertical divider is used inside of a flex container, use align-self: stretch; height: auto; on the divider.

Small
<div style="height: 32px; display: flex;">
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
  <sp-divider
    size="s"
    style="align-self: stretch; height: auto;"
    vertical
  ></sp-divider>
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
</div>
Medium
<div style="height: 32px; display: flex;">
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
  <sp-divider
    size="m"
    style="align-self: stretch; height: auto;"
    vertical
  ></sp-divider>
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
</div>
Large
<div style="height: 32px; display: flex;">
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
  <sp-divider
    size="l"
    style="align-self: stretch; height: auto;"
    vertical
  ></sp-divider>
  <sp-action-button quiet label="Zoom in">
    <sp-icon-magnify slot="icon"></sp-icon-magnify>
  </sp-action-button>
</div>
Static color

Use the static color option when a divider needs to be placed on top of a color background or visual. Static color dividers are available in black or white regardless of color theme.

Static black
<div
  style="background-color: var(--spectrum-docs-static-black-background-color); color: var(--spectrum-black); padding: 20px"
>
  <h2 class="spectrum-Heading spectrum-Heading--sizeS">
    Static black on light background
  </h2>
  <sp-divider static-color="black" size="m"></sp-divider>
  <p class="spectrum-Body">
    Use static black on light color or image backgrounds.
  </p>
</div>
Static white
<div
  style="background-color: var(--spectrum-docs-static-white-background-color); color: var(--spectrum-white); padding: 20px;"
>
  <h2 class="spectrum-Heading spectrum-Heading--sizeS">
    Static white on dark background
  </h2>
  <sp-divider static-color="white" size="m"></sp-divider>
  <p class="spectrum-Body">
    Use static white on dark color or image backgrounds.
  </p>
</div>
Accessibility

The <sp-divider> element implements the following accessibility features:

  • ARIA role: Automatically sets role="separator" to ensure proper semantic meaning for assistive technologies
  • Orientation support: When vertical is true, automatically sets aria-orientation="vertical" to indicate the divider's orientation
Best practices
  • Medium or large dividers can be used with header text to visually create a section or page title. Place the divider below the header for best results.
  • Ensure sufficient color contrast when using static-color variants on colored backgrounds.
  • Use dividers to create meaningful visual separation, not just decorative lines.
  • Use dividers sparingly; excessive use can diminish their visual impact.

Keywords