sp-split-view

Overview API Changelog

Overview

Section titled Overview

An sp-split-view element displays its first two direct child elements side by side (horizontal) or stacked (vertical with vertical attribute). The component automatically distributes the available space between the two panels. When the resizable attribute is added, users can drag the splitter or use keyboard controls to adjust the panel sizes.

Usage

Section titled Usage

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

yarn add @spectrum-web-components/split-view

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

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

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

import { SplitView } from '@spectrum-web-components/split-view';

Options

Section titled Options

Collapsible

Section titled Collapsible

Use the collapsible attribute to allow the user to collapse the split view. The collapsible attribute requires the resizable attribute to be set. When collapsible is set, primary and secondary min and max sizes are ignored.

Resizable

Section titled Resizable

Use the resizable attribute to allow the user to resize the split view. When resizable is set, it is recommended that you set preferred primary and secondary min and max sizes. If primary and/or secondary sizes, the resize behavior will resemble the collapsible behavior.

Label

Section titled Label

Use the label attribute to set the aria-label on the splitter element.

Primary Size

Section titled Primary Size

primary-size sets starting size of the primary pane. It can be a real pixel number|string, percentage or "auto". For example: "100", "120px", "75%" or "auto" are valid values

Primary Min/Max

Section titled Primary Min/Max

primary-min is the minimum size of the primary pane, while primary-max is the maximum size of the primary pane.

Secondary Min/Max

Section titled Secondary Min/Max

secondary-min is the minimum size of the secondary pane, while secondary-max is the maximum size of the secondary pane.

Splitter Position

Section titled Splitter Position

splitter-pos is the current splitter position of the split view.

Variants

Section titled Variants

Horizontal

Section titled Horizontal

Horizontal is the default orientation for the split view and does not require an attribute to be set.

Basic
<sp-split-view>
    <div>Left panel</div>
    <div>Right panel</div>
</sp-split-view>
Resizable
<sp-split-view
    resizable
    primary-min="50"
    secondary-min="50"
    primary-size="100"
    label="Resize the horizontal panels"
>
    <div>
        <h1>Left panel</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting
            industry.
        </p>
    </div>
    <div>
        <h2>Right panel</h2>
        <p>
            It is a long established fact that a reader will be distracted by
            the readable content of a page when looking at its layout.
        </p>
    </div>
</sp-split-view>
Resizable & collapsible
<sp-split-view
    resizable
    collapsible
    label="Resize the horizontal collapsible panels"
>
    <div>
        <h1>Left panel</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting
            industry.
        </p>
    </div>
    <div>
        <h2>Right panel</h2>
        <p>
            It is a long established fact that a reader will be distracted by
            the readable content of a page when looking at its layout.
        </p>
    </div>
</sp-split-view>

Vertical

Section titled Vertical

Vertical split view requires the vertical attribute to be set.

Basic
<sp-split-view vertical>
    <div>Top panel</div>
    <div>Bottom panel</div>
</sp-split-view>
Resizable
<sp-split-view
    vertical
    resizable
    primary-min="50"
    primary-max="150"
    secondary-min="50"
    label="Resize the vertical panels"
>
    <div>
        <h1>Top panel</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting
            industry.
        </p>
    </div>
    <div>
        <h2>Bottom panel</h2>
        <p>
            It is a long established fact that a reader will be distracted by
            the readable content of a page when looking at its layout.
        </p>
    </div>
</sp-split-view>
Resizable & collapsible
<sp-split-view
    vertical
    resizable
    collapsible
    style="height: 300px;"
    label="Resize the vertical collapsible panels"
>
    <div>
        <h1>Top panel</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting
            industry.
        </p>
    </div>
    <div>
        <h2>Bottom panel</h2>
        <p>
            It is a long established fact that a reader will be distracted by
            the readable content of a page when looking at its layout.
        </p>
    </div>
</sp-split-view>

Multiple Levels

Section titled Multiple Levels
<sp-split-view
    resizable
    primary-min="50"
    primary-max="200"
    secondary-min="50"
    style="height: 400px; width: 600px;"
>
    <div>
        <h1>First panel - Level 1</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting
            industry. Lorem Ipsum has been the industry's standard dummy text
            ever since the 1500s, when an unknown printer took a galley of type
            and scrambled it to make a type specimen book.
        </p>
    </div>
    <div>
        <h2>Second panel - Level 1</h2>
        <sp-split-view
            vertical
            resizable
            primary-min="50"
            primary-size="100"
            secondary-min="50"
            style="height: 300px;"
        >
            <div>
                <h3>First panel - Level 2</h3>
                <p>
                    Lorem Ipsum is simply dummy text of the printing and
                    typesetting industry.
                </p>
            </div>
            <div>
                <h4>Second panel - Level 2</h4>
                <p>
                    It is a long established fact that a reader will be
                    distracted by the readable content of a page when looking at
                    its layout.
                </p>
            </div>
        </sp-split-view>
    </div>
