Slider

The slider component lets users select a single value or a range of values by moving one or two thumbs along a track. Sliders are ideal for adjusting settings such as volume, brightness, or selecting a numeric range.

import {Slider} from "@qualcomm-ui/react/slider"

Usage

Sliders allow users to select a value or range from a continuous or discrete set by moving an indicator (thumb) along a track. They are best used for settings that reflect a range of values rather than precise input.

Examples

Simple

Use the simple API to create a slider using minimal markup.

25
Some contextual help here
<Slider
  className="sm:w-[340px]"
  defaultValue={[25]}
  hint="Some contextual help here"
  label="Choose a value"
/>

Composite

Build with the composite API for granular control. This API requires you to provide each subcomponent, but gives you full control over the structure and layout.

25
Some contextual help here
<Slider.Root className="sm:w-[340px]" defaultValue={[25]}>
  <Slider.Label>Choose a value</Slider.Label>
  <Slider.ValueText />
  <Slider.Control>
    <Slider.Track>
      <Slider.Range />
    </Slider.Track>
    <Slider.Thumbs />
  </Slider.Control>
  <Slider.Hint>Some contextual help here</Slider.Hint>
  <Slider.Markers />
</Slider.Root>

Min/Max/Step

The min, max, and step props control the slider's value range and increments:

  • min: The minimum value of the slider (default is 0).
  • max: The maximum value of the slider (default is 100).
  • step: The increment/decrement step value (default is 1).
50
<Slider
  className="sm:w-[340px]"
  defaultValue={[50]}
  max={70}
  min={20}
  step={5}
/>

Origin

Use origin to control where the track is filled from for single-value sliders:

  • start: Fills from the start of the track to the thumb. Useful when the value represents an absolute value (default).
  • center: Fills from the center of the track to the thumb. Useful when the value represents an offset or relative value.
  • end: Fills from the end of the track to the thumb. Useful when the value represents an offset from the end.
50
50
50
<Slider
  className="sm:w-[340px]"
  defaultValue={[50]}
  label="Start (default)"
  origin="start"
/>
<Slider
  className="sm:w-[340px]"
  defaultValue={[50]}
  label="Center"
  origin="center"
/>
<Slider
  className="sm:w-[340px]"
  defaultValue={[50]}
  label="End"
  origin="end"
/>

Tooltip

Use the tooltip prop to display the slider's value in a tooltip rather than above the component.

<Slider className="sm:w-[340px]" defaultValue={[25]} tooltip />

Markers

Track Markers

By default, the component generates 11 marks based on the slider's min and max values. provide your own set of marks by passing them in an array to the marks prop.

30
<Slider
  className="sm:w-[340px]"
  defaultValue={[30]}
  marks={[20, 30, 40, 50, 60, 70]}
  max={70}
  min={20}
/>

Side Markers

For more compact designs, you can display the min and max markers at the ends of the track using the sideMarkers prop.

30
<Slider
  className="sm:w-[340px]"
  defaultValue={[30]}
  max={70}
  min={20}
  sideMarkers
/>

Range

Set the value or defaultValue prop with two values to create a range slider.

20 - 50
<Slider className="sm:w-[340px]" defaultValue={[20, 50]} />

Minimum Steps Between Thumbs

To prevent overlapping thumbs, you can use the minStepsBetweenThumbs prop to set a minimum distance between them.

20 - 50
<Slider
  className="sm:w-[340px]"
  defaultValue={[20, 50]}
  minStepsBetweenThumbs={10}
/>

Display

By default, range values are displayed separated by a dash (-). You can customize this by passing a separator string or a function to the display prop.

from 20 to 50
<Slider
  className="sm:w-[340px]"
  defaultValue={[20, 50]}
  display={(values) => `from ${values[0]} to ${values[1]}`}
/>

Size

Set the size prop to adjust the size of the thumbs. Available sizes are sm (small) and md (medium, default).

50

Variant

Set the variant prop to adjust the visual style of the slider. Available variants are neutral and primary (default).

50
<Slider className="sm:w-[340px]" defaultValue={[50]} variant="neutral" />

Hint

Use the hint prop to add additional guidance or context to the user below the slider.

50
Additional context
<Slider
  className="sm:w-[340px]"
  defaultValue={[50]}
  hint="Additional context"
/>

Disabled

Use the disabled prop to prevent user interaction.

