skills/vue/SKILL.md
Use when editing .vue files, creating Vue 3 components, writing composables, or testing Vue code - provides Composition API patterns, props/emits best practices, VueUse integration, and reactive destructuring guidance
npx skillsauth add onmax/claude-config vueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reference for Vue 3 Composition API patterns, component architecture, and testing practices.
Current stable: Vue 3.5+ with enhanced reactivity performance (-56% memory, 10x faster array tracking), new SSR features, and improved developer experience.
Progressive reference system for Vue 3 projects. Load only files relevant to current task to minimize context usage (~250 tokens base, 500-1500 per sub-file).
Use this skill when:
.vue componentsuse* functions)Use nuxt skill instead for:
For styled UI components: use nuxt-ui skill
For headless accessible components: use reka-ui skill
For VueUse composables: use vueuse skill
| Working on... | Load file |
| ------------------------ | ---------------------------- |
| .vue in components/ | references/components.md |
| File in composables/ | references/composables.md |
| File in utils/ | references/utils-client.md |
| .spec.ts or .test.ts | references/testing.md |
| TypeScript patterns | references/typescript.md |
| Vue Router typing | references/router.md |
| Reactivity (ref, watch) | references/reactivity.md |
| Custom directives | references/directives.md |
| Provide/inject | references/provide-inject.md |
| Edge cases, vue-tsc | references/gotchas.md |
Consider loading these reference files based on your task:
components/ or writing .vue filesuse* functions)utils/ or writing client utilities.spec.ts or .test.ts filesDO NOT load all files at once. Load only what's relevant to your current task.
<script setup lang="ts">
const { count = 0 } = defineProps<{ count?: number }>()
const emit = defineEmits<{ update: [value: number] }>()
</script>
<template>
<button @click="emit('update', count + 1)">
Count: {{ count }}
</button>
</template>
references/components.md - Props with reactive destructuring, emits patterns, defineModel for v-model, slots shorthand
references/composables.md - Composition API structure, VueUse integration, lifecycle hooks, async patterns, reactivity gotchas
references/utils-client.md - Pure functions, formatters, validators, transformers, when NOT to use utils
references/testing.md - Vitest + @vue/test-utils, component testing, composable testing, router mocking
references/typescript.md - InjectionKey for provide/inject, vue-tsc strict templates, tsconfig settings, generic components
references/router.md - Route meta types, typed params with unplugin-vue-router, scroll behavior, navigation guards
references/reactivity.md - ref, reactive, computed, watch, watchEffect, reactivity fundamentals
references/directives.md - Custom directive hooks, v-focus, v-click-outside, v-tooltip patterns
references/provide-inject.md - InjectionKey typing, app-level provide, readonly patterns
references/gotchas.md - Common gotchas, vue-tsc edge cases, hydration issues, race conditions (from vuejs-ai/skills)
development
Iterative writing loop. Gemini 3 Pro writes, Claude Agent SDK reviews autonomously. Use for blog posts, docs, technical content needing quality iteration.
documentation
Conversational PRD writer - interview, scope, write, then create Linear/GitHub issue. Use when planning a new feature or product requirement.
tools
Design and implement web animations that feel natural and purposeful. Use this skill proactively whenever the user asks questions about animations, motion, easing, timing, duration, springs, transitions, or animation performance. This includes questions about how to animate specific UI elements, which easing to use, animation best practices, or accessibility considerations for motion. Triggers on: easing, ease-out, ease-in, ease-in-out, cubic-bezier, bounce, spring physics, keyframes, transform, opacity, fade, slide, scale, hover effects, microinteractions, Framer Motion, React Spring, GSAP, CSS transitions, entrance/exit animations, page transitions, stagger, will-change, GPU acceleration, prefers-reduced-motion, modal/dropdown/tooltip/popover/drawer animations, gesture animations, drag interactions, button press feel, feels janky, make it smooth.
development
Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.