Comparison
OTP Input vs input-otp
Measured, not claimed. Sizes are minified and gzipped, against the versions and date shown in the table. Feature notes reflect each project's documentation and public issue tracker on that date — if something has changed, tell us and we'll update this page.
| Measure | OTP Input | input-otp |
|---|---|---|
| Measured on | 2026-09-12 | 2026-09-12 |
| Version | 1.0.0 | 1.5.0 |
| Frameworks | React, Vue, Svelte, plain, web component | React only |
| Approach | real inputs | one hidden input, boxes drawn over it |
Features
| Feature | OTP Input | input-otp |
|---|---|---|
| Works outside React | ||
| Password managers can fill it | open issue #92 | |
| WebOTP for Android Chrome | ||
| reject() for a failed attempt | ||
| Per-box screen-reader labels | single field |
Migrating from input-otp
docs/01-getting-started.md
input-otp is a trademark of its respective owners. Visit input-otp.