Claude Code Plugins

Community-maintained marketplace

Feedback

nuxt-components

@leeovery/claude-nuxt
1
0

Vue component patterns with Composition API and script setup. Use when creating components, understanding script setup order convention, organizing component directories, or implementing component patterns like slideovers, modals, and tables.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name nuxt-components
description Vue component patterns with Composition API and script setup. Use when creating components, understanding script setup order convention, organizing component directories, or implementing component patterns like slideovers, modals, and tables.

Nuxt Components

Vue 3 Composition API components with standardized organization and patterns.

Core Concepts

components.md - Script setup order, patterns, organization

Directory Structure

components/
├── Common/       # Shared utilities (Copyable, LoadingLine)
├── Detail/       # Entity detail views (PostDetail)
├── Form/         # Reusable form inputs (AuthorSelect)
├── Modals/       # Confirmation/action modals
├── Nav/          # Navigation elements
├── Slideovers/   # Slideout panels (CreatePostSlideover)
├── TabSections/  # Tab content sections
└── Tables/       # Data tables (PostsTable)

Script Setup Order

<script lang="ts" setup>
// 1. Imports
import createPostActionFactory from '~/features/posts/actions/create-post-action'

// 2. Props & Emits
const props = defineProps<{ author?: Author }>()
const emits = defineEmits<{ close: [success: boolean] }>()

// 3. Composables
const flash = useFlash()

// 4. Injections
const slideover = inject(SlideoverKey)

// 5. Refs
const formRef = useTemplateRef('formRef')

// 6. Toggles
const isOpen = ref(false)

// 7. Reactive props
const formData = ref<CreatePostData>({ title: '', content: '' })

// 8. Computed
const canSubmit = computed(() => formData.value.title && formData.value.content)

// 9. Fetch + queries
const { data: posts, refresh } = getPostsQuery(filters)

// 10. Builders (action/mutation factories)
const createPostAction = createPostActionFactory()

// 11. Watchers
watch(selectedAuthor, (a) => { formData.value.authorId = a?.ulid || '' })

// 12. Methods
const onSubmit = async (data) => { await createPostAction(data) }

// 13. Real-time listeners
privateChannel(Posts).on(PostCreated, refresh)

// 14. Provides
provide(SlideoverKey, { isOpen })

// 15. Lifecycles
onMounted(() => { /* ... */ })
</script>