Basic
Use a slider when a setting benefits from quick spatial adjustment inside a bounded range.
Icons by @ng-icons/tabler-icons
The component library does not provide icons.
Range input primitive with single, range, multiple thumb, vertical, controlled, RTL, and reactive forms support.
Preview
TS
import { FrSliderModule } from '@frame-ui-ng/components/slider';HTML
<frame-slider [defaultValue]="42" aria-label="Volume" />Use a slider when a setting benefits from quick spatial adjustment inside a bounded range.
Pass two values to create a range selection with a highlighted segment between both thumbs.
Use more than two values when users need several checkpoints on the same scale.
Set orientation to vertical for compact panels, mixers, or side controls.
Bind value and valueChange when parent state should own the current slider value.
Disable the slider when a value is locked by permissions, policy, or another field.
Use the slider as a ControlValueAccessor with validators, touched state, and Field error messaging.
Horizontal sliders follow the document direction and keep thumb positioning logical in RTL layouts.
Override slider tokens on the slider or an ancestor to tune track color, range treatment, thumb size, focus ring, and disabled opacity.
Hover the slider surface, label, description, or slider root to inspect the tokens that control track, range, thumb, and focus treatment.
Use these CSS custom properties to tune slider dimensions, track, range, thumb, radius, focus ring, and disabled opacity.
SCSS
--frame-slider-width: 100%;
--frame-slider-height: 1.25rem;
--frame-slider-vertical-width: 1.25rem;
--frame-slider-vertical-height: 12rem;
--frame-slider-track-size: 0.5rem;
--frame-slider-track-bg: var(--frame-muted, #f4f4f5);
--frame-slider-range-bg: var(--frame-primary, #18181b);
--frame-slider-thumb-size: 1.25rem;
--frame-slider-thumb-bg: var(--frame-background, #fff);
--frame-slider-thumb-border: var(--frame-primary, #18181b);
--frame-slider-thumb-border-width: 2px;
--frame-slider-thumb-shadow: 0 2px 10px rgb(0 0 0 / 0.16);
--frame-slider-thumb-focus-shadow: 0 0 0 4px color-mix(in srgb, var(--frame-ring, #18181b) 24%, transparent);
--frame-slider-disabled-opacity: 0.5;
--frame-slider-radius: 999px;