</sp-split-view>

Accessibility

Section titled Accessibility

The label attribute is used to set the aria-label on the splitter element. By default, the splitter element within an <sp-split-view> is given the label "Resize the panels". A label is required to surface the element and signal the interaction correctly to screen readers. You can customize or internationalize this by setting the label attribute.

role

Section titled role

The splitter element is given the role separator to indicate that it is a divider separating sections of content in the split view panels.

aria-controls

Section titled aria-controls

The aria-controls attribute is set to the id of the controlled element. This is used to indicate that the splitter is controlling the size of the primary and secondary panes.

aria-orientation

Section titled aria-orientation

aria-orientation is set to horizontal or vertical to indicate the orientation of the split view.

aria-valuenow

Section titled aria-valuenow

aria-valuenow is used to indicate the current size of the primary pane as a percentage of the total size of the split view.

Keyboard navigation

Section titled Keyboard navigation

The splitter has an explicit tabindex of 0 when resizable is set. This allows the splitter to be focused and and navigable using the keyboard. The arrow keys can be used to move the splitter left and right or up and down depending on the orientation of the split view.

API

Attributes and Properties

Section titled Attributes and Properties
Property Attribute Type Default Description collapsible collapsible boolean false label label string | undefined Sets the `aria-label` on the splitter component primaryMax primary-max DEFAULT_MAX_SIZE The maximum size of the primary pane primaryMin primary-min number 0 The minimum size of the primary pane primarySize primary-size number | number + "px" | number + "%" | "auto"} primarySize primarySize number | number + "px" | number + "%" | "auto"} resizable resizable boolean false secondaryMax secondary-max DEFAULT_MAX_SIZE The maximum size of the secondary pane secondaryMin secondary-min number 0 The minimum size of the secondary pane splitterPos splitter-pos number | undefined The current splitter position of split-view vertical vertical boolean false

Slots

Section titled Slots
Name Description Two sibling elements to be sized by the element attritubes

Events

Section titled Events
Name Type Description change Event Announces the new position of the splitter

Changelog

Patch Changes

Section titled Patch Changes
  • #5428 94dd388 Thanks @Rajdeepc! - Added @spectrum-web-components/shared dependency in splitview since it uses ranDomId from the shared package

  • Updated dependencies []:

    • @spectrum-web-components/base@1.7.0
    • @spectrum-web-components/shared@1.7.0

1.6.0

Section titled 1.6.0

Patch Changes

Section titled Patch Changes
  • Updated dependencies []:
    • @spectrum-web-components/base@1.6.0

1.5.0

Section titled 1.5.0

Patch Changes

Section titled Patch Changes
  • #5271 165a904 Thanks @renovate! - Remove unnecessary system theme references to reduce complexity for components that don't need the additional mapping layer.

  • Updated dependencies []:

    • @spectrum-web-components/base@1.5.0

1.4.0

Section titled 1.4.0

Patch Changes

Section titled Patch Changes
  • Updated dependencies []:
    • @spectrum-web-components/base@1.4.0

1.3.0

Section titled 1.3.0

Patch Changes

Section titled Patch Changes
  • Updated dependencies []:
    • @spectrum-web-components/base@1.3.0

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

1.2.0 (2025-02-27)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

1.1.2 (2025-02-12)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

1.1.1 (2025-01-29)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

1.1.0 (2025-01-29)

Section titled

Bug Fixes