50
<Slider className="sm:w-[340px]" defaultValue={[50]} disabled />

Focus Callback

The onFocusChange prop allows you to listen for focus events on the slider's thumbs.

25 - 75
currently focused: none
<Slider
  defaultValue={[25, 75]}
  onFocusChange={(e) => {
    setCurrentOutput(
      e.focusedIndex === -1 ? "none" : `thumb ${e.focusedIndex}`,
    )
  }}
/>

Controlled State

Use value and onValueChange or onValueChangeEnd to control the value of the slider. This allows for more complex interactions and integration with form libraries.

25 - 75
live value: 25, 75final value: 25, 75
<Slider
  onValueChange={(e) => {
    setValue(e.value)
  }}
  onValueChangeEnd={(e) => {
    setFinalValue(e.value)
  }}
  value={value}
/>

Forms

Choose the form library that fits your needs—we've built examples with React Hook Form and Tanstack Form to get you started.

React Hook Form

Use React Hook Form to handle the slider state and validation. ArkType works great for schema validation if you need it.

30
Between 20 and 80
30 - 70
At least 30
import type {ReactElement} from "react"

import {arktypeResolver} from "@hookform/resolvers/arktype"
import {type} from "arktype"
import {Controller, useForm} from "react-hook-form"

import {Button} from "@qualcomm-ui/react/button"
import {Slider} from "@qualcomm-ui/react/slider"

interface FormData {
  minMaxNumber: number
  minRange: [number, number]
}

const minMaxNumber = type("20 <= number <= 80").configure({
  message: "Value must be between 20 and 80",
})

const minRange = type(["number", "number"])
  .narrow((values: [number, number]) => Math.abs(values[0] - values[1]) >= 30)
  .configure({
    message: "Range must be at least 30",
  })

const FormSchema = type({
  minMaxNumber,
  minRange,
})

export default function SliderReactHookFormDemo(): ReactElement {
  const {control, handleSubmit} = useForm<FormData>({
    defaultValues: {
      minMaxNumber: 30,
      minRange: [30, 70],
    },
    mode: "onChange",
    resolver: arktypeResolver(FormSchema),
  })

  return (
    <form
      className="flex flex-col gap-10 sm:w-[340px]"
      onSubmit={(e) => {
        void handleSubmit((data) => console.log(data))(e)
      }}
    >
      <Controller
        control={control}
        name="minMaxNumber"
        render={({
          field: {onChange, value, ...fieldProps},
          fieldState: {error},
        }) => {
          return (
            <Slider
              errorText={error?.message}
              hint="Between 20 and 80"
              invalid={!!error?.message}
              label="Select a value"
              onValueChange={({value}: {value: number[]}) => {
                return onChange(value[0])
              }}
              value={[value]}
              {...fieldProps}
            />
          )
        }}
      />
      <Controller
        control={control}
        name="minRange"
        render={({
          field: {onChange, value, ...fieldProps},
          fieldState: {error},
        }) => {
          return (
            <Slider
              errorText={error?.message}
              hint="At least 30"
              invalid={!!error?.message}
              label="Select a range"
              onValueChange={({value}: {value: number[]}) => {
                return onChange(value)
              }}
              value={value}
              {...fieldProps}
            />
          )
        }}
      />
      <Button
        className="mt-1"
        emphasis="primary"
        size="sm"
        type="submit"
        variant="fill"
      >
        Submit
      </Button>
    </form>
  )
}

Tanstack Form

Tanstack Form handles slider validation with its built-in validators.

30
Between 20 and 80
30 - 70
At least 30
import type {ReactElement} from "react"

import {useForm} from "@tanstack/react-form"

import {Button} from "@qualcomm-ui/react/button"
import {Slider} from "@qualcomm-ui/react/slider"

interface FormData {
  minMaxNumber: number
  minRange: [number, number]
}

const defaultFormData: FormData = {
  minMaxNumber: 30,
  minRange: [30, 70],
}

const minmaxErrorMessage = "Value must be between 20 and 80"
const minRangeErrorMessage = "Range must be at least 30"

