sp-split-view
NPM 1.9.0
View Storybook
Try it on Stackblitz
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
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
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
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
Use the label attribute to set the aria-label on the splitter element.
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
primary-min is the minimum size of the primary pane, while primary-max is the maximum size of the primary pane.
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
splitter-pos is the current splitter position of the split view.
Variants
Horizontal
Horizontal is the default orientation for the split view and does not require an attribute to be set.
<sp-split-view> <div>Left panel</div> <div>Right panel</div> </sp-split-view>
<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>
<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
Vertical split view requires the vertical attribute to be set.
<sp-split-view vertical> <div>Top panel</div> <div>Bottom panel</div> </sp-split-view>
<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>
<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
<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
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
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
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
aria-orientation is set to horizontal or vertical to indicate the orientation of the split view.
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
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
collapsible collapsible boolean false label label string | undefined primaryMax primary-max DEFAULT_MAX_SIZE primaryMin primary-min number 0 primarySize primary-size number | number primarySize primarySize number | number resizable resizable boolean false secondaryMax secondary-max DEFAULT_MAX_SIZE secondaryMin secondary-min number 0 splitterPos splitter-pos number | undefined vertical vertical boolean false Slots
Two Events
change Event Announces the new position of the splitter Changelog
Patch Changes
- Updated dependencies []:
- @spectrum-web-components/base@1.9.0
- @spectrum-web-components/shared@1.9.0
1.8.0
Patch Changes
- Updated dependencies []:
- @spectrum-web-components/base@1.8.0
- @spectrum-web-components/shared@1.8.0
1.7.0
Patch Changes
-
#5428 Thanks94dd388@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
Patch Changes
- Updated dependencies []:
- @spectrum-web-components/base@1.6.0
1.5.0
Patch Changes
-
#5271 Thanks165a904@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
Patch Changes
- Updated dependencies []:
- @spectrum-web-components/base@1.4.0
1.3.0
Patch Changes
- Updated dependencies []:
- @spectrum-web-components/base@1.3.0
All notable changes to this project will be documented in this file. See
1.2.0 (2025-02-27)
Note: Version bump only for package @spectrum-web-components/split-view
1.1.2 (2025-02-12)
Note: Version bump only for package @spectrum-web-components/split-view
1.1.1 (2025-01-29)
Note: Version bump only for package @spectrum-web-components/split-view
1.1.0 (2025-01-29)
Bug Fixes
- lock prerelease versions for Spectrum CSS (
#5014 ) (8aa7734 )
1.0.1 (2024-11-11)
Note: Version bump only for package @spectrum-web-components/split-view
1.0.0 (2024-10-31)
Note: Version bump only for package @spectrum-web-components/split-view
0.49.0 (2024-10-15)
Note: Version bump only for package @spectrum-web-components/split-view
0.48.1 (2024-10-01)
Note: Version bump only for package @spectrum-web-components/split-view
0.48.0 (2024-09-17)
Note: Version bump only for package @spectrum-web-components/split-view
0.47.2 (2024-09-03)
Note: Version bump only for package @spectrum-web-components/split-view
0.47.1 (2024-08-27)
Note: Version bump only for package @spectrum-web-components/split-view
0.47.0 (2024-08-20)
Note: Version bump only for package @spectrum-web-components/split-view
0.46.0 (2024-08-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.45.0 (2024-07-30)
Note: Version bump only for package @spectrum-web-components/split-view
0.44.0 (2024-07-15)
Note: Version bump only for package @spectrum-web-components/split-view
0.43.0 (2024-06-11)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.5 (2024-05-24)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.4 (2024-05-14)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.3 (2024-05-01)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.2 (2024-04-03)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.1 (2024-04-02)
Note: Version bump only for package @spectrum-web-components/split-view
0.42.0 (2024-03-19)
Bug Fixes
- allowing split view to have a custom aria label (
#4155 ) (d9abed7 )
Features
- asset: use core tokens (
99e76f4 )
0.41.2 (2024-03-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.41.1 (2024-02-22)
Note: Version bump only for package @spectrum-web-components/split-view
0.41.0 (2024-02-13)
Bug Fixes
- support generating random IDs outside of secure contexts (
485a67c )
0.40.5 (2024-02-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.40.4 (2024-01-29)
Note: Version bump only for package @spectrum-web-components/split-view
0.40.3 (2024-01-11)
Note: Version bump only for package @spectrum-web-components/split-view
0.40.2 (2023-12-18)
Note: Version bump only for package @spectrum-web-components/split-view
0.40.1 (2023-12-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.40.0 (2023-11-16)
Bug Fixes
- split-view: expand accessible attribute usage and HCM delivery (
cb7c71f )
0.39.4 (2023-11-02)
Note: Version bump only for package @spectrum-web-components/split-view
0.39.3 (2023-10-18)
Note: Version bump only for package @spectrum-web-components/split-view
0.39.2 (2023-10-13)
Note: Version bump only for package @spectrum-web-components/split-view
0.39.1 (2023-10-06)
Note: Version bump only for package @spectrum-web-components/split-view
0.39.0 (2023-09-25)
Note: Version bump only for package @spectrum-web-components/split-view
0.38.0 (2023-09-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.37.0 (2023-08-18)
Note: Version bump only for package @spectrum-web-components/split-view
0.36.0 (2023-08-18)
Note: Version bump only for package @spectrum-web-components/split-view
0.35.0 (2023-07-31)
Note: Version bump only for package @spectrum-web-components/split-view
0.34.0 (2023-07-11)
Note: Version bump only for package @spectrum-web-components/split-view
0.33.2 (2023-06-14)
Note: Version bump only for package @spectrum-web-components/split-view
0.33.0 (2023-06-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.32.0 (2023-06-01)
Bug Fixes
- base: ensure streaming listener "streams" on the animation frame (
1478db1 )
0.31.0 (2023-05-17)
Note: Version bump only for package @spectrum-web-components/split-view
0.30.0 (2023-05-03)
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
- 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
- version update (
ab58bf9 )
0.5.10 (2023-04-24)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.9 (2023-04-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.8 (2023-03-22)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.7 (2023-02-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.6 (2023-01-23)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.5 (2023-01-09)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.4 (2022-12-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.3 (2022-11-21)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.2 (2022-11-14)
Note: Version bump only for package @spectrum-web-components/split-view
0.5.1 (2022-10-28)
Bug Fixes
- split-view: prevent touch-action on handle for delivery in mobile (
b68c497 )
0.5.0 (2022-08-09)
Features
- include all Dev Mode files in side effects (
f70817c )
0.4.11 (2022-08-04)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.10 (2022-07-18)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.9 (2022-06-29)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.8 (2022-06-07)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.7 (2022-05-12)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.6 (2022-04-21)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.5 (2022-03-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.4 (2022-03-04)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.3 (2022-02-22)
Bug Fixes
- split-view: end drag on pointerleave (
85e5258 )
0.4.2 (2022-01-26)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.1 (2021-12-13)
Note: Version bump only for package @spectrum-web-components/split-view
0.4.0 (2021-11-08)
Features
- update lit-* dependencies, wip (
377f3c8 )
0.3.1 (2021-11-08)
Note: Version bump only for package @spectrum-web-components/split-view
0.3.0 (2021-11-02)
Features
- adopt DNA@7 base Spectrum CSS (
e08cafd )
0.2.11 (2021-10-12)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.10 (2021-09-20)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.9 (2021-08-24)
Bug Fixes
- correct
@element jsDoc listing across library (c97a632 )
0.2.8 (2021-07-22)
Bug Fixes
- split-view: redraw when primary-size change (
665d238 )
0.2.7 (2021-06-16)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.6 (2021-06-07)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.5 (2021-05-12)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.4 (2021-04-09)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.3 (2021-03-29)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.2 (2021-03-22)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.1 (2021-03-05)
Note: Version bump only for package @spectrum-web-components/split-view
0.2.0 (2021-03-04)
Bug Fixes
- correct calculation of height when using primary-size='auto' (
0ff67c0 )
Features
- use latest exports specification (
a7ecf4b )
Reverts
- version update (
ab58bf9 )
0.1.0 (2021-02-19)
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
- setup SplitView component from rebase main (
32f3272 )