计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
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 快照 · 自动分类 · 以原作者文档为准
Transform Vue 3 apps with unstyled, logic-focused building blocks for design systems.
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'
Before writing custom logic, check if v0 already provides it:
| Need | Use | Guide |
|---|---|---|
| Single item selection | createSingle | Single selection patterns |
| Multi-item selection | createSelection | Multi selection patterns |
| Selection with "select all" | createGroup | Group patterns |
| Step wizard / carousel | createStep | Stepper patterns |
| Form validation | createForm | Form patterns |
| Shared state (provide/inject) | createContext | Context patterns |
| Browser utilities | See utilities | Browser & DOM patterns |
Full API reference: See REFERENCE.md
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
// 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()
// Type-safe provide/inject
const [useTheme, provideTheme] = createContext<Theme>('Theme')
const form = createForm()
form.register({ id: 'email', rules: [required, email] })
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
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