Slider
Range input control built on Radix slider primitive with glass thumb/track styling.
pnpm dlx @glinui/cli@latest add sliderFilter listings
76 stays match your budget.
Installation
pnpm dlx @glinui/cli@latest add sliderPrefer the package?
Usage
Variants
import { Slider } from "@glinui/ui"
export function Demo() { return ( <div className="space-y-4"> <Slider variant="glinr" defaultValue={[20]} aria-label="glinr slider" /> <Slider variant="solid" defaultValue={[32]} aria-label="solid slider" /> <Slider variant="plain" defaultValue={[44]} aria-label="plain slider" /> <Slider variant="soft" defaultValue={[56]} aria-label="soft slider" /> <Slider variant="outline" defaultValue={[68]} aria-label="outline slider" /> <Slider variant="ghost" defaultValue={[80]} aria-label="ghost slider" /> </div> )}Sizes
import { Slider } from "@glinui/ui"
export function Demo() { return ( <div className="space-y-4"> <Slider size="sm" defaultValue={[24]} aria-label="Small slider" /> <Slider size="md" defaultValue={[52]} aria-label="Medium slider" /> <Slider size="lg" defaultValue={[78]} aria-label="Large slider" /> </div> )}Glass (opt-in)
Glass is opt-in and needs a backdrop behind it: pick Photo or Vivid in the stage backdrop switcher.
import { Slider } from "@glinui/ui"
export function Demo() { return ( <Slider variant="glass" defaultValue={[40]} aria-label="Glass slider" /> )}Variants
import { Slider } from "@glinui/ui"
export function SliderVariantDemo() {
return (
<div className="space-y-4">
<Slider defaultValue={[20]} aria-label="Default slider" />
<Slider variant="glass" defaultValue={[40]} aria-label="Glass slider" />
<Slider variant="outline" defaultValue={[58]} aria-label="Outline slider" />
<Slider variant="ghost" defaultValue={[72]} aria-label="Ghost slider" />
<Slider variant="liquid" defaultValue={[86]} aria-label="Liquid slider" />
</div>
)
}Accessibility
- Built on Radix Slider with full ARIA support.
- Supports single-value and range sliders (multiple thumbs).
- Provide `aria-label` for screen readers.
- Thumb includes visible focus ring.
- Provide `aria-label` for each slider input.
Keyboard Interactions
| Key | Action |
|---|---|
| Arrow Left / Right | Decrease / increase value by one step. |
| Home | Set to minimum value. |
| End | Set to maximum value. |
ARIA Attributes
- `role="slider"`
- `aria-valuenow`
- `aria-valuemin`
- `aria-valuemax`
- `aria-orientation`
Reduced Motion
Thumb and track transitions respect `prefers-reduced-motion`.
Affected properties
transformbox-shadowopacityAPI Reference
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
variant | ControlVariantProp | No | ambient (glinr) | Look. Omit to follow the ambient design style: glinr is an inset track with an accent range and a raised key thumb. Glass is opt-in. |
size | "sm" | "md" | "lg" | No | md | Track and thumb size scale. |
defaultValue | number[] | - | - | Initial value(s). |
value | number[] | - | - | Controlled value(s). |
onValueChange | (value: number[]) => void | - | - | Change handler for controlled sliders. |
max | number | - | 100 | Maximum value. |
step | number | - | 1 | Step increment. |
disabled | boolean | - | false | Disables interaction. |
Source
Import directly from the package or browse the source on GitHub. Click any file to view it.
Import
import { Slider } from "@glinui/ui"Source Files
Dependencies
@glinui/uiGenerated API Snapshot
Beta
Generated API Snapshot
BetaAuto-extracted from TypeScript source in packages/ui/src/components/slider.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.
Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata
Primary Props Type
SliderProps
SliderProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from sliderVariants. |
variant | ControlVariantProp | No | - | Surface look. Omit to follow the ambient design style (glinr = inset track, accent range, raised key thumb). Also: solid, plain, soft, outline, ghost, glass (opt-in), liquid. |