Measured entry
cultui-hover-video-player
video-playerliquid-glassmotion on file
A client-side React video preview delivered as a shadcn registry source file. It plays native or Vimeo video on hover or touch, with thumbnails, animated overlays, controls, Picture-in-Picture, cropping, and an aspect-ratio wrapper. It relies on Next.js Image, Motion, Lucide icons, Tailwind utilities, and local shadcn cn, Button, and Slider modules.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 89.8 KB (155.2 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 28.32s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/components/ui/hover-video-player.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
Capable and verified in the prepared harness, with responsive mounting and no detected accessibility violations. The interaction set is broad for a hover preview, but the dependency footprint is substantial and bare mounting fails. It needs a shadcn-style setup, so adopt it when its controls or Vimeo support justify the integration work.
Use it if
- You need media cards that preview on pointer hover and remain operable through touch controls on mobile.
- You want thumbnail, loading, paused, and hover overlays that can be supplied as application-specific React content.
- You need optional playback, volume, progress, and Picture-in-Picture controls in the same component.
- Your product mixes native video files and Vimeo embeds and can permit Vimeo's runtime player script.
Skip it if
- You need a lightweight teaser that only swaps an image for a muted video, since this component carries a substantial dependency footprint.
- Your app is not based on Next.js and you do not want to replace its Image integration.
- Your design system cannot supply shadcn-compatible Button, Slider, class merging, and Tailwind theme utilities.
- Your content policy blocks the Vimeo player script and Vimeo support is a requirement.
Install
| Declared dependencies | motion, radix-ui |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add Motion, Lucide React, Tailwind styling, a class-name merge helper matching cn, and compatible Button and Slider components backed by Radix. Provide Next.js Image or replace it with your framework's image component. Preserve the client-only boundary, support the referenced Tailwind theme utilities, and allow the Vimeo player script when embeds are used.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/nolly-studio/cult-uiAlternatives
Other published entries for the video-player pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- kibo-video-playerminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 73.5KB
- Bare
- pass
- Prov
- NO
- hextaui-video-playerminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.5KB
- Bare
- fail
- Prov
- NO