export default function SliderTanstackFormDemo(): ReactElement {
  const form = useForm({
    defaultValues: defaultFormData,
    onSubmit: (data) => console.log(data.value),
  })

  const isInRange = (value: number) => value >= 20 && value <= 80
  const isRangeAtLeast30 = (value: [number, number]) =>
    Math.abs(value[0] - value[1]) >= 30

  return (
    <form
      className="flex flex-col gap-10 sm:w-[340px]"
      onSubmit={(event) => {
        event.preventDefault()
        event.stopPropagation()
        void form.handleSubmit()
      }}
    >
      <form.Field
        name="minMaxNumber"
        validators={{
          onChange: ({value}) =>
            isInRange(value) ? undefined : minmaxErrorMessage,
          onSubmit: ({value}) =>
            isInRange(value) ? undefined : minmaxErrorMessage,
        }}
      >
        {({handleChange, name, state}) => {
          const fieldError =
            state.meta.errorMap["onChange"] || state.meta.errorMap["onSubmit"]
          return (
            <Slider
              errorText={fieldError}
              hint="Between 20 and 80"
              invalid={!!fieldError}
              label="Select a value"
              name={name}
              onValueChange={({value}) => handleChange(value[0])}
              value={[state.value]}
            />
          )
        }}
      </form.Field>
      <form.Field
        name="minRange"
        validators={{
          onChange: ({value}) =>
            isRangeAtLeast30(value) ? undefined : minRangeErrorMessage,
          onSubmit: ({value}) =>
            isRangeAtLeast30(value) ? undefined : minRangeErrorMessage,
        }}
      >
        {({handleChange, name, state}) => {
          const fieldError =
            state.meta.errorMap["onChange"] || state.meta.errorMap["onSubmit"]
          return (
            <Slider
              errorText={fieldError}
              hint="At least 30"
              invalid={!!fieldError}
              label="Select a range"
              name={name}
              onValueChange={({value}) =>
                handleChange(value as [number, number])
              }
              value={state.value}
            />
          )
        }}
      </form.Field>
      <Button
        className="mt-1"
        emphasis="primary"
        size="sm"
        type="submit"
        variant="fill"
      >
        Submit
      </Button>
    </form>
  )
}

Tanstack form also supports ArkType.

Composite API and Shortcuts

The Slider component provides a composite API should you need more control over the slider's behavior and appearance.

Anatomy

The composite API is based on the following components:

  • Slider.Root: The main component that wraps the slider subcomponents.
  • Slider.Label: The slider main label.
  • Slider.ValueText: The slider current value as text.
  • Slider.Control: The container for the thumb(s) and its track and range.
  • Slider.Track: The track along which the thumb(s) move.
  • Slider.Range: The filled portion of the track.
  • Slider.Thumbs or Slider.Thumb + Slider.HiddenInput: The draggable handle(s).
  • Slider.Hint: The hint text below the slider.
  • Slider.ErrorText: The error message below the slider.
  • Slider.Markers or Slider.MarkerGroup + Slider.Marker: The markers along the track.

Thumbs

If you need more control over the thumbs, you can use the Slider.Thumb component instead of the Slider.Thumbs shortcut. Also note that Slider.Thumbs will automatically create a range slider when the slider's value or defaultValue is set accordingly.

import {Slider} from "@qualcomm-ui/react/slider"

function RangeSlider() {
  return (
    <Slider.Root defaultValue={[25, 50]}>
      <Slider.ValueText />
      <Slider.Control>
        <Slider.Track>
          <Slider.Range />
        </Slider.Track>
        <Slider.Thumb index={0} name="min">
          <Slider.HiddenInput />
        </Slider.Thumb>
        <Slider.Thumb index={1} name="max">
          <Slider.HiddenInput />
        </Slider.Thumb>
      </Slider.Control>
    </Slider.Root>
  )
}

Thumbs with tooltips

Setting the tooltip prop on the Slider.Thumbs component is the equivalent of the following composition using the Tooltip component:

import {Slider} from "@qualcomm-ui/react/slider"
import {Tooltip} from "@qualcomm-ui/react/tooltip"
import {useSliderContext} from "@qualcomm-ui/react-core/slider"

export default function SliderWithTooltip() {
  function ThumbValue({index}: {index: number}) {
    const context = useSliderContext()
    return context.getThumbValue(index)
  }
  return (
    <Slider.Root defaultValue={[25, 50]}>
      <Slider.Label>Label</Slider.Label>
      <Slider.ValueText />
      <Slider.Control>
        <Slider.Track>
          <Slider.Range />
        </Slider.Track>
        <Tooltip
          closeOnClick={false}
          positioning={{flip: false}}
          trigger={
            <Slider.Thumb index={0} name="min">
              <Slider.HiddenInput />
            </Slider.Thumb>
          }
        >
          <ThumbValue index={0} />
        </Tooltip>
        <Tooltip
          closeOnClick={false}
          positioning={{flip: false}}
          trigger={
            <Slider.Thumb index={1} name="max">
              <Slider.HiddenInput />
            </Slider.Thumb>
          }
        >
          <ThumbValue index={1} />
        </Tooltip>
      </Slider.Control>
    </Slider.Root>
  )
}

