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.

Specimen
Motion capture of the mounted demo, recorded by the harness. No audio track.
Harness screenshot of ruixen-scroll-ruler at 375 pixels wide
Harness screenshot at 375 pixels wide. This viewport scrolled sideways.
Harness screenshot of ruixen-scroll-ruler at 768 pixels wide
Harness screenshot at 768 pixels wide. This viewport scrolled sideways.
Harness screenshot of ruixen-scroll-ruler at 1440 pixels wide
Harness screenshot at 1440 pixels wide. This viewport scrolled sideways.

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.

Harness measurements recorded for ruixen-scroll-ruler
BuildOK
MountOK
Console errors0
Uncaught page errors0
Horizontal overflowflagged at 375, 768, 1440
Axe critical0
Axe serious1
Axe moderate0
Axe minor0
Gzip marginal62.7 KB (128.2 KB build, 65.5 KB baseline)
Bare modeOK
Provider requiredNO
Demo usedwritten 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

Installation record for ruixen-scroll-ruler
Declared dependenciesmotion
Missing on installnone
Bare installbuilds and mounts without the shadcn-style helpers
Providerno 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.

Alternatives

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.