- Prop
min- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- —
Docs Components Advanced
RangeSlider
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
const rangeSliderFixture = { id: "range-slider", min: 0, max: 500, step: 10, defaultValue: [120, 340] as [number, number], histogram: [3, 5, 8, 12, 18, 24, 30, 26, 22, 17, 13, 10], caption: "per-seat / month",} as const; import { RangeSlider } from "@grassroot/ui-react/advanced"; export default function RangeSliderDemo() { return ( <div> <RangeSlider min={rangeSliderFixture.min} max={rangeSliderFixture.max} step={rangeSliderFixture.step} defaultValue={rangeSliderFixture.defaultValue} histogram={[...rangeSliderFixture.histogram]} caption={rangeSliderFixture.caption} format={String} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { ref } from "vue";const rangeSliderFixture = { id: "range-slider", min: 0, max: 500, step: 10, defaultValue: [120, 340] as [number, number], histogram: [3, 5, 8, 12, 18, 24, 30, 26, 22, 17, 13, 10], caption: "per-seat / month",} as const; import { RangeSlider } from "@grassroot/ui-vue";const value = ref<[number, number]>([...rangeSliderFixture.defaultValue]);</script><template> <div> <RangeSlider v-model="value" :min="rangeSliderFixture.min" :max="rangeSliderFixture.max" :step="rangeSliderFixture.step" :histogram="[...rangeSliderFixture.histogram]" :format="String" :caption="rangeSliderFixture.caption" /> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component } from "@angular/core";const rangeSliderFixture = { id: "range-slider", min: 0, max: 500, step: 10, defaultValue: [120, 340] as [number, number], histogram: [3, 5, 8, 12, 18, 24, 30, 26, 22, 17, 13, 10], caption: "per-seat / month",} as const; import { GrassrootRangeSlider } from "@grassroot/ui-angular";@Component({ selector: "app-range-slider-demo", standalone: true, imports: [GrassrootRangeSlider], template: `<div> <grassroot-range-slider [min]="fixture.min" [max]="fixture.max" [step]="fixture.step" [histogram]="fixture.histogram" [value]="fixture.defaultValue" [format]="format" [caption]="fixture.caption" /> </div>`,})export class RangeSliderDemoComponent { protected readonly fixture = rangeSliderFixture; protected readonly format = String;}export default RangeSliderDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> const rangeSliderFixture = { id: "range-slider", min: 0, max: 500, step: 10, defaultValue: [120, 340] as [number, number], histogram: [3, 5, 8, 12, 18, 24, 30, 26, 22, 17, 13, 10], caption: "per-seat / month", } as const; import { RangeSlider } from "@grassroot/ui-svelte";</script> <div> <RangeSlider min={rangeSliderFixture.min} max={rangeSliderFixture.max} step={rangeSliderFixture.step} defaultValue={[...rangeSliderFixture.defaultValue]} histogram={[...rangeSliderFixture.histogram]} format={String} caption={rangeSliderFixture.caption} /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */const rangeSliderFixture = { id: "range-slider", min: 0, max: 500, step: 10, defaultValue: [120, 340] as [number, number], histogram: [3, 5, 8, 12, 18, 24, 30, 26, 22, 17, 13, 10], caption: "per-seat / month",} as const; import { RangeSlider } from "@grassroot/ui-solid";export default function RangeSliderDemo() { return ( <div> <RangeSlider min={rangeSliderFixture.min} max={rangeSliderFixture.max} step={rangeSliderFixture.step} defaultValue={[...rangeSliderFixture.defaultValue]} histogram={[...rangeSliderFixture.histogram]} format={String} caption={rangeSliderFixture.caption} /> </div> );}Installation
API Reference
Import
import { RangeSlider } from "@grassroot/ui-react/advanced";
Props
Prop
Type
Default
Requirement
Description
minnumber | undefined—
optional
—
maxnumber | undefined—
optional
—
stepnumber | undefined—
optional
—
histogramnumber[] | undefined—
optional
Bar heights for the backdrop histogram (left→right buckets).
value[number, number] | undefined—
optional
—
defaultValue[number, number] | undefined—
optional
—
onChange((value: [number, number]) => void) | undefined—
optional
—
format((n: number) => string) | undefinedStringoptional
Format the live readout value (e.g.
captionstring | undefined—
optional
Small caption under the readout.
classNamestring | undefined—
optional
—
- Prop
max- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
step- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
histogram- Type
number[] | undefined- Default
- —
- Requirement
- optional
- Description
- Bar heights for the backdrop histogram (left→right buckets).
- Prop
value- Type
[number, number] | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
defaultValue- Type
[number, number] | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
onChange- Type
((value: [number, number]) => void) | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
format- Type
((n: number) => string) | undefined- Default
String- Requirement
- optional
- Description
- Format the live readout value (e.g.
- Prop
caption- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- Small caption under the readout.
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
Events
| Event | Payload |
|---|---|
onChange | ((value: [number, number]) => void) | undefined |
Import
import { ref } from "vue";
import { RangeSlider } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
modelValueRangeSliderPair | undefined—
optional
minnumber | undefined0optional
maxnumber | undefined100optional
stepnumber | undefined1optional
histogramnumber[] | undefined() => []optional
format((n: number) => string) | undefined() => Stringoptional
captionstring | undefined—
optional
- Prop
modelValue- Type
RangeSliderPair | undefined- Default
- —
- Requirement
- optional
- Prop
min- Type
number | undefined- Default
0- Requirement
- optional
- Prop
max- Type
number | undefined- Default
100- Requirement
- optional
- Prop
step- Type
number | undefined- Default
1- Requirement
- optional
- Prop
histogram- Type
number[] | undefined- Default
() => []- Requirement
- optional
- Prop
format- Type
((n: number) => string) | undefined- Default
() => String- Requirement
- optional
- Prop
caption- Type
string | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:modelValue | [value: RangeSliderPair] |
Import
import { Component } from "@angular/core";
import { GrassrootRangeSlider } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
valueRangeSliderPair—
optional
minnumber0optional
maxnumber100optional
stepnumber1optional
histogramnumber[][]optional
format(n: number) => stringStringoptional
captionstring—
optional
- Prop
value- Type
RangeSliderPair- Default
- —
- Requirement
- optional
- Prop
min- Type
number- Default
0- Requirement
- optional
- Prop
max- Type
number- Default
100- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
histogram- Type
number[]- Default
[]- Requirement
- optional
- Prop
format- Type
(n: number) => string- Default
String- Requirement
- optional
- Prop
caption- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
valueChange | RangeSliderPair |
Import
import { RangeSlider } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
valueRangeSliderPair—
optional
defaultValueRangeSliderPair—
optional
onChange(value: [number, number]) => void—
optional
minnumber0optional
maxnumber100optional
stepnumber1optional
histogramnumber[]—
optional
format(value: number) => string—
optional
captionstring—
optional
classNamestring—
optional
- Prop
value- Type
RangeSliderPair- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
RangeSliderPair- Default
- —
- Requirement
- optional
- Prop
onChange- Type
(value: [number, number]) => void- Default
- —
- Requirement
- optional
- Prop
min- Type
number- Default
0- Requirement
- optional
- Prop
max- Type
number- Default
100- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
histogram- Type
number[]- Default
- —
- Requirement
- optional
- Prop
format- Type
(value: number) => string- Default
- —
- Requirement
- optional
- Prop
caption- Type
string- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onChange | (value: [number, number]) => void |
Import
import { RangeSlider } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
minnumber0optional
maxnumber100optional
stepnumber1optional
histogramnumber[]—
optional
value[number, number]—
optional
defaultValue[number, number]—
optional
onChange(value: [number, number]) => void—
optional
format(value: number) => string—
optional
captionstring—
optional
classNamestring—
optional
- Prop
min- Type
number- Default
0- Requirement
- optional
- Prop
max- Type
number- Default
100- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
histogram- Type
number[]- Default
- —
- Requirement
- optional
- Prop
value- Type
[number, number]- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
[number, number]- Default
- —
- Requirement
- optional
- Prop
onChange- Type
(value: [number, number]) => void- Default
- —
- Requirement
- optional
- Prop
format- Type
(value: number) => string- Default
- —
- Requirement
- optional
- Prop
caption- Type
string- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onChange | (value: [number, number]) => void |