Skip to content

Slider

Allows users to select a numeric value or a bounded range from a continuous scale.

First release: 1.0.0 Latest update: May 7, 2026 Current version: 1.0.0

React Angular Vue Svelte HTML

Import

import { PlusSlider } from '@plusui/react';
import { PlusSliderComponent } from '@plusui/angular';
import { PlusSlider } from '@plusui/vue';
import PlusSlider from '@plusui/svelte';
<script src="https://cdn.jsdelivr.net/npm/@plusui/core"></script>

Package

@plusui/react
@plusui/angular
@plusui/vue
@plusui/svelte
@plusui/core

Docs

Changelog

Slider Changelog

Recent changes and updates for the slider component

📝

No entries found

No changelog entries found for slider component.

The Slider (plus-slider) component lets users choose a single numeric value or a range between two values. It supports labels, descriptions, step markers, value tooltips, vertical orientation, form submission, and keyboard interaction.

Use value, min, max, and step to define the selectable scale.

Show code
Show console

Add range to render two thumbs. Use min-value and max-value for the selected bounds.

Show code

Use size to adjust the thumb and track scale.

Show code

Set with-markers to render a marker at each step. Keep the number of steps reasonable for readability.

Show code

Set with-tooltip to show the current value while the slider is focused or dragged.

Show code

Use indicator-offset to start the active track from a custom baseline.

Show code

Set orientation="vertical" for vertical controls.

Show code

Use the reference slot for scale labels.

LowMediumHigh
Show code

Use disabled to remove interaction and focus. Use readonly to keep the slider focusable while preventing edits.

Show code

plus-slider is form-associated. Single sliders submit one value. Range sliders submit both selected values under the same name.

Submit
Show code
Show console
  • Keyboard Behavior:
    • ArrowRight / ArrowUp: Increases the active thumb by step.
    • ArrowLeft / ArrowDown: Decreases the active thumb by step.
    • Home: Moves to the minimum value.
    • End: Moves to the maximum value.
    • PageUp / PageDown: Moves by a larger step.
    • Enter: Submits the associated form when available.
  • Screen Reader:
    • Each thumb uses role="slider".
    • aria-valuemin, aria-valuemax, aria-valuenow, and aria-valuetext expose the current value.
    • aria-orientation, aria-disabled, and aria-readonly reflect the component state.
    • Range sliders expose separate minimum and maximum thumbs.
  • Required Developer Actions:
    • Provide a meaningful label or label slot.
    • Use clear reference labels when markers need context.
    • Avoid very small step values with with-markers, because dense markers reduce readability.
Site favicon Plus UI Design System on Figma
Visit
NameTypeDefaultDescriptionRequired
labelstringundefinedText label. Use the label slot for rich content.No
descriptionstringundefinedHelper text. Use the description slot for rich content.No
kind'min-range' | 'range''min-range'Legacy range mode alias. Prefer range.No
rangebooleanfalseEnables two-thumb range selection.No
namestring''Form field name.No
valuenumber0Current value for a single-value slider.No
min-valuenumber0Current lower value for range sliders.No
max-valuenumber50Current upper value for range sliders.No
minnumber0Minimum selectable value.No
maxnumber100Maximum selectable value.No
stepnumber1Increment used by pointer and keyboard interaction.No
indicator-offsetnumberundefinedBaseline for the active indicator on single-value sliders.No
orientation'horizontal' | 'vertical''horizontal'Slider orientation.No
size'xs' | 'sm' | 'md' | 'lg' | 'xl''md'Slider visual size.No
disabledbooleanfalseDisables interaction and focus.No
readonlybooleanfalsePrevents edits while keeping the slider focusable.No
autofocusbooleanfalseFocuses the slider when it is first rendered.No
with-markersbooleanfalseDraws markers at each step.No
with-tooltipbooleanfalseShows value tooltip while focused or dragged.No
tooltip-placement'top' | 'right' | 'bottom' | 'left''top'Tooltip placement.No
tooltip-distancenumber8Reserved tooltip distance value for API compatibility.No
full-widthbooleanfalseMakes the slider fill its parent width.No
valueFormatter(value: number) => stringundefinedJavaScript property used to format tooltip and aria-valuetext.No
NamePayload TypeDescription
plus-inputCustomEvent<{ value: number }> or CustomEvent<{ minValue: number; maxValue: number }>Fired while the user changes a value.
plus-changeCustomEvent<{ value: number }> or CustomEvent<{ minValue: number; maxValue: number }>Fired when the user commits a value change.
plus-focusCustomEvent<void>Fired when a thumb receives focus.
plus-blurCustomEvent<void>Fired when focus leaves the slider.
inputEventNative input event for form compatibility.
changeEventNative change event for form compatibility.
NameDescription
stepUp()Increases the single value or range max by step.
stepDown()Decreases the single value or range min by step.
focus()Focuses the active slider thumb.
blur()Removes focus from slider thumbs.
NameDescription
labelCustom label content.
descriptionCustom description content.
referenceReference labels rendered below or beside the slider.
NameDescription
baseThe component wrapper.
labelThe slider label.
descriptionThe slider description.
sliderThe slider interaction wrapper.
trackThe inactive track.
indicatorThe selected range indicator.
markersMarker container.
markerIndividual marker.
referencesReference slot container.
thumbSlider thumb.
thumb-minMinimum thumb for range sliders.
thumb-maxMaximum thumb for range sliders.
tooltipValue tooltip.

Join the Community

Plus UI is built by the community. Join us on our platforms to contribute, get help, and stay up to date.