vuetifyjs/0/vuetify0

Claude Code and agent skill by vuetifyjs/0

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when building Vue 3 UI with @vuetify/v0, or before hand-rolling behavior it already ships, such as a button, dialog, popover, setTimeout timer, selection, form, registry, virtual list, focus handling, snackbar, theme, RTL, breakpoints, an SSR window check, or a WAI-ARIA compound, along with the rest of its components, composables, and utilities.

Install

npx vskill@latest install vuetifyjs/0/vuetify0

SKILL.md

Vuetify0

Headless Vue 3 components and composables. Behavior and ARIA only.

<!-- @generated:counts --> <!-- Generated by scripts/generate-skill.ts — do not edit by hand. --> 48 components, 74 composables, 27 utilities. <!-- @generated:counts:end -->

Install

bash
pnpm install @vuetify/v0
ts
import { createSelection, useBreakpoints } from '@vuetify/v0'
import { Tabs, Dialog } from '@vuetify/v0/components'

In this repo, import internals from #v0/ (#v0/composables, #v0/utilities, #v0/constants/globals). Published imports are @vuetify/v0, @vuetify/v0/components, @vuetify/v0/utilities, and @vuetify/v0/constants.

Most use* composables run without a plugin and fall back to defaults. useDate does not: install createDatePlugin with an adapter, or the call throws. For app-wide theme, locale, storage, or breakpoints, install createThemePlugin, createLocalePlugin, createStoragePlugin, or createBreakpointsPlugin.

Selection and a button. Neither needs a plugin.

vue
<script setup lang="ts">
import { createSelection } from '@vuetify/v0'
import { Button } from '@vuetify/v0/components'
const filters = createSelection({ multiple: true })
filters.register({ id: 'open' })
</script>
<template>
<Button.Root @click="filters.toggle('open')">
{{ filters.selectedIds.has('open') ? 'Open' : 'Closed' }}
</Button.Root>
</template>

Decision table

Match the first column. If a row fits, use that API. The rows are the usual cases. The rest of the components, composables, and utilities are listed at the end of this skill.

ProblemUseCategory
Native <button> (click, submit, toggle)Buttonactions
Overlay, dialog, or modalDialogdisclosure
Popover or anchored overlayPopoverdisclosure
Inline status / live-region messageAlertsemantic
Single-choice state (tabs, theme picker)createSingleselection
Multi-choice state (filters, tag pickers)createSelectionselection
Select-all with tri-statecreateGroupselection
Tree / nested selection (treeview, menus)createNestedselection
Wizard / carousel step trackingcreateStepselection
Id-based value store (shared across sub-components)createModelselection
Form with async validation + dirty trackingcreateForm + createValidationforms
Slider / range / knob statecreateSliderforms
Autocomplete / comboboxcreateComboboxforms
Spin-button numeric inputcreateNumberField / createNumericforms
One-time-password / verification-code valuecreateOtpforms
Paginated or virtualized listcreatePagination, createVirtualdata
Sortable / filterable tableDataTable / createDataTable, createFilterdata
Editable / spanning data gridDataGrid / createDataGriddata
Breadcrumb trail derived from routecreateBreadcrumbssemantic
Overflow / responsive menu (hides overflowing items)createOverflowsemantic
Type-safe provide/injectcreateContextfoundation
Reactive registry of ids → valuescreateRegistryregistration
Auto-dismissing queue (snackbars, toasts)createQueueregistration
Undo/redo historycreateTimelineregistration
Design-token graph (theme, spacing scales)createTokensregistration
Popover, tooltip, or menu positionusePopoversystem
Enter/leave animation orchestrationusePresencesystem
Focus containment (non-native dialog, drawer)useFocusTrapsystem
Roving tabindex (list, menubar)useRovingFocussystem
Virtual focus (combobox listbox)useVirtualFocussystem
Click outside / keyboard shortcut / event listeneruseClickOutside, useHotkey, useEventListenersystem
Resize, intersection, or mutation observationuseResizeObserver, useIntersectionObserver, useMutationObserversystem
rAF loop or setTimeout with pause/resumeuseRaf, useTimersystem
Responsive breakpointsuseBreakpoints, useMediaQueryplugins
Localized strings + date/number formatuseLocale, useDateplugins
Theme (light/dark/custom palette)useThemeplugins
RTL direction awarenessuseRtlplugins
z-index stacking for overlaysuseStackplugins
Notifications / snackbar queue pluginuseNotificationsplugins
Feature flags / permission checksuseFeatures, usePermissionsplugins
Persisted state (localStorage / sessionStorage)useStorageplugins
Structured logging with adaptersuseLoggerplugins
SSR-safe mount detectionuseHydrationplugins

Rules

Utilities

Check these before writing a helper. In-repo: #v0/utilities. Published: @vuetify/v0/utilities.

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

IN_BROWSER, SUPPORTS_TOUCH, SUPPORTS_MATCH_MEDIA, SUPPORTS_OBSERVER, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MUTATION_OBSERVER.

In-repo: #v0/constants/globals. Published: @vuetify/v0/constants. Use these instead of typeof window.

