# createSlider API

> Auto-generated API reference for `createSlider` from @vuetify/v0 (Vuetify0).
> Source of truth: https://0.vuetifyjs.com/api/create-slider

## Related

- https://0.vuetifyjs.com/composables/forms/create-slider
- https://0.vuetifyjs.com/composables/forms/create-numeric
- https://0.vuetifyjs.com/composables/forms/create-rating
- https://0.vuetifyjs.com/components/forms/slider

## Functions

### createSlider

Creates slider state with value math, step snapping, and multi-thumb support.

Extends createModel for useProxyModel compatibility. Each thumb is a model
ticket with a shallowRef<number> value. Values are derived from the ordered
tickets, enabling proper registration/unregistration lifecycle.

```ts
(options?: SliderOptions) => SliderContext
```

## Options

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `min` | `number \| undefined` | `0` | no | Minimum value. |
| `max` | `number \| undefined` | `100` | no | Maximum value. |
| `step` | `number \| undefined` | `1` | no | Step increment. Values are snapped to the nearest multiple of `step` above `min`. |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | — | no | Whether the slider is disabled. |
| `readonly` | `MaybeRefOrGetter<boolean> \| undefined` | — | no | Whether the slider is readonly (focusable but not editable). |
| `orientation` | `MaybeRefOrGetter<"horizontal" \| "vertical"> \| undefined` | — | no | Slider orientation. |
| `inverted` | `MaybeRefOrGetter<boolean> \| undefined` | — | no | Flip the percent axis. |
| `minStepsBetweenThumbs` | `number \| undefined` | `0` | no | Minimum steps required between adjacent thumbs. |
| `crossover` | `boolean \| undefined` | `false` | no | Allow thumbs to pass through each other. |
| `range` | `boolean \| undefined` | `false` | no | Range mode — expects two thumbs. |

## Methods

| Name | Type | Description |
|---|---|---|
| `apply` | `(values: unknown[], options?: { multiple?: boolean; }) => void` | Apply external values — snaps, constrains, and writes to ticket refs. |
| `register` | `(input?: number \| { value: number; }) => SliderTicket` | Register a new thumb and return its ticket. |
| `unregister` | `(id: ID) => void` | Unregister a thumb by ticket ID. |
| `snap` | `(value: number) => number` | Round a value to the nearest step, clamped to min/max. |
| `fromValue` | `(value: number) => number` | Convert a value to a 0–100 percentage. |
| `fromPercent` | `(percent: number) => number` | Convert a 0–100 percentage to a snapped value. |
| `set` | `(index: number, value: number) => void` | Set the value at a thumb index with step snapping and neighbor constraints. |
| `up` | `(index: number, multiplier?: number) => void` | Increment a thumb's value by `step × multiplier`. |
| `down` | `(index: number, multiplier?: number) => void` | Decrement a thumb's value by `step × multiplier`. |
| `floor` | `(index: number) => void` | Set a thumb to the minimum value. |
| `ceil` | `(index: number) => void` | Set a thumb to the maximum value. |

## Properties

| Name | Type | Description |
|---|---|---|
| `values` | `ComputedRef<number[]>` | Ordered thumb values derived from model tickets. |
| `selectedValues` | `ComputedRef<number[]>` | Alias for `values` — provides useProxyModel compatibility. |
| `disabled` | `Readonly<Ref<boolean, boolean>>` | Whether disabled. Reactive ref derived from the `disabled` option. |
| `readonly` | `Readonly<Ref<boolean, boolean>>` | Whether readonly. Reactive ref derived from the `readonly` option. |
| `orientation` | `Readonly<Ref<"horizontal" \| "vertical", "horizontal" \| "vertical">>` | Slider orientation. Reactive ref derived from the `orientation` option. |
| `inverted` | `Readonly<Ref<boolean, boolean>>` | Whether inverted. Reactive ref derived from the `inverted` option. |
| `min` | `number` | Minimum value. |
| `max` | `number` | Maximum value. |
| `step` | `number` | Step increment. |
| `minStepsBetweenThumbs` | `number` | Minimum steps required between adjacent thumbs. |
| `crossover` | `boolean` | Whether thumbs can cross each other. |
| `range` | `boolean` | Whether this is a range slider. |
