About
HeroUI v3 InputOTP — segmented one-time-password input: digit counts, patterns, disabled, controlled, validation, on-complete, form integration, variants and on-surface.
Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds HeroUI Input OTP to your project and fits it to your theme.
Code
How HeroUI Input OTP is used: the demo's code. The component's own source comes with a free account.
Usage.tsx
import { InputOTP } from "@/components/ui/heroui-input-otp"
import { Label } from "@heroui/react"
export default function Variants() {
return (
<div className="flex flex-col gap-6">
<div className="flex flex-col gap-2">
<Label>Primary variant</Label>
<InputOTP maxLength={6} variant="primary">
<InputOTP.Group>
<InputOTP.Slot index={0} />
<InputOTP.Slot index={1} />
<InputOTP.Slot index={2} />
</InputOTP.Group>
<InputOTP.Separator />
<InputOTP.Group>
<InputOTP.Slot index={3} />
<InputOTP.Slot index={4} />
<InputOTP.Slot index={5} />
</InputOTP.Group>
</InputOTP>
</div>
<div className="flex flex-col gap-2">
<Label>Secondary variant</Label>
<InputOTP maxLength={6} variant="secondary">
<InputOTP.Group>
<InputOTP.Slot index={0} />
<InputOTP.Slot index={1} />
<InputOTP.Slot index={2} />
</InputOTP.Group>
<InputOTP.Separator />
<InputOTP.Group>
<InputOTP.Slot index={3} />
<InputOTP.Slot index={4} />
<InputOTP.Slot index={5} />
</InputOTP.Group>
</InputOTP>
</div>
</div>
)
}
















