🔐 OTP RS

🎬 Demo
| Framework | Live Demo |
|---|---|
| Yew | |
| Dioxus | |
| Leptos |
📜 Intro
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.
🤔 Why OTP RS?
- 🎨 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.
Y Yew Usage
Refer to our guide to integrate this component into your Yew app.
🧬 Dioxus Usage
Refer to our guide to integrate this component into your Dioxus app.
🌱 Leptos Usage
Refer to our guide to integrate this component into your Leptos app.
🤝 Contributions
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.
📜 License
OTP RS is licensed under the MIT License. You are free to use, modify, and distribute this library in your projects.