Section titled Bug Fixes
  • lock prerelease versions for Spectrum CSS (#5014) (8aa7734)

1.0.1 (2024-11-11)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

1.0.0 (2024-10-31)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.49.0 (2024-10-15)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.48.1 (2024-10-01)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.48.0 (2024-09-17)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.47.2 (2024-09-03)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.47.1 (2024-08-27)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.47.0 (2024-08-20)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.46.0 (2024-08-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.45.0 (2024-07-30)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.44.0 (2024-07-15)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.43.0 (2024-06-11)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.5 (2024-05-24)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.4 (2024-05-14)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.3 (2024-05-01)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.2 (2024-04-03)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.1 (2024-04-02)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.42.0 (2024-03-19)

Section titled

Bug Fixes

Section titled Bug Fixes
  • allowing split view to have a custom aria label (#4155) (d9abed7)

Features

Section titled Features
  • asset: use core tokens (99e76f4)

0.41.2 (2024-03-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.41.1 (2024-02-22)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.41.0 (2024-02-13)

Section titled

Bug Fixes

Section titled Bug Fixes
  • support generating random IDs outside of secure contexts (485a67c)

0.40.5 (2024-02-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.40.4 (2024-01-29)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.40.3 (2024-01-11)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.40.2 (2023-12-18)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.40.1 (2023-12-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.40.0 (2023-11-16)

Section titled

Bug Fixes

Section titled Bug Fixes
  • split-view: expand accessible attribute usage and HCM delivery (cb7c71f)

0.39.4 (2023-11-02)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.39.3 (2023-10-18)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.39.2 (2023-10-13)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.39.1 (2023-10-06)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.39.0 (2023-09-25)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.38.0 (2023-09-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.37.0 (2023-08-18)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.36.0 (2023-08-18)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.35.0 (2023-07-31)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.34.0 (2023-07-11)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.33.2 (2023-06-14)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.33.0 (2023-06-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.32.0 (2023-06-01)

Section titled

Bug Fixes

Section titled Bug Fixes
  • base: ensure streaming listener "streams" on the animation frame (1478db1)

0.31.0 (2023-05-17)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.30.0 (2023-05-03)

Section titled 0.30.0 (2023-05-03)

Bug Fixes

Section titled Bug Fixes
  • adapt and improve css (649eeed)
  • adapt tests (88a2ff7)
  • add @slot description (03019d6)
  • cleaning up spectrum-config (0fde625)
  • correct @element jsDoc listing across library (c97a632)
  • correct calculation of height when using primary-size='auto' (0ff67c0)
  • correct viewSize calc and test (2befdd5)
  • improve css class handling, %-test and increase base dependency (2f2c28d)
  • improve css, simplify attributes & properties (6ddd47c)
  • polishing (d112875)
  • split-view: end drag on pointerleave (85e5258)
  • split-view: prevent touch-action on handle for delivery in mobile (b68c497)
  • split-view: redraw when primary-size change (665d238)

Features

Section titled Features
  • adopt DNA@7 base Spectrum CSS (e08cafd)
  • include all Dev Mode files in side effects (f70817c)
  • setup SplitView component from rebase main (32f3272)
  • shared pkg versions, devmode define warning, registry-conflicts docs (6e49565)
  • update lit-* dependencies, wip (377f3c8)
  • use latest exports specification (a7ecf4b)

Reverts

Section titled Reverts
  • version update (ab58bf9)

0.5.10 (2023-04-24)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.9 (2023-04-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.8 (2023-03-22)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.7 (2023-02-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.6 (2023-01-23)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.5 (2023-01-09)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.4 (2022-12-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.3 (2022-11-21)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.2 (2022-11-14)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.5.1 (2022-10-28)

Section titled

Bug Fixes

Section titled Bug Fixes
  • split-view: prevent touch-action on handle for delivery in mobile (b68c497)

0.5.0 (2022-08-09)

Section titled

Features

Section titled Features
  • include all Dev Mode files in side effects (f70817c)

0.4.11 (2022-08-04)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.10 (2022-07-18)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.9 (2022-06-29)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.8 (2022-06-07)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.7 (2022-05-12)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.6 (2022-04-21)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.5 (2022-03-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.4 (2022-03-04)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.3 (2022-02-22)

Section titled

Bug Fixes

Section titled Bug Fixes
  • split-view: end drag on pointerleave (85e5258)

0.4.2 (2022-01-26)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.1 (2021-12-13)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.4.0 (2021-11-08)

Section titled

Features

Section titled Features
  • update lit-* dependencies, wip (377f3c8)

0.3.1 (2021-11-08)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.3.0 (2021-11-02)

Section titled

Features

Section titled Features
  • adopt DNA@7 base Spectrum CSS (e08cafd)

0.2.11 (2021-10-12)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.10 (2021-09-20)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.9 (2021-08-24)

Section titled

Bug Fixes

Section titled Bug Fixes
  • correct @element jsDoc listing across library (c97a632)

0.2.8 (2021-07-22)

Section titled

Bug Fixes

Section titled Bug Fixes
  • split-view: redraw when primary-size change (665d238)

0.2.7 (2021-06-16)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.6 (2021-06-07)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.5 (2021-05-12)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.4 (2021-04-09)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.3 (2021-03-29)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.2 (2021-03-22)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.1 (2021-03-05)

Section titled

Note: Version bump only for package @spectrum-web-components/split-view

0.2.0 (2021-03-04)

Section titled

Bug Fixes

Section titled Bug Fixes
  • correct calculation of height when using primary-size='auto' (0ff67c0)

Features

Section titled Features
  • use latest exports specification (a7ecf4b)

Reverts

Section titled Reverts
  • version update (ab58bf9)

0.1.0 (2021-02-19)

Section titled 0.1.0 (2021-02-19)

Bug Fixes

Section titled Bug Fixes
  • adapt and improve css (649eeed)
  • adapt tests (88a2ff7)
  • add @slot description (03019d6)
  • cleaning up spectrum-config (0fde625)
  • correct viewSize calc and test (2befdd5)
  • improve css class handling, %-test and increase base dependency (2f2c28d)
  • improve css, simplify attributes & properties (6ddd47c)
  • polishing (d112875)

Features

Section titled Features
  • setup SplitView component from rebase main (32f3272)