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 — Headless
    47 behavioral primitives — Dialog, Sheet, Popover, Combobox, Slider, Swiper, Sortable, and more. State, focus, keyboard, gestures. You bring the styles.
  • @vyui/kit — Styled
    47 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 freely
    Import 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 code
    shadcn-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.
  • iOS
    Native UIView rendering via Lynx Explorer or your own LynxView host.
  • Android
    Native View rendering — ship inside your Android app via the Lynx runtime.
  • Web
    Lynx 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.