Motion you can actually ship.
Veltrix is a motion library for React Native. Every component treats motion as part of the interaction, not decoration: controls, gestures, transitions, shaders, charts, loaders, and text effects you can copy straight into an existing app.
Each component ships with the same behavior in two implementations:
- StyleSheet for portability
- Uniwind for composition
Visit Veltrix documentation to browse the catalog, see each component in action, and get the installation steps, examples, and API reference for both renderers.
The catalog ships with 33 components across 9 categories:
gestures— 8skia-shaders— 6loading— 4data-visualization— 4cards— 4text-input— 3media— 2onboarding— 1navigation— 1
Every entry is a self-contained folder you can copy into your app.
Each component is a self-contained folder with the shared behavior and the two renderer implementations:
components/{category}/{id}/
├── config.ts # defaults and tunable constants
├── types.ts # public props and shared types
├── use-{id}.ts # shared behavior, state, and gestures
├── stylesheet/ # StyleSheet renderer
└── uniwind/ # Uniwind (Tailwind v4) renderer
The same behavior lives once; only the static composition differs per renderer.
Components are tagged with a stability level so you know what to expect before copying them in:
- Baseline — 12 battle-tested components with a stable API.
- Advanced — 21 components for richer motion; same contract, more moving parts.
- Expo and React Native
- Reanimated and Gesture Handler for motion and gestures
- Skia for shader-driven surfaces
- Worklets, Victory Native, and Tailwind v4/Uniwind where a component needs them
- Motion as part of the interaction, with gestures, transitions, and shaders
- Same behavior and API in StyleSheet and Uniwind
- Copy-paste components with the dependencies already listed
- Interactive previews in the native catalog app
This repository is a monorepo: apps/native is the Expo catalog with
interactive previews, and apps/website is the Next.js documentation site.
Run everything with pnpm check-types, the native app with pnpm dev, and
the website with pnpm dev:website.