Markers

The Markers component is a convenient shortcut to display custom track markers. But you can also create your own markers using the Slider.MarkerGroup and Slider.Marker components.

import {Slider} from "@qualcomm-ui/react/slider"

function SliderWithCustomMarkers() {
  return (
    <Slider.Root defaultValue={[25, 50]}>
      <Slider.Label>Label</Slider.Label>
      <Slider.ValueText />
      <Slider.Control>
        <Slider.Track>
          <Slider.Range />
        </Slider.Track>
        <Slider.MarkerGroup>
          <Slider.Marker value={0}>0</Slider.Marker>
          <Slider.Marker value={25}>25</Slider.Marker>
          <Slider.Marker value={50}>50</Slider.Marker>
          <Slider.Marker value={75}>75</Slider.Marker>
          <Slider.Marker value={100}>100</Slider.Marker>
        </Slider.MarkerGroup>
      </Slider.Control>
    </Slider.Root>
  )
}

API

<Slider>

The Slider extends the Slider.Root with the following props:

PropTypeDefault
Props applied to the control element.
How to display range values: a separator string or a function that receives the value array and returns a React node.
| string
| ((
value: number[],
) => ReactNode)
'—'
The error message to display when the slider value is invalid.
Props applied to the error text element.
Props applied to all hidden input elements.
Optional hint text to display below the slider.
Props applied to the hint element.
The label text for the slider.
Props applied to the label element.
Props applied to the marker group element.
Props applied to all marker elements.
Omit<
SliderMarkerProps,
'value'
>
The list of marks to display along the slider track.
number[]
Props applied to the max element.
SliderMaxProps
Props applied to the min element.
SliderMinProps
Props applied to the range element.
Whether to display markers on the sides of the slider.
boolean
Props applied to all thumb elements.
Omit<
SliderThumbProps,
'index' | 'tooltip'
>
Whether to display the thumb value as a tooltip.
boolean
Props applied to the track element.
Props applied to the value text element.
Description
Props applied to the control element.
Type
| string
| ((
value: number[],
) => ReactNode)
Description
How to display range values: a separator string or a function that receives the value array and returns a React node.
Description
The error message to display when the slider value is invalid.
Description
Props applied to the error text element.
Description
Props applied to all hidden input elements.
Description
Optional hint text to display below the slider.
Description
Props applied to the hint element.
Description
The label text for the slider.
Description
Props applied to the label element.
Description
Props applied to the marker group element.
Type
Omit<
SliderMarkerProps,
'value'
>
Description
Props applied to all marker elements.
Type
number[]
Description
The list of marks to display along the slider track.
Type
SliderMaxProps
Description
Props applied to the max element.
Type
SliderMinProps
Description
Props applied to the min element.
Description
Props applied to the range element.
Type
boolean
Description
Whether to display markers on the sides of the slider.
Type
Omit<
SliderThumbProps,
'index' | 'tooltip'
>
Description
Props applied to all thumb elements.
Type
boolean
Description
Whether to display the thumb value as a tooltip.
Description
Props applied to the track element.
Description
Props applied to the value text element.

Composite API

<Slider.Root>

