Measured entry
hextaui-auth-two-factor-setup
A client-side two-factor authentication settings card covering setup, enabled status, backup codes, and password-confirmed disabling. It ships as a shadcn registry TSX file and depends on React, Next Image, Lucide icons, the cn utility, and shadcn button, card, field, input-group, separator, and switch primitives.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 1 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 49.7 KB (115.1 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 2m 8s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/blocks/auth/auth-two-factor-setup.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A thorough settings surface with useful enabled and disabled states, but it is integration work rather than finished two-factor authentication. It needs a shadcn-style setup, carries a critical ARIA defect, and adds meaningful client weight. Adopt it only if its broad UI coverage offsets that cleanup.
Use it if
- You already have server-side two-factor enrollment and disable endpoints and need a UI to connect to them.
- Your app uses Next.js and the same shadcn component conventions and theme tokens.
- You need one responsive card for both initial setup and the already-enabled state.
Skip it if
- You need a complete security flow with QR generation, code verification, persistence, and recovery logic included.
- Your project is framework-neutral or cannot accommodate Next Image and shadcn aliases.
- You require an accessibility-clean component without first correcting the unsupported ARIA attribute.
- You want a lean auth form and cannot justify its substantial added client bundle.
Install
| Declared dependencies | next, @radix-ui/react-slot, @radix-ui/react-label, @radix-ui/react-separator, @radix-ui/react-switch |
|---|---|
| Missing on install | next |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add React, Lucide, the required Radix primitives, Tailwind theme tokens, the cn class-merging helper, and local equivalents for every imported UI primitive. Add Next.js for Next Image or replace that image component, then rewrite the path aliases to match your source tree. Supply the authentication APIs, QR and secret generation, verification, backup-code storage, and error handling yourself.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/preetsuthar17/HextaUIAlternatives
Other published entries for the auth-form pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- meraki-auth-sign-in-card-with-side-imageminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 18.9KB
- Bare
- pass
- Prov
- NO
- shadcn-block-login-01minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.3KB
- Bare
- fail
- Prov
- NO
- shadcn-block-login-02minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-login-05minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.9KB
- Bare
- fail
- Prov
- NO
- 8bitcn-login-formskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 33.2KB
- Bare
- fail
- Prov
- NO
- 8bitcn-advanced3skeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 33.3KB
- Bare
- fail
- Prov
- NO