Skip to main content
Vuetify0 is now in alpha!
Vuetify0 Logo
Theme
Mode
Palettes
Accessibility
Vuetify One
Sign in to Vuetify One

Access premium tools across the Vuetify ecosystem — Bin, Play, Studio, and more.

Not a subscriber? See what's included

Selection

A headless component for managing selection state in collections with support for single and multi-selection patterns.


RenderlessIntermediateApr 5, 2026

Usage

The Selection component provides a wrapper and item pattern for managing selection state in collections. It uses the createSelection composable internally and provides full v-model support with automatic state synchronization.

Basic Multi-Selection

Button items with shared multi-selection state via array v-model binding.

Selected:

Anatomy

Anatomy
<script setup lang="ts">
  import { Selection } from '@vuetify/v0'
</script>

<template>
  <Selection.Root>
    <Selection.Item value="apple" />

    <Selection.Item value="banana" />
  </Selection.Root>
</template>

API Reference

The following API details are for all variations of the Selection component.

Selection.Root

Props

namespace

string | undefined

Namespace for dependency injection (must match SelectionItem namespace)

Default: "v0:selection"

disabled

boolean | undefined

Disables the entire selection instance

Default: false

enroll

boolean | undefined

Auto-select non-disabled items on registration

Default: false

mandatory

boolean | "force" | undefined

Controls mandatory selection behavior: - false (default): No mandatory selection enforcement - true: Prevents deselecting the last selected item - `force`: Automatically selects the first non-disabled item on registration

Default: false

multiple

boolean | undefined

Enable multi-selection mode (array v-model)

Default: false

modelValue

T | T[] | undefined

Events

update:model-value

[value: T | T[]]

Slots

default

SelectionRootSlotProps

Selection.Item

Props

id

string | undefined

Unique identifier (auto-generated if not provided)

label

string | undefined

Optional display label (passed through to slot, not used in registration)

value

V | undefined

Value associated with this item

disabled

MaybeRefOrGetter<boolean> | undefined

Disables this specific item

namespace

string | undefined

Namespace for dependency injection

Default: "v0:selection"

Slots

default

SelectionItemSlotProps<V>
Was this page helpful?

© 2016-1970 Vuetify, LLC
Ctrl+/