vuetify0

Use when building Vue 3 UI that needs headless logic — selection state (single, multi, grouped, nested, stepped), form validation, registries, context…

INSTALLATION
npx skills add https://github.com/vuetifyjs/0 --skill vuetify0
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$27

Decision table — reach for these first

Check this table before writing custom logic. Match by problem, not by keyword.

Problem

Use

Category

Single-choice state (tabs, theme picker)

createSingle

selection

Multi-choice state (filters, tag pickers)

createSelection

selection

Select-all with tri-state

createGroup

selection

Tree / nested selection (treeview, menus)

createNested

selection

Wizard / carousel step tracking

createStep

selection

Id-based value store (shared across sub-components)

createModel

selection

Form with async validation + dirty tracking

createForm + createValidation

forms

Slider / range / knob state

createSlider

forms

Autocomplete / combobox

createCombobox

forms

Spin-button numeric input

createNumberField / createNumeric

forms

One-time-password / verification-code value

createOtp

forms

Paginated or virtualized list

createPagination, createVirtual

data

Sortable / filterable table

createDataTable, createFilter

data

Breadcrumb trail derived from route

createBreadcrumbs

utilities

Overflow / responsive menu (hides overflowing items)

createOverflow

utilities

Type-safe provide/inject

createContext

foundation

Reactive registry of ids → values

createRegistry

registration

Auto-dismissing queue (snackbars, toasts)

createQueue

registration

Scheduled events over time (timeline, animation)

createTimeline

registration

Design-token graph (theme, spacing scales)

createTokens

registration

Floating UI positioning (popover, tooltip, menu)

usePopover

system

Enter/leave animation orchestration

usePresence

system

Roving tabindex (list, menubar)

useRovingFocus

system

Virtual focus (combobox listbox)

useVirtualFocus

system

Click outside / keyboard shortcut / event listener

useClickOutside, useHotkey, useEventListener

system

ResizeObserver / IntersectionObserver / MutationObserver

useResizeObserver, etc.

system

rAF loop or setTimeout with pause/resume

useRaf, useTimer

system

Responsive breakpoints

useBreakpoints, useMediaQuery

plugins

Localized strings + date/number format

useLocale, useDate

plugins

Theme (light/dark/custom palette)

useTheme

plugins

RTL direction awareness

useRtl

plugins

z-index stacking for overlays

useStack

plugins

Notifications / snackbar queue plugin

useNotifications

plugins

Feature flags / permission checks

useFeatures, usePermissions

plugins

Persisted state (localStorage / sessionStorage)

useStorage

plugins

Structured logging with adapters

useLogger

plugins

SSR-safe mount detection

useHydration

plugins

Full API and type signatures: see references/REFERENCE.md.

Compound-component pattern

All components are headless and compound. Root owns state, children are named sub-components.

<script setup lang="ts">

  import { Tabs } from '@vuetify/v0/components'

  import { shallowRef } from 'vue'

  const active = shallowRef('overview')

</script>

<template>

  <Tabs.Root v-model="active">

    <Tabs.List>

      <Tabs.Item value="overview">Overview</Tabs.Item>

      <Tabs.Item value="details">Details</Tabs.Item>

    </Tabs.List>

    <Tabs.Panel value="overview">Overview content</Tabs.Panel>

    <Tabs.Panel value="details">Details content</Tabs.Panel>

  </Tabs.Root>

</template>

Available components:

  • Primitives: Atom, Portal, Presence
  • Providers: Group, Locale, Scrim, Selection, Single, Step, Theme
  • Actions: Button, Toggle
  • Forms: Checkbox, Combobox, Form, Input, NumberField, Radio, Rating, Select, Slider, Switch
  • Disclosure: AlertDialog, Collapsible, Dialog, ExpansionPanel, Popover, Tabs, Treeview
  • Semantic: Avatar, Breadcrumbs, Carousel, Pagination, Snackbar, Splitter

More compound examples: see references/component-examples.md.

Must-read rules

1. Check utilities before writing helpers

Import from #v0/utilities (internal) or @vuetify/v0 (external):

  • Type guards: isFunction, isString, isNumber, isBoolean, isObject, isArray, isNull, isUndefined, isNullOrUndefined, isPrimitive, isSymbol, isNaN, isElement
  • Data: mergeDeep, clamp, range, useId

2. Check globals before SSR branches

Import from #v0/constants/globals:

  • IN_BROWSER — replaces typeof window !== 'undefined'
  • SUPPORTS_TOUCH, SUPPORTS_MATCH_MEDIA, SUPPORTS_OBSERVER, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MUTATION_OBSERVER

3. Reactivity defaults

  • shallowRef for primitives
  • ref for objects/arrays
  • toRef for derived values (default)
  • computed only when caching expensive work

4. Compound components only

Sub-components talk to the root via createContext. Never prop-drill state between siblings. Never build a monolithic component when the root + sub-component pattern fits.

Detailed anti-patterns: see references/anti-patterns.md.

Paper and Vuetify relationship

  • @vuetify/v0 — headless (this skill)
  • @vuetify/paper — styling primitives that depend on v0
  • vuetify v4 — Material Design framework, integrates v0 via minor releases

When the user asks to "style" a v0 component or build a design system, point them at @vuetify/paper or a Paper-based design system (e.g., Emerald, Helix). Keep v0 itself headless.

Vuetify MCP

For live API schemas, guides, and release notes, prefer the Vuetify MCP server over guessing:

claude mcp add vuetify-mcp https://mcp.vuetifyjs.com/mcp

Useful tools (fully qualified names required):

  • vuetify-mcp:get_vuetify0_component_list — all components with categories
  • vuetify-mcp:get_vuetify0_composable_list — all composables with categories
  • vuetify-mcp:get_vuetify0_component_guide — guide for a named component
  • vuetify-mcp:get_vuetify0_composable_guide — guide for a named composable
  • vuetify-mcp:get_vuetify0_installation_guide — installation + bootstrap

Resources

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card