Measured entry
ruixen-scroll-ruler
inputgradient-glowmotion on file
A client-side React value scrubber presented as a horizontal ruler with snapping ticks, drag and wheel control, spring motion, and optional detent sounds. It ships as shadcn registry source, uses Tailwind utility classes and Motion, and calls browser pointer, wheel, and Web Audio APIs.



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, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 1 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 62.7 KB (128.2 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A polished interaction concept that builds and mounts independently, but it is not production-ready unchanged. The light-background captures are largely unreadable, every tested viewport overflowed, and the contrast audit failed. Add slider semantics and keyboard input before shipping.
Use it if
- You need a compact scrubber for bounded values such as angle, zoom, or adjustment controls.
- Your interface is dark and can accommodate its fixed white and neutral styling.
- Pointer-first interaction and optional audible detents fit the surrounding product experience.
Skip it if
- You need a keyboard-operable, semantic slider without adding accessibility behavior yourself.
- The control must work unchanged on a light background, where key marks and the value can disappear.
- Your layout cannot tolerate horizontal overflow or requires dependable rendering across container widths.
- Adding Motion for one input is not justified by your dependency budget.
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 |
Copy the client component into the project, install Motion, and configure Tailwind to scan the file. Keep it client-rendered because it uses browser input and audio APIs. Non-shadcn projects need no provider, but should replace the fixed color utilities, constrain overflow, and add slider semantics, focus styles, and keyboard handling.
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 input pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- clay-inputclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- neu-search-inputneumorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.1KB
- Bare
- pass
- Prov
- NO
- clay-search-inputclaymorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 18.3KB
- Bare
- pass
- Prov
- NO
- originui-comp-33minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 20.7KB
- Bare
- pass
- Prov
- NO
- hextaui-labelminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.3KB
- Bare
- pass
- Prov
- NO
- ruixen-circular-stepper-inputliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 61.1KB
- Bare
- pass
- Prov
- NO