@vyui/kit
@vyui/kit is the styled layer. 45 drop-in Vy* components built on top of @vyui/core, with a Tailwind Variants theme you can override at any point.
What you get
- 48 styled components — VyButton, VyDrawer, VyModal, VyToast, VyIsland, VyTabs, VySlider, and more.
- Tailwind Variants theme — per-component theme files under
packages/kit/src/theme. Override slots, variants, and defaults without forking. createTv+tv()— re-exported from@vyui/kitso you can compose your own variants with the same DX as Nuxt UI or shadcn.- Runtime app config — pass overrides to the
VyUIplugin at mount time. No build step. Theme keys deep-merge into defaults.
When to use it
Use @vyui/kit if you want to ship fast with sensible defaults. Kit gives you styled Vy* components on top of core, ready to drop into a Lynx app.
You still get the full core layer
@vyui/core is a dependency of @vyui/kit, so installing kit brings core with it — you don't choose one or the other. Use the styled Vy* components for the common case, and drop down to the headless primitives whenever you need full control over markup:
<script setup>
// Styled, opinionated:
import { VyModal } from '@vyui/kit'
// Headless, from the same install:
import { DialogContent, DialogRoot, DialogTrigger } from '@vyui/core'
</script>
A few unstyled primitives that have nothing to theme — AspectRatio, Icon, and the keyboard-aware helpers — are re-exported from kit under Vy* aliases for convenience. Everything else lives in @vyui/core, and the Components reference marks which layer each component belongs to.
Example
import { createApp } from '@lynx-js/vue'
import { VyUI } from '@vyui/kit'
import '@vyui/kit/style.css'
import App from './App.vue'
createApp(App).use(VyUI).mount('#app')
<script setup>
import { VyButton, VySlider } from '@vyui/kit'
import { ref } from 'vue'
const value = ref(50)
</script>
<template>
<VySlider v-model="value" :max="100" />
<VyButton variant="solid" color="primary">Save</VyButton>
</template>