My first ever real OSS project π. Be kind, Iβm still figuring this out. A flexible and customizable video player UI toolkit for React Native.
π Full Documentation: https://react-native-video-toolkit-docs.vercel.app/
- π± Demo
- β¨ Features
- β Platform Compatibility
- πΊοΈ Roadmap
- π¦ Installation
- π Usage
- π Issues
- π€ Contributing
- π License
Tip
The demo app is available in the example folder.
Clone the repo and run yarn example start inside the example directory to see the latest changes.
You can also download the demo app from the release builds.
| Mode | Preview |
|---|---|
| Portrait | ![]() |
| Landscape | ![]() |
| Landscape (with settings) | ![]() |
- Fully Customizable UI β Build your own video player experience with modular components.
- Theming Support β Light, dark, or your own custom theme.
- Pre-built Layouts β Includes
DefaultLayoutto get started quickly. - Gesture Handling β Tap, double-tap, and other common playback gestures.
- Rich Component Library β Controls like
PlayButton,ProgressBar,TimeDisplay,FullscreenButton,MuteButton, and more. - Hooks-based API β Access player state and control playback, settings, and gestures.
| Platform | Tested |
|---|---|
| Android | β |
| iOS | β |
| Android TV | β |
| Apple TV | β |
| Web | β |
- Core Player component
- Customizable controls
- Theming support
- Gesture handling
- Settings menu
- Layout presets (
DefaultLayout) - Fullscreen support
- Landscape mode support
- TV support (D-pad navigation)
- Picture-in-Picture (PiP) mode
- More advanced layouts (YouTube/Netflix-style)
npm install react-native-video-toolkit
# or
yarn add react-native-video-toolkitimport { VideoPlayer, DefaultLayout } from 'react-native-video-toolkit';
const App = () => {
return (
<VideoPlayer source={{ uri: 'https://example.com/video.mp4' }}>
<DefaultLayout />
</VideoPlayer>
);
};For more docs: π Documentation website.
Yes, there are bugs. Probably lots. π Open an issue. It makes the project look active, so actuallyβ¦ thanks in advance.
Wanna help? Please? π Check the contributing guide. Iβll try to review your PR before I spiral into existential dread.
MIT β because lawyers are scary.
Made with create-react-native-library Thanks to wuxnz for motivation (and maybe trauma) Thanks to zach for the docs template
Made with β€οΈ, caffeine, and way too many Chrome tabs by Durgesh


