Measured entry
ruixen-visualizer-button
buttonliquid-glassmotion on file
A client-side React play and pause control with an animated canvas equalizer and liquid-glass styling. It ships as a shadcn registry component, imports Motion, and relies on browser Audio, Web Audio, and canvas APIs. The supplied audio URL must allow cross-origin playback for real visualization.



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 | 2 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 1 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 64.0 KB (129.5 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
CONSOLE
Access to audio at 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3' from origin 'http://127.0.0.1:44939' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
CONSOLE
Failed to load resource: net::ERR_FAILED
BARE BUILD
Access to audio at 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3' from origin 'http://127.0.0.1:33961' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Verdict
A polished concept with a self-contained visual treatment, but it is not production-ready unchanged. Fix the button labeling and focus behavior, use a compatible audio host, and investigate the inconsistent larger-viewport captures before adopting it.
Use it if
- You need a compact audio preview control with play and pause feedback.
- Your app runs this component on the client and can serve a CORS-enabled audio source.
- You are prepared to add an accessible name and visible keyboard focus treatment.
Skip it if
- You need an accessible control without modifying the source, since the button has no discernible name.
- Your audio host does not permit cross-origin playback, because the control can appear active even when playback fails.
- You need verified responsive rendering now, since the harness produced blank captures at larger viewports.
- You cannot accept the added Motion dependency and continuous canvas animation.
Install
| Declared dependencies | motion |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn React project, add Motion, place the file behind a client boundary, and provide a CORS-enabled audio URL. No shadcn provider is required. Add an accessible label, keyboard focus styling, and playback error handling before release.
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/ruixenui/ruixen.comAlternatives
Other published entries for the button pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- neu-buttonneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- clay-buttonclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.2KB
- Bare
- pass
- Prov
- NO
- tripled-animated-radio-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 58.2KB
- Bare
- pass
- Prov
- NO
- ruixen-glow-link-buttonliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 58.9KB
- Bare
- pass
- Prov
- NO
- tripled-mood-gradient-button-shadcnuigradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 59.2KB
- Bare
- pass
- Prov
- NO
- ruixen-glass-ai-cardliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 59.5KB
- Bare
- pass
- Prov
- NO