Slider

Control deslizante para seleccionar un valor o rango

Componente slider construido con Ark UI. Usa la API de conveniencia con defaultValue (array para valor único o rango) o la API compuesta para layout personalizado y varios thumbs.

import { Slider } from "@/components/ui/slider";

export default function Example() {
  return (
    <Slider defaultValue={[50]} min={0} max={100} label="Volumen" />
  );
}

Instalación

bash
liminal add slider

Uso

Pasa defaultValue como array (ej. [50] para un valor, [20, 80] para rango), además de min, max y opcionalmente step y label.

<Slider defaultValue={[30]} min={0} max={100} />

Ejemplos

Con etiqueta

<Slider defaultValue={[60]} min={0} max={100} label="Brillo" />

Slider de rango (API compuesta)

Para un rango (dos thumbs), usa la API compuesta con dos SliderThumb (index 0 y 1).

tsx
import {
  SliderRoot,
  SliderLabel,
  SliderControl,
  SliderTrack,
  SliderRange,
  SliderThumb,
} from "@/components/ui/slider";

export default function Example() {
  return (
    <SliderRoot defaultValue={[25, 75]} min={0} max={100}>
      <SliderLabel>Rango</SliderLabel>
      <SliderControl>
        <SliderTrack>
          <SliderRange />
        </SliderTrack>
        <SliderThumb index={0} />
        <SliderThumb index={1} />
      </SliderControl>
    </SliderRoot>
  );
}

API

PropTypeDefaultDescription
defaultValuenumber[]-Valor(es) inicial(es), ej. [50] o [20, 80] para rango.
valuenumber[]-Valor(es) controlado(s).
minnumber0Valor mínimo.
maxnumber100Valor máximo.
stepnumber1Incremento por paso.
labelReact.ReactNode-Etiqueta accesible (API de conveniencia).
onValueChange(details: { value: number[] }) => void-Callback cuando cambia el valor.