The main component that wraps the slider subcomponents. Renders a <div> element by default.
PropTypeDefault
The aria-label of each slider thumb. Useful for providing an accessible name to the slider
| string
| string[]
The id of the elements that labels each slider thumb. Useful for providing an accessible name to the slider
| string
| string[]
React children prop.
The initial value of the slider when rendered. Use when you don't need to control the value of the slider.
number[]
The document's text/writing direction.
'ltr' | 'rtl'
'ltr'
Whether the slider is disabled
boolean
The form associated to the underlying input element.
string
Function that returns a human readable value for the slider thumb
      ({
      index: number
      value: number
      }) => string
      Whether the slider is invalid
      boolean
      The maximum value of the slider
      number
      100
      
      The minimum value of the slider
      number
      0
      
      The minimum permitted steps between multiple thumbs.

      minStepsBetweenThumbs * step should reflect the gap between the thumbs.

      -
      step: 1 and minStepsBetweenThumbs: 10 => gap is 10
      -
      step: 10 and minStepsBetweenThumbs: 2 => gap is 20
      number
      0
      
      The input name(s) for the slider thumbs.
      - For a single thumb, pass a string.
      - For two thumbs (range slider), pass the two names in an array or a single name to be prefixed with its index (e.g., "slider" → "slider0", "slider1")
      | string
      | string[]
      Function invoked when the slider's focused index changes
        • focusedNodeThe focused node
        • focusedValueThe id of the focused node
        ({
        focusedNode: T
        focusedValue: string
        }) => void
        Function invoked when the value of the slider changes
            ({
            value: number[]
            }) => void
            Function invoked when the slider value change is done
                ({
                value: number[]
                }) => void
                The orientation of the slider
                | 'horizontal'
                | 'vertical'
                "horizontal"
                
                The origin of the slider range. The track is filled from the origin to the thumb for single values.
                - "start": Useful when the value represents an absolute value
                - "center": Useful when the value represents an offset (relative)
                - "end": Useful when the value represents an offset from the end
                | 'start'
                | 'end'
                | 'center'
                "start"
                
                Whether the slider is read-only
                boolean
                Allows you to replace the component's HTML element with a different tag or component. Learn more
                | ReactElement
                | ((
                props: object,
                ) => ReactElement)
                The size of the slider.
                'sm' | 'md'
                The step value of the slider
                number
                1
                
                The alignment of the slider thumb relative to the track
                -
                center: the thumb will extend beyond the bounds of the slider track.
                -
                contain: the thumb will be contained within the bounds of the track.
                | 'contain'
                | 'center'
                "contain"
                
                The slider thumbs dimensions
                {
                height: number
                width: number
                }
                The controlled value of the slider
                number[]
                The variant of the slider.
                | 'primary'
                | 'neutral'
                Type
                | string
                | string[]
                Description
                The aria-label of each slider thumb. Useful for providing an accessible name to the slider
                Type
                | string
                | string[]
                Description
                The id of the elements that labels each slider thumb. Useful for providing an accessible name to the slider
                Description
                React children prop.
                Type
                number[]
                Description
                The initial value of the slider when rendered. Use when you don't need to control the value of the slider.
                Type
                'ltr' | 'rtl'
                Description
                The document's text/writing direction.
                Type
                boolean
                Description
                Whether the slider is disabled
                Type
                string
                Description
                The form associated to the underlying input element.
                Type
                ({
                index: number
                value: number
                }) => string
                Description
                Function that returns a human readable value for the slider thumb
                    Type
                    boolean
                    Description
                    Whether the slider is invalid
                    Type
                    number
                    Description
                    The maximum value of the slider
                    Type
                    number
                    Description
                    The minimum value of the slider
                    Type
                    number
                    Description
                    The minimum permitted steps between multiple thumbs.

                    minStepsBetweenThumbs * step should reflect the gap between the thumbs.

                    -
                    step: 1 and minStepsBetweenThumbs: 10 => gap is 10
                    -
                    step: 10 and minStepsBetweenThumbs: 2 => gap is 20
                    Type
                    | string
                    | string[]
                    Description
                    The input name(s) for the slider thumbs.
                    - For a single thumb, pass a string.
                    - For two thumbs (range slider), pass the two names in an array or a single name to be prefixed with its index (e.g., "slider" → "slider0", "slider1")
                    Type
                    ({
                    focusedNode: T
                    focusedValue: string
                    }) => void
                    Description
                    Function invoked when the slider's focused index changes
                      • focusedNodeThe focused node
                      • focusedValueThe id of the focused node
                      Type
                      ({
                      value: number[]
                      }) => void
                      Description
                      Function invoked when the value of the slider changes
                          Type
                          ({
                          value: number[]
                          }) => void
                          Description
                          Function invoked when the slider value change is done
                              Type
                              | 'horizontal'
                              | 'vertical'
                              Description
                              The orientation of the slider
                              Type
                              | 'start'
                              | 'end'
                              | 'center'
                              Description
                              The origin of the slider range. The track is filled from the origin to the thumb for single values.
                              - "start": Useful when the value represents an absolute value
                              - "center": Useful when the value represents an offset (relative)
                              - "end": Useful when the value represents an offset from the end
                              Type
                              boolean
                              Description
                              Whether the slider is read-only
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              Type
                              'sm' | 'md'
                              Description
                              The size of the slider.
                              Type
                              number
                              Description
                              The step value of the slider
                              Type
                              | 'contain'
                              | 'center'
                              Description
                              The alignment of the slider thumb relative to the track
                              -
                              center: the thumb will extend beyond the bounds of the slider track.
                              -
                              contain: the thumb will be contained within the bounds of the track.
                              Type
                              {
                              height: number
                              width: number
                              }
                              Description
                              The slider thumbs dimensions
                              Type
                              number[]
                              Description
                              The controlled value of the slider
                              Type
                              | 'primary'
                              | 'neutral'
                              Description
                              The variant of the slider.

                              <Slider.Label>

                              The slider main label. Renders a <label> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.ValueText>

                              The slider current value as text. Renders a <output> element by default.
                              PropTypeDefault
                              How to display range values: a separator string or a function that receives the value array and returns a React node.
                              | string
                              | ((
                              value: number[],
                              ) => ReactNode)
                              '-'
                              
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Type
                              | string
                              | ((
                              value: number[],
                              ) => ReactNode)
                              Description
                              How to display range values: a separator string or a function that receives the value array and returns a React node.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Control>

                              The container for the thumb(s) and its track and range. Renders a <div> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Track>

                              The track along which the thumb(s) move. Renders a <div> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Range>

                              The filled portion of the track. Renders a <div> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Thumbs> shortcut

                              A shortcut element for the draggable handle(s) and their associated hidden input(s).
                              PropType
                              Props applied to all hidden input elements.
                              Props applied to all thumb elements.
                              Omit<
                              SliderThumbProps,
                              'index' | 'tooltip'
                              >
                              Whether to display the thumb value as a tooltip.
                              boolean
                              Description
                              Props applied to all hidden input elements.
                              Type
                              Omit<
                              SliderThumbProps,
                              'index' | 'tooltip'
                              >
                              Description
                              Props applied to all thumb elements.
                              Type
                              boolean
                              Description
                              Whether to display the thumb value as a tooltip.

                              <Slider.Thumb>

                              The draggable handle. Renders a <div> element by default.
                              PropType
                              The slider thumb's index.
                              number
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              The name associated with the slider thumb's input (when used in a form).
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Whether to display the thumb value as a tooltip.
                              boolean
                              Type
                              number
                              Description
                              The slider thumb's index.
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              string
                              Description
                              The name associated with the slider thumb's input (when used in a form).
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              Type
                              boolean
                              Description
                              Whether to display the thumb value as a tooltip.

                              <Slider.HiddenInput>

                              The hidden input element associated with the thumb. Renders an <input> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.

                              <Slider.Markers> shortcut

                              A shortcut element for the marker group and the markers.
                              PropType
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Props applied to the marker group element.
                              Props applied to all marker elements.
                              Omit<
                              SliderMarkerProps,
                              'value'
                              >
                              An array of numbers indicating where to place the markers. If not provided, the component will generate 11 evenly spaced markers based on the min and max slider values.
                              number[]
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Description
                              Props applied to the marker group element.
                              Type
                              Omit<
                              SliderMarkerProps,
                              'value'
                              >
                              Description
                              Props applied to all marker elements.
                              Type
                              number[]
                              Description
                              An array of numbers indicating where to place the markers. If not provided, the component will generate 11 evenly spaced markers based on the min and max slider values.

                              <Slider.MarkerGroup>

                              The container element for the markers. Renders a <div> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Marker>

                              A marker along the track. Renders a <span> element by default.
                              PropType
                              The value the marker should indicate.
                              number
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Type
                              number
                              Description
                              The value the marker should indicate.
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.Hint>

                              The hint text below the slider. Renders a <span> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more

                              <Slider.ErrorText>

                              The error message below the slider. Renders a <span> element by default.
                              PropType
                              React children prop.
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              string
                              Allows you to replace the component's HTML element with a different tag or component. Learn more
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              React children prop.
                              Type
                              string
                              Description
                              id attribute. If omitted, a unique identifier will be automatically generated for accessibility.
                              Type
                              | ReactElement
                              | ((
                              props: object,
                              ) => ReactElement)
                              Description
                              Allows you to replace the component's HTML element with a different tag or component. Learn more