Range Slider

Includes designs by Avinit

Inline Slider

range-slider-inline.tsx

Install

$ bunx --bun shadcn add @beui/range-slider-inline

API Reference

step?
number

Rounds snap-stop values. While dragging, the readout keeps this step's decimal precision.

Default—
label
string

Compact label inside the left edge of the track.

Default—
format?
((value: number) => string)

Formats the inline value without changing its precision.

Default—
showTicks?
boolean

Show markers for the ten evenly spaced snap stops, except where they overlap inline text.

Defaulttrue
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—

Range Slider

range-slider.tsx
Drag the handle40

Install

$ bunx --bun shadcn add @beui/range-slider

API Reference

showTicks?
boolean

Render a tick dot at each step.

Defaulttrue
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
step?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—

Fluid Slider

range-slider-fluid.tsx
Contributed by Avinit(opens in new tab)
Brightness35%
Brightness35%

Install

$ bunx --bun shadcn add @beui/range-slider-fluid

API Reference

label?
string

Text shown on the left of the track.

Default—
format?
((value: number) => string)

Formats the value shown on the right.

Default(v) => `${v}%`
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
step?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—

Wave Slider

range-slider-wave.tsx
Contributed by Avinit(opens in new tab)
Gain45

Install

$ bunx --bun shadcn add @beui/range-slider-wave

API Reference

bars?
number

Number of bars drawn across the track.

Default32
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
step?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—

Bubble Slider

range-slider-bubble.tsx
Contributed by Avinit(opens in new tab)
Drag fast and the bubble leans

Install

$ bunx --bun shadcn add @beui/range-slider-bubble

API Reference

format?
((value: number) => string)

Formats the value shown in the bubble.

Default—
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
step?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—

Ruler Slider

range-slider-ruler.tsx
Contributed by Avinit(opens in new tab)
72.5kg
404550556065707580859095100105110115120

Install

$ bunx --bun shadcn add @beui/range-slider-ruler

API Reference

gap?
number

Pixels between two steps.

Default14
majorEvery?
number

Label every Nth step; those ticks are drawn tall.

Default5
unit?
string

Unit shown next to the value.

Default—
className?
string
Default—
value?
number
Default—
defaultValue?
number
Default—
onValueChange?
((value: number) => void)
Default—
min?
number
Default—
max?
number
Default—
step?
number
Default—
disabled?
boolean
Default—
aria-label?
string
Default—
formatValueText?
((value: number) => string)

Announced instead of the raw number — pass one when the value carries a unit or a suffix ("72.5 kg", "35%"); a bare number needs no valueText.

Default—
Also on React Native. A bar thumb that glides between steps.

Updated