Measured entry
cultui-shader-lens-blur
background-effectglassmorphismmotion on file
A client-side React canvas that renders an animated, pointer-reactive lens effect with a custom WebGL shader. It ships as a shadcn registry source file and uses Three.js for rendering, Jotai for shared configuration, Motion for its fade-in, next-themes for color-mode awareness, and utility classes for layout.



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 | flagged at 375 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 188.8 KB (254.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 2.51s error during build: [vite]: Rollup failed to resolve import "next-themes" from "<sandbox>re-2b6a07d489d8/src/cut/components/ui/shader-lens-blur.tsx".
Verdict
It builds and mounts cleanly on its own, and the shader interaction is distinctive enough for a focal visual. Adopt it selectively: the graphics stack is costly for a single effect, the render loop runs continuously, and the narrow layout needs correction before production use.
Use it if
- You need an interactive shader backdrop for a hero, campaign panel, or experimental landing page.
- Your app already carries Three.js or can justify adding a substantial graphics dependency for one visual.
- You want the shader colors, shape variation, interaction mode, and canvas sizing controlled through shared React state.
Skip it if
- You need a lightweight decorative effect and do not otherwise use a WebGL rendering stack.
- Your target includes narrow mobile layouts unless you can correct the observed horizontal overflow.
- You need meaningful nonvisual content rather than a canvas-based ambient graphic.
- You cannot budget continuous animation work or support browsers and devices with reliable WebGL.
Install
| Declared dependencies | motion, three, jotai |
|---|---|
| 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 app, copy the client component, install Motion, Three.js, Jotai, and next-themes, and provide a compatible theme provider. Add Tailwind utility support or replace the layout classes with local CSS, then place the canvas in a width-constrained responsive container and test WebGL fallback behavior.
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