Comparación de Librerías
¿Cómo se compara Vue OTP Pro con otras librerías OTP para Vue 3? Aquí tienes una comparación detallada.
| Feature | Vue OTP Pro | PrimeVue | vue3-otp-input | Syncfusion | @healerlab |
|---|---|---|---|---|---|
| General | |||||
| License | MIT (Free) | MIT (Free) | MIT (Free) | Commercial* | MIT (Free) |
| Bundle size | ~3 KB gz | Tree-shaking | ~5 KB | ~877 KB pkg | ~21 KB |
| Weekly downloads | New | ~470K (suite) | ~27K | ~7.5K (suite) | ~350 |
| Standalone package | yes | no | yes | no | yes |
| Vue 3 Composition API | yes | yes | yes | yes | yes |
| TypeScript | Full types exported | yes | partial | yes | Broken types field |
| Features | |||||
| Props count | 18 | 4 core | 11 | 10+ | 15 |
| v-model support | yes | yes | v-model:value | value + events | Callbacks only |
| Partial v-model sync | yes | no | Broken | no | no |
| Exposed methods | 4 (clear, fill, focus, focusInput) | no | 2 (clear, fill) | no | 1 |
| Slot support | Separator slot | 1 default slot | no | no | no |
| Separator | String + slot | Slot workaround | Component | String | String + position |
| Auto-focus | yes | no | yes | no | yes |
| Focus order enforcement | yes | no | yes | no | no |
| Readonly mode | yes | yes | no | no | yes |
| Composable API | useOtp() | no | no | no | no |
| Per-input conditional class | Array or function | Via slot | Array only | no | no |
| AI / LLM docs (llms.txt) | yes | no | no | no | no |
| Theming & Styling | |||||
| Built-in themes | 11 themes | 10+ presets (suite) | no | 8 themes | Color props |
| Color variants | 5 variants | Via theme system | no | 3 CSS classes | no |
| Size presets | 4 sizes (sm-xl) | Via theme | no | no | no |
| CSS custom properties | 15+ variables | Via theme system | no | Via theme | no |
| Dark mode | CSS variables | yes | Manual CSS | High Contrast theme | no |
| Animations | Pop, shake, pulse | no | no | Ripple effect | no |
| Input Handling | |||||
| Paste support | yes | yes | Basic | Not documented | yes |
| Paste delimiter filtering | Auto-filtered | no | no | no | no |
| IME / Chinese input | Handled | no | Broken | Not documented | no |
| iOS SMS autofill | yes | Partial | yes | Not documented | Not documented |
| Accessibility | |||||
| ARIA labels | Per-input aria-label | Inherited | no | Per-input ariaLabels | no |
| role="group" | yes | no | no | yes | no |
| Keyboard navigation | Full (arrows, tab, enter) | yes | yes | yes | Not documented |
| Screen reader tested | yes | Partial | no | WCAG 2.2, Section 508 | no |
| autocomplete="one-time-code" | yes | no | no | no | no |
* Syncfusion is free under Community License (<$1M revenue, ≤5 devs). Otherwise requires a paid commercial license.