A branded video player component with usable playback controls for demos, case-study videos, captions, and product proof.

Custom Video Player gives product demos and case-study videos branded controls without making playback harder.
Use it when a video section needs source, poster, captions, visible controls, keyboard operation, and loading states that match the brand system. The page job is watched proof: the player should make the demo easier to trust and operate.
The thing to watch is inaccessible media chrome. Custom controls must preserve play/pause, mute, seek, captions, focus order, keyboard shortcuts where supported, and a plain fallback if custom UI fails.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
You can preview it now. Upgrade to Pro for instant install access.
A product demo page can use Custom Video Player when the video is a proof asset: poster loads fast, captions are available, controls are visible, and keyboard users can operate playback without guessing.
Not for videos that need native reliability more than branded chrome, or for pages where captions, controls, or fallback playback cannot be verified.
Load the poster first, avoid blocking surrounding content on video metadata, and lazy-load heavy media only when the section is likely to be used.
Expose every control to keyboard users, keep captions available where provided, preserve focus order, and avoid hover-only playback controls on touch screens.
| Prop | Type | Default | Description |
|---|---|---|---|
autoPlay | boolean | true | Starts playback automatically when allowed. |
startMuted | boolean | true | Initial muted state. |
showCloseButton | boolean | true | Shows the close button on the player. |
rounded | boolean | false | Rounds the player frame when not fullscreen. |
preserveAspectRatio | boolean | true | Uses object-contain instead of object-cover for the video. |
hideControlsDelay | number | 1800 | Delay before controls auto-hide, in milliseconds. |
It controls actual media. Playback, captions, focus, and loading behavior matter more than the animation around the controls.
Controls need accessible names, keyboard focus, visible focus states, caption access where captions exist, and predictable play/pause state.
Avoid autoplay unless the video is muted, non-essential, and does not interfere with reduced-motion or user control expectations.
Yes. A custom version should define content structure, accessibility behavior, motion rules, reduced-motion behavior, source handoff, and implementation notes for the specific page job.
Need a custom effect? Tell us what to create.