vmk-ui-kit/vue предоставляет официальный Vue 3 adapter. Используйте его компоненты вместо ручной разметки kit-классов.
import "vmk-ui-kit/dist/css/kit.css";
import "vmk-ui-kit/dist/assets/fonts/phosphor-icons/src/css/icons.css";
import { GnButton, GnInput, GnModal } from "vmk-ui-kit/vue";
import { createApp } from "vue";
import { VMKUiVue } from "vmk-ui-kit/vue";
import App from "./App.vue";
createApp(App).use(VMKUiVue).mount("#app");
<script setup>
import { ref } from "vue";
import { GnButton, GnTabs } from "vmk-ui-kit/vue";
const tab = ref("overview");
const tabs = [
{ id: "overview", label: "Overview", icon: "ph-chart-bar" },
{ id: "activity", label: "Activity", icon: "ph-clock" }
];
</script>
<template>
<GnButton variant="secondary" icon="ph-plus">Create</GnButton>
<GnTabs v-model="tab" :items="tabs">
<template #overview>Overview content</template>
<template #activity>Activity content</template>
</GnTabs>
</template>
Все icon props должны использовать префикс ph-:
<GnButton icon="ph-house" /> <GnButton icon="ph-bold ph-spinner" loading />
Оберните приложение один раз:
<template>
<GnToastProvider>
<RouterView />
</GnToastProvider>
</template>
Используйте composable внутри потомков:
import { useToast } from "vmk-ui-kit/vue";
const toast = useToast();
toast.success({ title: "Saved", text: "Changes applied" });
npm run build:vue
Выход: dist/vue/index.js.