Slider

An input for choosing a numeric value from a range.

import { Slider } from '@/components/ui/slider'

export default function SliderDemo() {
  return <Slider defaultValue={50} max={100} step={1} className="max-w-sm" />
}

Built on Base UI

Installation

pnpm dlx shadcn@latest add https://kagadmodyaa.vercel.app/r/slider.json

Needs a React + Tailwind project set up with shadcn. Copies the component source straight into your project, so you can edit it.

Slider imports cn() from lib/utils.ts — add it too if you don't have it yet:

import { clsx, type ClassValue } from 'clsx'
import { twMerge } from 'tailwind-merge'

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}

Usage

import { Slider } from '@/components/ui/slider'

<Slider defaultValue={50} max={100} step={1} />

// Range slider — pass an array for two thumbs
<Slider defaultValue={[25, 75]} max={100} step={1} />

Examples

Range (two thumbs)

import { Slider } from '@/components/ui/slider'

export default function SliderRange() {
  return <Slider defaultValue={[25, 75]} max={100} step={1} minStepsBetweenValues={5} className="max-w-sm" />
}

API Reference

NameTypeDefaultDescription
value / onValueChangenumber | number[] / (value) => void—Controlled value — an array renders one thumb per entry.
defaultValuenumber | number[]0Initial value (uncontrolled).
min / maxnumber0 / 100The allowed range.
stepnumber1Granularity the value snaps to.
minStepsBetweenValuesnumber0Minimum gap between thumbs on a range slider.
disabledbooleanfalseIgnores user interaction.