Video Player
A video player with its own controls in place of the browser default: play, a scrub bar with buffering and a hover time, mute, volume and keyboard shortcuts. Press fullscreen and the player grows out of its place on the page to fill the screen, then flies back when you close it, and the video never stops playing.
One of 104 GSAP components in React, Vue and HTML.
On mobile
Take the free components with you.













In React, Vue and HTML, in your inbox, ready when you're back at your desk.
How it's built.
Custom video players usually break at fullscreen. The browser takes over with a hard cut, and the player you built disappears behind the native one. So this one never leaves the page: the frame grows from its slot to fill the screen and flies back when you close it, and the video keeps playing the whole way because nothing about it is moved or reloaded, only the frame around it changes. The first version moved the video itself and it paused every time. The captions were the other lesson. Browsers draw them at the bottom, which is exactly where a control bar sits, so the player draws its own captions in a line above the bar and moves them down when the bar hides.
Everything the native video element knows is a real control here: muted, loop, play inline on a phone, preload, captions. Set them on the video tag or on the player, and the buttons follow the element, so a mute button always tells the truth. Every button has a key, a hidden line tells screen readers what just changed, and after the film ends the big button turns into replay. Past that it is yours: the corner radius, the backdrop, and the flight itself.
What you'll need.
Install
- GSAP
- Flip
- CustomEase
Attributes, tips, use cases and full code are part of access.
The preview and provenance stay public. Tune-it docs, the data-anm-* attribute table, real-world use cases and the copy-ready code unlock the moment you sign in.
Frequently asked
- Does Video Player work with React and Vue?
- Video Player ships as React (Next.js included), Vue 3 (Nuxt included), plain HTML/CSS/JS - the same animation in each format. The React version uses the official useGSAP hook with cleanup handled; the Vue version is a real single-file component with <script setup>.
- Do I need GSAP to use Video Player?
- Yes. Video Player is built on GSAP directly, and GSAP has been 100% free for commercial use, including every plugin, since version 3.13. The component page lists exactly what to install.
- Can I customize Video Player without editing code?
- Video Player exposes 12 tunable controls in the Customize panel on this page - drag the values, watch the live preview respond, and the code you copy carries your exact settings.
- Is Video Player free?
- Video Player is part of the Annnimate Library, a paid subscription (from EUR 29/month billed quarterly, or EUR 249/year). The live preview and customization run free on this page; the paste-ready code is for members.
- What if Video Player is not right for my project?
- Annnimate comes with a 14-day money-back guarantee. If Video Player or the library does not fit your project, reply to your receipt within 14 days for a full refund, no questions asked.
- Can I use Video Player in client projects?
- Yes. The Annnimate license covers commercial and client work - ship Video Player on as many projects as you build, with no attribution required.
- Does Video Player respect prefers-reduced-motion?
- Yes. Every Annnimate component handles prefers-reduced-motion via gsap.matchMedia, so users who opt out of motion get an effectively instant, readable state.
