shadcn.io is an independent project built on shadcn/ui
Price Range labels a track with two thumbs. It opens at $200 and $800, and those prices sit under the track.
Use it in a product filter next to other facets. Add a Number Input at each end if shoppers type the bounds. In Svelte, Ark UI does not format the prices.
Installation
Anatomy

Usage
<div class="flex w-full max-w-md flex-col gap-2"><Label>Price Range</Label><Slider aria-label={["Minimum price", "Maximum price"]} max={1000} min={0} onValueChange={handleValueChange} value={value} /><div class="flex items-center justify-between text-muted-foreground text-sm tabular-nums"><span>${value[0]}</span><span>${value[1]}</span></div></div>FAQ
How does the readout follow the thumb?
The value lives in state, starting at [200, 800], and goes back to the slider as value. The two prices under the track print value[0] and value[1] with a dollar sign.
onValueChange receives details.value, the new array.
How are the thumbs named?
Price Range is a visible Label.
On Ark UI, aria-label names each thumb: Minimum price and Maximum price.
API Reference
Label
No extra props in this demo. The rest is on the Label page.
Slider
Sets aria-label={["Minimum price", "Maximum price"]}, max={1000}, min={0}, onValueChange={handleValueChange} and value={value}. The rest is on the Slider page.





