Skip to main content
The Slider component allows users to select a value or range of values by dragging a handle along a track.

Basic usage

<flx-slider
  label="Volume"
  [(ngModel)]="volume"
  [min]="0"
  [max]="100">
</flx-slider>

Properties

label
string
Label text displayed above the slider
value
number | [number, number]
Current value or range values
min
number
default:"0"
Minimum value
max
number
default:"100"
Maximum value
step
number
default:"1"
Increment step value
disabled
boolean
default:"false"
Disables the slider
showValue
boolean
default:"true"
Shows current value(s) display
showTicks
boolean
default:"false"
Shows tick marks along the track
range
boolean
default:"false"
Enables range selection with two handles
vertical
boolean
default:"false"
Displays slider vertically
marks
{ value: number, label: string }[]
Custom marks to display along the track

Events

valueChange
EventEmitter<number | [number, number]>
Emitted when value changes
dragStart
EventEmitter<void>
Emitted when dragging starts
dragEnd
EventEmitter<void>
Emitted when dragging ends

Examples

<flx-slider
  label="Brightness"
  [(ngModel)]="brightness"
  [min]="0"
  [max]="100"
  [step]="5">
</flx-slider>

<p>Current brightness: {{ brightness }}%</p>
export class BrightnessControl {
  brightness = 50;
}

Styling

flx-slider {
  --flx-slider-track-height: 4px;
  --flx-slider-track-background: #e5e7eb;
  --flx-slider-track-active-background: #3b82f6;
  --flx-slider-handle-size: 16px;
  --flx-slider-handle-background: #ffffff;
  --flx-slider-handle-border: 2px solid #3b82f6;
  --flx-slider-handle-shadow: 0 2px 4px rgba(0,0,0,0.1);
  --flx-slider-tick-size: 2px;
  --flx-slider-tick-color: #9ca3af;
}

Accessibility

The Slider component is fully accessible:
  • role="slider" with appropriate ARIA attributes
  • aria-valuemin, aria-valuemax, aria-valuenow
  • aria-valuetext for labeled values
  • Keyboard control (Arrow keys, Home, End, Page Up/Down)
  • Focus indicators

Best practices

  • Set appropriate min, max, and step values for your use case
  • Use marks for discrete value sets with labels
  • Enable showValue to provide visual feedback
  • Consider using showTicks for discrete steps
  • Use range sliders for filtering by ranges
  • Provide labels that clearly indicate what the slider controls
  • For critical values, consider pairing with a numeric input
For sliders controlling sensitive values (like volume or price), consider using smaller step values and enabling ticks for better precision.

Build docs developers (and LLMs) love