Alpha — expect breaking changes
Headless and styled components for Vue-Lynx.
A styled kit built on headless, accessible primitives — rendering natively to iOS, Android, and web from a single Vue codebase.
Two layers, one ecosystem
Pick the level of opinion you want. Drop down to primitives whenever you need to.
- @vyui/core — Headless47 behavioral primitives — Dialog, Sheet, Popover, Combobox, Slider, Swiper, Sortable, and more. State, focus, keyboard, gestures. You bring the styles.
- @vyui/kit — Styled47 styled components on top of @vyui/core — VyButton, VyDrawer, VyModal, VyToast, VyIsland, and more. Themeable via Tailwind Variants and an app-config object.
- Mix them freelyImport styled Vy* components from kit and reach for raw @vyui/core primitives in the same file wherever you need bespoke styling.
- @vyui/cli — Own the codeshadcn-style CLI. vyui add button copies the styled component source into your project — you own and edit it, while headless @vyui/core stays an npm dependency.
One codebase, three targets
Vue-Lynx is ByteDance's open-source native cross-platform framework — the same one powering parts of TikTok.
- iOSNative UIView rendering via Lynx Explorer or your own LynxView host.
- AndroidNative View rendering — ship inside your Android app via the Lynx runtime.
- WebLynx Web target compiles to a browser bundle. Full event parity with native (tap/hover vs click) is on the roadmap.
Component docs are live
Every component has a full reference — props, slots, events, and a live demo running a real Lynx bundle. Source is always one click away when you need more.