| Framework | Live Demo |
|---|---|
| Yew | |
| Dioxus | |
| Leptos |
A highly customizable, accessible OTP (One-Time Password) input component for WASM frameworks: Yew, Dioxus, and Leptos.
Supports animated per-slot digit entry with automatic focus traversal, primary and secondary visual variants, built-in HOTP/TOTP validation per RFC 4226 and RFC 6238, and full WCAG compliance.
- π¨ Fully Customizable: Control every attribute, class, style, variant, pattern, ARIA labels and more, on the outermost container, each group, each slot, and each separator.
- β¨ Smart Focus Management: Typing a digit automatically advances focus. Backspace regresses focus. Arrow keys navigate left and right.
- β¨ Animated Entry: Each digit pops with a scale animation when entered, and a blinking caret is shown in the active empty slot.
- π Built-in Validation: Validate against HOTP (RFC 4226) or TOTP (RFC 6238) using a pure-Rust implementation, no C, no external crypto crates.
- βΏ Accessible by Default:
role="group",aria-label,inputmode,autocomplete="one-time-code", disabled/invalid data-attributes all wired up automatically. - π§© Framework Agnostic: Same API semantics across Yew, Dioxus, and Leptos.
Refer to our guide to integrate this component into your Yew app.
Refer to our guide to integrate this component into your Dioxus app.
Refer to our guide to integrate this component into your Leptos app.
Contributions are welcome! Whether it's bug fixes, feature requests, or examples, we would love your help to make OTP RS better.
- Fork the repository.
- Create a new branch for your feature/bugfix.
- Submit a pull request for review.
OTP RS is licensed under the MIT License. You are free to use, modify, and distribute this library in your projects.
