Skip to content
THE COMPONENT LIBRARY
Skip to content

Component reference

RangeSlider

Set a lower and upper price boundary.

Preview

Live preview

Changes apply to this preview only.

Price bracket
Active filter40 € \u2013 180 €

Width adapts to the available space

More examples

Different configurations and compositions using the real Pimolu API. Each preview runs independently and follows the site appearance.

Sizes

The size drives the track, the two thumbs and the gap.

Open preview

Variants

The variant sets the tone of the selected segment.

Open preview

States

Disabled, invalid, formatted readout, custom step.

Open preview

Usage

Keep formatting and numeric state separate, and validate the allowed range in your application.

API reference

Generated from the public TypeScript declarations. Native HTML attributes are inherited where the component extends them; this reference includes Pimolu props and selected common native attributes.

PimoluRangeSliderProps

Type source
PimoluRangeSliderProps public API
NameTypeDefaultDescription
size"sm" | "md" | "lg" | undefined"md"Visual size of the track and the two thumbs.
variant"primary" | "secondary" | "neutral" | "success" | "warning" | "danger" | undefined"primary"Tone of the selected segment.
labelstring | undefined—Visible label for the pair of handles.
helperTextstring | undefined—Supporting text below the control.
errorMessagestring | undefined—Error text, replacing the helper text.
invalidboolean | undefinedfalseExplicit invalid state.
minnumber | undefined0Lower bound of the whole range.
maxnumber | undefined100Upper bound of the whole range.
stepnumber | undefined1Increment between two reachable values.
valuePimoluRangeSliderValue | undefined—Controlled pair, [lower, upper].
defaultValuePimoluRangeSliderValue | undefined—Initial uncontrolled pair, [lower, upper].
onValueChange((value: PimoluRangeSliderValue) => void) | undefined—Called with the new pair, always ordered lower first.
showValueboolean | undefinedfalseDisplay the current pair next to the label.
formatValue((value: PimoluRangeSliderValue) => string) | undefined—Formats the displayed pair.
minLabelstring | undefined"Minimum"Accessible name of the lower handle.
maxLabelstring | undefined"Maximum"Accessible name of the upper handle.
nameMinstring | undefined—Submitted name of the lower handle.
nameMaxstring | undefined—Submitted name of the upper handle.
containerClassNamestring | undefined—Class applied to the outer container.
containerStyleCSSProperties | undefined—Style applied to the outer container.
classNamestring | undefined—Standard React/HTML attribute.
styleCSSProperties | undefined—Standard React/HTML attribute.
aria-labelstring | undefined—Defines a string value that labels the current element.
childrenReactNode—Standard React/HTML attribute.
onClickMouseEventHandler<HTMLInputElement> | undefined—Standard React/HTML attribute.
disabledboolean | undefinedfalseStandard React/HTML attribute.
namestring | undefined—Standard React/HTML attribute.
requiredboolean | undefinedfalseStandard React/HTML attribute.
size

"sm" | "md" | "lg" | undefined

Default: "md"

Visual size of the track and the two thumbs.

variant

"primary" | "secondary" | "neutral" | "success" | "warning" | "danger" | undefined

Default: "primary"

Tone of the selected segment.

label

string | undefined

No default extracted.

Visible label for the pair of handles.

helperText

string | undefined

No default extracted.

Supporting text below the control.

errorMessage

string | undefined

No default extracted.

Error text, replacing the helper text.

invalid

boolean | undefined

Default: false

Explicit invalid state.

min

number | undefined

Default: 0

Lower bound of the whole range.

max

number | undefined

Default: 100

Upper bound of the whole range.

step

number | undefined

Default: 1

Increment between two reachable values.

value

PimoluRangeSliderValue | undefined

No default extracted.

Controlled pair, [lower, upper].

defaultValue

PimoluRangeSliderValue | undefined

No default extracted.

Initial uncontrolled pair, [lower, upper].

onValueChange

((value: PimoluRangeSliderValue) => void) | undefined

No default extracted.

Called with the new pair, always ordered lower first.

showValue

boolean | undefined

Default: false

Display the current pair next to the label.

formatValue

((value: PimoluRangeSliderValue) => string) | undefined

No default extracted.

Formats the displayed pair.

minLabel

string | undefined

Default: "Minimum"

Accessible name of the lower handle.

maxLabel

string | undefined

Default: "Maximum"

Accessible name of the upper handle.

nameMin

string | undefined

No default extracted.

Submitted name of the lower handle.

nameMax

string | undefined

No default extracted.

Submitted name of the upper handle.

containerClassName

string | undefined

No default extracted.

Class applied to the outer container.

containerStyle

CSSProperties | undefined

No default extracted.

Style applied to the outer container.

className

string | undefined

No default extracted.

Standard React/HTML attribute.

style

CSSProperties | undefined

No default extracted.

Standard React/HTML attribute.

aria-label

string | undefined

No default extracted.

Defines a string value that labels the current element.

children

ReactNode

No default extracted.

Standard React/HTML attribute.

onClick

MouseEventHandler<HTMLInputElement> | undefined

No default extracted.

Standard React/HTML attribute.

disabled

boolean | undefined

Default: false

Standard React/HTML attribute.

name

string | undefined

No default extracted.

Standard React/HTML attribute.

required

boolean | undefined

Default: false

Standard React/HTML attribute.

Accessibility

  • Name both endpoints and provide an understandable numeric value, including units.
Read the accessibility guide →