Rxova
Skip to content

Quick start

Every rxova input is a controlled component: give it a value and an onChange (or the component’s equivalent) and it behaves like any other form field. Here’s one of each.

import { useState } from 'react'
import { CurrencyInput } from '@rxova/react-intl-currency-input'
import { Rating } from '@rxova/react-rating-input'
import { OtpInput } from '@rxova/react-otp-input'
function Example() {
const [price, setPrice] = useState<number | null>(null)
const [score, setScore] = useState(0)
const [code, setCode] = useState('')
return (
<>
<CurrencyInput locale="en-US" currency="USD" value={price} onValueChange={setPrice} />
<Rating value={score} onChange={setScore} precision={0.5} label="Rate your meal" />
<OtpInput length={6} value={code} onChange={setCode} />
</>
)
}

Each component’s own page has live, editable examples and its full prop reference:

  • Currency input — locale-aware money entry with no cursor bugs.
  • Rating input — any icon, any precision, accessible.
  • OTP input — one-time-code entry with paste and WebOTP support.

From there, the shared guides cover the cross-cutting concerns: Accessibility, Styling, and Form libraries.