Reactivity
  • shallowRef for primitives
  • ref for objects and arrays
  • toRef for derived values
  • computed only to cache expensive work
Compound components

Root owns the state. Children are named sub-components and read it through createContext.

vue
<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>

<!-- @generated:components --> <!-- Generated by scripts/generate-skill.ts — do not edit by hand. --> Available components:

  • Primitives: AspectRatio (stable), Atom (stable), Portal, Presence
  • Providers: Group (stable), Locale, Scrim, Selection (stable), Single (stable), Step (stable), Theme (stable)
  • Actions: Button, Toggle (stable)
  • Forms: Checkbox (stable), Combobox, Form, Input, NumberField, Otp, Radio (stable), Rating, Select, Slider, Switch (stable)
  • Disclosure: AlertDialog, Collapsible (stable), Dialog, ExpansionPanel, Menu, Popover, Tabs (stable), Tooltip, Tour, Treeview
  • Semantic: Alert, Avatar, Breadcrumbs, Carousel, Image, Overflow, Pagination, Progress, Snackbar, Splitter
  • Data: DataGrid, DataTable, Kanban, Virtualizer

Planned (not yet exported — do not import):

  • DatePicker, DateRangePicker, TimePicker

<!-- @generated:components:end -->

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

Vuetify MCP

When the Vuetify MCP server is connected, use it for a guide or a release note:

  • vuetify-mcp:get_vuetify0_component_list
  • vuetify-mcp:get_vuetify0_composable_list
  • vuetify-mcp:get_vuetify0_component_guide
  • vuetify-mcp:get_vuetify0_composable_guide
  • vuetify-mcp:get_vuetify0_installation_guide

Resources

<!-- @generated:api --> <!-- Generated by scripts/generate-skill.ts — do not edit by hand. -->

Full API surface

Public composables and utilities. (mature), (stable), and (draft) are marked. Unmarked entries are preview.

Composables

Foundation:

  • createContext — Type-safe dependency injection factory built on Vue's provide/inject. Shares state across component trees without prop drilling. (stable)
  • createPlugin — Factory for creating Vue plugins with typed dependency injection and lifecycle hooks. (stable)
  • createTrinity — Generates a typed [useX, provideX, defaultX] tuple for Vue's provide/inject dependency injection pattern. (stable)

Registration:

  • createQueue — FIFO queue for time-based collections with automatic timeout removal and pause/resume support.
  • createRegistry — Foundation for ordered, keyed collections. Items are registered with IDs and indexes, and can be looked up by ID, index, or value. (stable)
  • createTimeline — Bounded undo/redo history built on createRegistry with a configurable size limit.
  • createTokens — Design token registry with hierarchical collections, alias resolution, and namespace support.

Forms:

  • createCombobox — Low-level combobox coordinator for custom implementations. Most users should use the Combobox component instead.
  • createDatePicker — Headless date state with calendar-grid geometry, single-date and range modes, preset ranges, min/max bounds, and disabled-date rules. Composable-first, without an @internationalized/date dependency. (draft)
  • createForm — Coordinates validation across multiple inputs. Provides submit(), reset(), and aggregate validity state.
  • createInput — Shared form field primitive with validation state, ARIA ID generation, and automatic form registration.
  • createNumberField — Numeric value with locale-aware formatting, step snapping, min/max/step bounds, and parse/commit for text input.
  • createNumeric — Pure numeric math for bounded values with step snapping, range clamping, and floating-point precision correction.
  • createOtp — Fixed-length one-time-password or verification-code value with pattern-gated entry and completion detection.
  • createRating — Bounded number with discrete items. Give it a size, get items to iterate with full/half/empty state. Half-step support for 0.5 increments.
  • createSlider — Slider state composable for single-thumb, range, and multi-thumb sliders. Handles value math, step snapping, and percentage conversion.
  • createTimePicker — Segmented time value with hour, minute, and second fields, 12/24-hour modes, meridiem handling, step snapping, and min/max bounds. (draft)
  • createValidation — Per-input validation with reactive rules, async validation, and Standard Schema support.

Selection:

  • createGroup — Multi-selection with tri-state (mixed/indeterminate) support for checkbox trees, grouped toggles, and any pattern where items can be partially selected. (stable)
  • createModel — Reactive value store that wraps a ref with two-way selection binding. (stable)
  • createNested — Hierarchical tree management built on createGroup, with parent-child relationships, open/close state, and pluggable traversal strategies. (stable)
  • createSelection — A composable for managing the selection of items in a collection with automatic indexing and lifecycle management. (stable)
  • createSingle — Extends createSelection to enforce single-item selection, automatically clearing the previous selection. (stable)
  • createStep — Extends createSingle with bounded or circular navigation. Built for wizards, multi-step forms, and onboarding flows. (stable)

Data:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 96 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
90
Repository forks
2
7-day trend score
23

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 30 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/vuetifyjs/0/vuetify0/badge)](https://verified-skill.com/skills/vuetifyjs/0/vuetify0)

Something wrong with this skill or its page? Tell us.