skills/vuetifyjs/0/vuetify0

vuetify0

SKILL.md

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:

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

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 createSelectionManual provide/inject → Use createContextSSR 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

Weekly Installs
87
Repository
vuetifyjs/0
GitHub Stars
87
First Seen
Feb 4, 2026
Installed on
opencode79
codex76
gemini-cli75
github-copilot73
amp71
kimi-cli71