Form

Slider

Single or range slider on native range inputs. Pine fill, 24px thumbs.

Volume
65
Cozy range
20 – 60
Show code
"use client";

import { Slider, SliderLabel, SliderValue } from "@/registry/lilt/ui/slider";

export default function SliderDemo() {
  return (
    <div className="flex w-full max-w-md flex-col gap-8">
      <Slider defaultValue={65}>
        <div className="flex items-baseline justify-between">
          <SliderLabel>Volume</SliderLabel>
          <SliderValue />
        </div>
      </Slider>
      <Slider defaultValue={[20, 60]} thumbLabels={["Min", "Max"]}>
        <div className="flex items-baseline justify-between">
          <SliderLabel>Cozy range</SliderLabel>
          <SliderValue>
            {(formattedValues) => formattedValues.join(" – ")}
          </SliderValue>
        </div>
      </Slider>
    </div>
  );
}

Installation

npx shadcn@latest add @lilt/slider

Accessibility

  • Each thumb is a native range input: arrows step, Shift+Arrow large-steps, Home/End jump.
  • Label single sliders with SliderLabel; pass thumbLabels for ranges.