Slider v0.1.0 Forms

Single-value slider on a native range input: browser-grade keyboard, touch, and a11y.

import { Slider } from "latticeui-react";

Examples

Basic

Show code
<Slider label="Volume" defaultValue={40} formatValue={(v) => `${v}%`} />

Custom range and step

Show code
<Slider
  label="Price limit"
  min={50}
  max={500}
  step={25}
  defaultValue={200}
  formatValue={(v) => `$${v}`}
/>

Anatomy

These data-part attributes are a versioned public API - style and test against them; they will not change in a minor release.

PartElementStable selector
rootdiv[data-scope="slider"][data-part="root"]
labellabel[data-scope="slider"][data-part="label"]
valueTextspan[data-scope="slider"][data-part="valueText"]
controlinput[type=range][data-scope="slider"][data-part="control"]

Props

PropTypeDefaultDescription
label *string
value / defaultValuenumber
onValueChange(value: number) => void
min / max / stepnumber0 / 100 / 1
formatValue(value: number) => string

Accessibility

Roles: slider (native)

KeyAction
Arrow keysstep
Home/Endmin/max

Styling

Override styles by targeting the stable selectors below from any unlayered CSS - it always beats the library's @layer latticeui styles, no !important needed.

[data-scope="slider"][data-part="control"] {
  /* your overrides */
}