react ~8 KB 0 deps v0.1.0 ↗ GitHub ↗

@mshafiqyajid/react-slider

Headless slider hook and styled component. Single and range (dual thumb) mode, marks, value tooltip, keyboard navigation, ARIA-compliant.

Playground #

Props
TSX
import { SliderStyled } from "@mshafiqyajid/react-slider/styled";
import "@mshafiqyajid/react-slider/styles.css";

<SliderStyled
  value={value}
  onChange={setValue}
  tone="primary"
/>

Install #

npm install @mshafiqyajid/react-slider

Quick start #

import { SliderStyled } from "@mshafiqyajid/react-slider/styled";
import "@mshafiqyajid/react-slider/styles.css";

const [v, setV] = useState(40);
<SliderStyled value={v} onChange={setV} tone="primary" showValue />

// Range
const [range, setRange] = useState<[number, number]>([20, 80]);
<SliderStyled value={range} onChange={setRange} range />

API #

PropTypeDefaultDescription
valuenumber | [number, number]Controlled value
defaultValuenumber | [number, number]minUncontrolled initial value
onChange(v) => voidCalled on change
minnumber0Minimum value
maxnumber100Maximum value
stepnumber1Step increment
rangebooleanfalseDual thumb range mode
size"sm" | "md" | "lg""md"Track height
tone"neutral" | "primary" | "success" | "danger""neutral"Color
showValuebooleanfalseShow value tooltip on thumb
marksbooleanfalseShow tick marks
disabledbooleanfalseDisable interaction
Edit this page on GitHub