OTP Field
adn-ui/otp-fieldFreeComponent
A one-time password input composed of individual character slots.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/otp-field.jsonSource
1"use client";23import "./otp-field.css";4import { OTPField as BaseOTPField } from "@base-ui/react/otp-field";5import type React from "react";6import { cn } from "tailwind-variants";78import { OTPFieldContext, useOTPFieldContext } from "./otp-field.context";9import { otpFieldVariants, type OTPFieldVariants } from "./otp-field.variants";1011export type OTPFieldRootProps = OTPFieldVariants &12 React.ComponentProps<typeof BaseOTPField.Root>;1314export const OTPFieldRoot = ({ children, className, size, ...props }: OTPFieldRootProps) => {15 const slots = otpFieldVariants({ size });1617 return (18 <OTPFieldContext.Provider value={{ slots }}>19 <BaseOTPField.Root className={cn(slots.root(), className)} {...props}>20 {children}21 </BaseOTPField.Root>22 </OTPFieldContext.Provider>23 );24};2526export type OTPFieldInputProps = React.ComponentProps<typeof BaseOTPField.Input>;2728export const OTPFieldInput = ({ className, ...props }: OTPFieldInputProps) => {29 const { slots } = useOTPFieldContext();30 return <BaseOTPField.Input className={cn(slots.input(), className)} {...props} />;31};3233export type OTPFieldSeparatorProps = React.ComponentProps<typeof BaseOTPField.Separator>;3435export const OTPFieldSeparator = ({ className, ...props }: OTPFieldSeparatorProps) => {36 const { slots } = useOTPFieldContext();37 return <BaseOTPField.Separator className={cn(slots.separator(), className)} {...props} />;38};
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
