Measured entry
cultui-bg-media
background-effectliquid-glassmotion on file
A client-side React background media wrapper that renders either an eager image or an autoplaying muted MP4 video, with light, dark, or no overlay and a video play control. It ships as a shadcn registry TSX file and relies on React, CVA, Tailwind utility classes, and the usual cn helper alias.



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 | 27.0 KB (92.4 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 3.47s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/components/ui/bg-media.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A focused hero-media primitive that mounts cleanly in its configured environment and includes a useful playback control. It needs a shadcn-style setup before it works in a bare project, and its sizing and media-loading choices are opinionated enough to warrant source edits for broader reuse.
Use it if
- You need a full-height hero background that can switch between an image and a muted video.
- Your design calls for a simple light or dark overlay and an exposed video play control.
- Your app already uses shadcn conventions, Tailwind utilities, and a cn class-merging helper.
Skip it if
- You need flexible container sizing rather than the component's opinionated viewport-height hero layout.
- You need responsive image sources, lazy loading, or framework image optimization.
- You need video formats beyond MP4 or robust playback state handling when autoplay is blocked or playback ends.
- You want a decorative image without the component's fixed rounded lower corner.
Install
| Declared dependencies | none declared |
|---|---|
| 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 React and class-variance-authority, configure Tailwind for the component source, provide an equivalent cn class-merging utility, and replace or configure the @ alias used to import that helper. Ensure the client-component directive is supported by your framework.
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 background-effect pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- ruixen-loading-circlegradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 17.7KB
- Bare
- pass
- Prov
- NO
- eldora-hacker-backgrounddark-futuristic
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- ruixen-ripple-circlesgradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- ruixen-dual-tone-rain-backgroundunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 18.4KB
- Bare
- pass
- Prov
- NO
- cultui-lightboardliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 19.6KB
- Bare
- pass
- Prov
- NO
- ruixen-mouse-sparkunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 20.6KB
- Bare
- pass
- Prov
- NO