界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

vuetify0

vuetify0

【效率与协作】Build with @vuetify/v0 headless composables and components for Vue 3. Use when creating selection state (single, multi, grouped, stepped), form validation, tab/dialog/popover UI, provide/inject context, registries, virtual scrolling, pagination, keyboard shortcuts, resize observers, theming, breakpoints, or SSR-safe browser detection. Triggers on v0,…

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: vuetify0 description: Build with @vuetify/v0 headless composables and components for Vue 3. Use when creating selection state (single, multi, grouped, stepped), form validation, tab/dialog/popover UI, provide/inject context, registries, virtual scrolling, pagination, keyboard shortcuts, resize observers, theming, breakpoints, or SSR-safe browser detection. Triggers on v0, vuetify0, headless components, or WAI-ARIA patterns.

Vuetify0 - Headless Composables & Components

Transform Vue 3 apps with unstyled, logic-focused building blocks for design systems.

Quick Start

pnpm install @vuetify/v0

No global plugin required. Import only what you need:

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

Core Decision Tree

Before writing custom logic, check if v0 already provides it:

NeedUseGuide
Single item selectioncreateSingleSingle selection patterns
Multi-item selectioncreateSelectionMulti selection patterns
Selection with "select all"createGroupGroup patterns
Step wizard / carouselcreateStepStepper patterns
Form validationcreateFormForm patterns
Shared state (provide/inject)createContextContext patterns
Browser utilitiesSee utilitiesBrowser & DOM patterns

Full API reference: See REFERENCE.md

Component Architecture

All components are headless (unstyled) and follow WAI-ARIA patterns:

<script setup>
import { Tabs } from '@vuetify/v0/components'
</script>

<template>
  <Tabs.Root v-model="active">
    <Tabs.List>
      <Tabs.Item value="overview">Overview</Tabs.Item>
    </Tabs.List>
    <Tabs.Panel value="overview">Content</Tabs.Panel>
  </Tabs.Root>
</template>

Available components: Dialog, Tabs, ExpansionPanel, Checkbox, Radio, Popover, Pagination

Component examples: See component-examples.md

Essential Patterns

Selection State

// Single selection (tabs, theme picker)
const single = createSingle({ mandatory: 'force' })

// Multi-selection (tags, filters)
const selection = createSelection({ multiple: true })

// Group with "select all" (data tables)  
const group = createGroup()

Context Sharing

// Type-safe provide/inject
const [useTheme, provideTheme] = createContext<Theme>('Theme')

Form Validation

const form = createForm()
form.register({ id: 'email', rules: [required, email] })

Anti-Patterns

Don't reinvent these wheels:

❌ Custom selection logic → Use createSelection ❌ Manual provide/inject → Use createContext ❌ SSR checks → Use IN_BROWSER constant

Detailed anti-patterns: See anti-patterns.md

Development Tools

Generate common patterns:

python scripts/scaffold_pattern.py --type selection --output ./composables

Check for anti-patterns:

python scripts/check_patterns.py ./src

Vuetify MCP for structured API access:

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

Resources

我的收藏