vuetify0

Use when building Vue 3 UI that needs headless logic — selection state (single, multi, grouped, nested, stepped), form validation, registries, context providers, virtual scrolling, pagination, data tables, focus traversal, keyboard shortcuts, resize/intersection/mutation observers, popovers, snackbars, SSR-safe browser checks, theming, RTL, breakpoints, or WAI-ARIA compound components. Triggers on @vuetify/v0, vuetify0, v0, createX composables, or import paths starting with

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "vuetify0" with this command: npx skills add vuetifyjs/0/vuetifyjs-0-vuetify0

Vuetify0

Headless Vue 3 primitives. Logic only, zero styling. Feeds Vuetify 4 through minor releases.

36 components, 63 composables across selection, forms, data, disclosure, observers, and plugins. Compound-component APIs with WAI-ARIA semantics.

Install

pnpm install @vuetify/v0

No global plugin required. Tree-shakeable imports:

import { createSelection, useBreakpoints } from '@vuetify/v0'
import { Tabs, Dialog } from '@vuetify/v0/components'

Decision table — reach for these first

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

ProblemUseCategory
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
Paginated or virtualized listcreatePagination, createVirtualdata
Sortable / filterable tablecreateDataTable, createFilterdata
Breadcrumb trail derived from routecreateBreadcrumbsutilities
Overflow / responsive menu (hides overflowing items)createOverflowutilities
Type-safe provide/injectcreateContextfoundation
Reactive registry of ids → valuescreateRegistryregistration
Auto-dismissing queue (snackbars, toasts)createQueueregistration
Scheduled events over time (timeline, animation)createTimelineregistration
Design-token graph (theme, spacing scales)createTokensregistration
Floating UI positioning (popover, tooltip, menu)usePopoversystem
Enter/leave animation orchestrationusePresencesystem
Roving tabindex (list, menubar)useRovingFocussystem
Virtual focus (combobox listbox)useVirtualFocussystem
Click outside / keyboard shortcut / event listeneruseClickOutside, useHotkey, useEventListenersystem
ResizeObserver / IntersectionObserver / MutationObserveruseResizeObserver, etc.system
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

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, Codex). 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Interior Fullplan

# 室内设计·全案方案自动生成器

Archived SourceRecently Updated
General

kb-archiver

智能本地知识库归档系统 v1.1.0。支持 AI 智能分类、批量归档、全文搜索、统计报告。 自动将文件分类归档到本地知识库,提取全文索引支持秒级搜索。 小文件存本地、大文件可对接云存储。支持 Excel/Word/PPT/PDF/TXT 等格式。 当用户需要:归档文件、建立知识库、全文检索文档内容、管理大量工作文档、批量处理文件夹时使用。 关键词:知识库、归档、文件管理、全文搜索、文档索引、批量归档、AI分类

Archived SourceRecently Updated
General

honest-agent

强制诚实系统:防止AI撒谎、虚构、言行不一。核心功能:(1) 承诺自动追踪(写入honest-commitments.json)(2) 回复前诚实校验拦截 (3) 媒体并行识别(大模型+OCR择优)(4) 诚实审计日志 (5) 安全独立存储。触发词:诚实、撒谎、虚构、承诺、图片识别、媒体处理、我承诺、我会帮你。

Archived SourceRecently Updated
General

long-term-plan

长期计划推进技能。用于管理需要持续数天/数周的任务,采用滚动节点式规划(每3-5天为一个阶段,阶段结束时复盘并规划下一阶段)。支持自动日期计算、每日同步、复盘统计、多任务管理、极简指令。当用户说"开一个长期计划"、"今天计划任务"、"阶段复盘"、"滚动下一阶段"、"列出所有计划"时使用。

Archived SourceRecently Updated