Skip to main content
Mantı UI logoMantı UIv0.12.1
Studio

Slider

Set min, max, and step. The machine manages pointer dragging, keyboard steps, and form state.

import { Slider } from '@manti-ui/react';

export default function SliderBasic() {
  return (
    <div className="w-full max-w-[calc(var(--manti-space-16)*6)]">
      <Slider
        label="Spice level"
        variant="primary"
        defaultValue={40}
        min={0}
        max={100}
        step={1}
        showValue
      />
    </div>
  );
}

Range and marks

Pass two values for a range. Add marks for labeled positions.

25 – 75
50

API

PropTypeDefaultDescription
labelReactNodeOptional label rendered above the track.
variantMantiVariant'primary'Variant of the filled track and thumb.
valuenumber | number[]Controlled value. Pass an array for a range slider.
defaultValuenumber | number[]Initial value for uncontrolled usage.
onValueChange(value: number[]) => voidCalled whenever the value changes.
onValueChangeEnd(value: number[]) => voidCalled when a drag or keyboard interaction settles.
min / maxnumberLower and upper bounds of the range.
stepnumberIncrement between selectable values.
orientation'horizontal' | 'vertical''horizontal'Layout direction.
marksnumber[]Tick marks rendered along the track.
showValuebooleanShow the current value next to the label.
disabled / readOnly / invalidbooleanField state flags.
namestringForm field name.

Styling

Anatomy

PartSelectorDescription
root[data-scope="slider"][data-part="root"]The component container.
header[data-scope="slider"][data-part="header"]Wraps the label and value text.
label[data-scope="slider"][data-part="label"]The optional label.
value-text[data-scope="slider"][data-part="value-text"]The current value output.
control[data-scope="slider"][data-part="control"]The interactive track region.
track[data-scope="slider"][data-part="track"]The full-length rail.
range[data-scope="slider"][data-part="range"]The filled portion up to the thumb.
thumb[data-scope="slider"][data-part="thumb"]A draggable handle (one per value).
marker-group[data-scope="slider"][data-part="marker-group"]Wraps the tick marks.
marker[data-scope="slider"][data-part="marker"]A single tick mark.

Tokens

TokenControls
--manti-slider-thumb-sizethumb size
--manti-slider-track-sizetrack size
--manti-slider-lengthlength
--manti-slider-marker-sizemarker size

Last updated

Built end-to-end with Manti UI components and design tokens. Manti UI is a framework-agnostic design system on Zag.js.

GitHub