rxova
The tricky React inputs, done right. Headless, accessible, zero-dependency
React input components that each solve a problem the ecosystem keeps getting wrong —
correct localized formatting, exact fractional ratings, and a true one-time-code field.
The same design principles throughout: one native <input> where it matters, native
form submission, keyboard and screen-reader support, and a small typed API backed by
tests. No stylesheet to import.
The suite
Section titled “The suite”
Currency
A currency <input> that is correct in every language — Bulgarian spaces,
Japanese yen, Hindi lakhs, Arabic digits — because it reads every locale fact from
Intl.NumberFormat instead of hardcoding “a comma every three digits”. No cursor
jumps.
Rating
Exact partial fills for any icon — SVG, emoji, images or custom JSX — that becomes a fully
accessible input the moment you add onChange. One component, two modes: a
read-only score and an interactive form control.
OTP
A one-time-code input with one native <input> underneath and slots painted
on top — so paste, SMS autofill, IME and native form submission come from the platform, and
you can tap any slot to edit it.
Shared conventions
Section titled “Shared conventions”Every component in the suite emits a plain value from onChange (a number, a number,
and a string respectively), posts natively under name, ships zero runtime
dependencies and no stylesheet, and is documented with a live playground plus an API
reference generated from source with TypeDoc.