Introduction
Vy UI is a two-layer component system for Vue-Lynx, the Vue bindings for Lynx, ByteDance's open-source native cross-platform framework. It brings Radix-style headless primitives, plus an optional opinionated styled kit, to a runtime that doesn't render HTML.
@vyui/core
45 headless primitives covering state, focus, keyboard, and gestures. You bring the styles.
Status
Vy UI is alpha. In practice that has meant a steady component surface with churn underneath it: component names, props, and slots have held across @vyui/kit 0.3.x and @vyui/core 0.2.x, and the breaking changes so far removed unused exports rather than reshaping APIs.
The moving part is the layer below. Vue-Lynx labels itself pre-alpha, so build and runtime breakage can still reach you from upstream on a minor bump. Pin your versions, read the changelog before upgrading, and treat shipping to production as a judgement about Vue-Lynx's maturity as much as Vy UI's.
What's inside
- Native-first. Primitives target Lynx's
<view>/<text>rendering model, not the DOM. - Zero styling opinions.
@vyui/coreships behavior and you bring the tokens, while@vyui/kitadds a themeable layer when you want one. - Tailwind Variants.
createTv()andtv()are re-exported from kit, so you can extend the theme the way you would with Nuxt UI or shadcn.
What each component page includes
- An interactive browser preview for quickly exploring the component.
- Copyable Vue-Lynx source using the actual package API.
- Complete props, emits, slots, variants, and
uistyling hooks. - Accessibility and native-platform notes.
The reference focuses on the public @vyui/kit surface. When a kit export directly exposes a @vyui/core primitive, the guide calls that out.