KQ-550 · RANGE/HISTOGRAM
Range Histogram
A price filter you can see through. A histogram of the whole population sits above a dual-thumb range, and dragging a thumb fades every bin outside the selection on a plain opacity tween while the match count rolls to its new figure from a motion value on glide. The thumbs are real sliders carrying aria-valuetext: arrows step, Shift steps ten, Home and End run to the ends, and a thumb pushes its partner rather than crossing it.
KQ-550 · RANGE/HISTOGRAM
Basinworks rent1,405matches
$1,200$2,400
- $800 to $900: 36
- $900 to $1,000: 63
- $1,000 to $1,100: 57
- $1,100 to $1,200: 55
- $1,200 to $1,300: 106
- $1,300 to $1,400: 133
- $1,400 to $1,500: 95
- $1,500 to $1,600: 107
- $1,600 to $1,700: 173
- $1,700 to $1,800: 157
- $1,800 to $1,900: 98
- $1,900 to $2,000: 125
- $2,000 to $2,100: 157
- $2,100 to $2,200: 104
- $2,200 to $2,300: 65
- $2,300 to $2,400: 85
- $2,400 to $2,500: 78
- $2,500 to $2,600: 40
- $2,600 to $2,700: 28
- $2,700 to $2,800: 33
- $2,800 to $2,900: 22
- $2,900 to $3,000: 9
- $3,000 to $3,100: 8
- $3,100 to $3,200: 7
$1,200 – $2,400 · 1405 of 1841 homes
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/range-histogram
Props
- bins
- HistogramBin[]
- default —
- Ordered bins, left to right; their outer ends set the slider's bounds.
- value / defaultValue
- [number, number]
- default —
- Controlled or initial range; it defaults to the full span of the bins.
- onValueChange
- (range: [number, number]) => void
- default —
- Fires on every drag frame and every keyboard step.
- format
- (value: number) => string
- default rounded en-US
- Formats the two ends and the sliders' aria-valuetext.
- step
- number
- default a quarter of the narrowest bin
- Arrow-key step; Shift and the page keys move ten of them.
- height
- number
- default 88
- Histogram height in px. The width is fluid and measured.
- label
- string
- default —
- Names the filter for assistive technology and captions the match readout.
| Prop | Type | Default | Description |
|---|---|---|---|
| bins | HistogramBin[] | — | Ordered bins, left to right; their outer ends set the slider's bounds. |
| value / defaultValue | [number, number] | — | Controlled or initial range; it defaults to the full span of the bins. |
| onValueChange | (range: [number, number]) => void | — | Fires on every drag frame and every keyboard step. |
| format | (value: number) => string | rounded en-US | Formats the two ends and the sliders' aria-valuetext. |
| step | number | a quarter of the narrowest bin | Arrow-key step; Shift and the page keys move ten of them. |
| height | number | 88 | Histogram height in px. The width is fluid and measured. |
| label | string | — | Names the filter for assistive technology and captions the match readout. |