sheengemologic ui
All components

RangeSlider

A two-thumb slider with an ordered tuple contract, minimum separation, and distinct accessible thumb names.@gemologic/sheen · forms

Playground

Latency window20 – 80
<RangeSlider label="Latency window" defaultValue={[20, 80]} min={0} max={100} minStepsBetweenThumbs={5}  orientation="horizontal"/>

Variant matrix

Latency window
Latency window20 – 80
orientation: horizontal
Latency window20 – 80
orientation: vertical
Latency window20 – 80

Anatomy

Package
@gemologic/sheen
Source
packages/ui/src/primitives/Slider.tsx
Tokens
  • --sheen-color-bg-inset
  • --sheen-color-border-control
  • --sheen-color-accent
  • --sheen-color-focus-ring

Accessibility

Role: sliderKeyboard: ArrowLeft, ArrowRight, ArrowUp, ArrowDown, PageUp, PageDown, Home, End

Do

  • Give both bounds one clear group label; Sheen supplies distinct minimum and maximum thumb names.

Do not

  • Do not use an unordered pair or silently sort invalid app state.

Generated props

NameTypeDefaultDescription
valuereadonly [number, number]Controlled increasing pair within the configured range.
defaultValuereadonly [number, number]Initial uncontrolled pair; defaults to min and max.
onValueChange(value: readonly [number, number]) => voidReceives exactly two ordered values during interaction.
onValueChangeEnd(value: readonly [number, number]) => voidReceives exactly two ordered values at interaction end.
minStepsBetweenThumbsnumber0Nonnegative integer count of required steps between thumbs.
label *stringRequired visible group label.
minnumber0Finite inclusive lower bound.
maxnumber100Finite inclusive upper bound.
stepnumber1Positive finite increment.
formatOptionsIntl.NumberFormatOptionsIntl number options evaluated with the effective scoped locale.
namestringShared native form name for the two range inputs.
formstringID of a form outside the component ancestry.
descriptionstringSupporting text associated with both thumbs.
errorstringValidation text that marks the slider invalid.
disabledbooleanfalseDisables pointer, keyboard, and form interaction.
readOnlybooleanfalsePrevents changes while retaining focus.
requiredbooleanfalseMarks both native range inputs required.
orientation"horizontal" | "vertical"horizontalHorizontal or vertical physical orientation.
invertedbooleanfalseReverses the physical direction without changing tuple order.
Native Solid/HTML attributes remain available and are omitted from this authored-prop view.