Skip to content

Pin Input

A one-time code field: one real input drives every cell, so paste, autofill and mobile keyboards just work.

$149 once · every Pro piece

Customize

The cells are filled wells with a blinking caret in the active one; digits drop into place, a warm pulse runs across the cells on completion, then the code is checked: a check draws when it is right, the row shakes and clears when it is wrong.

Install

npx shadcn@latest add @obsyde/pin-input

Needs your licence key · Get Pro

Usage

Import it from where the CLI puts it, or copy the files below by hand.

import { PinInput } from '@/components/obsyde/ember/pin-input/PinInput';

export function Example() {
  return (
    <PinInput label="Verification code" />
  );
}

Files

What you get with Pro: plain React, TypeScript and CSS, with no dependencies.

  • ember/pin-input/PinInput.tsxcomponent
  • ember/pin-input/pin-input.cssstyles
  • ember/pin-input/PinInputDemo.tsxdemo
  • ember/forms-kit/kit.tsxshared
  • ember/shared/spring.tsshared
  • ember/shared/accent.tsshared
  • ember/shared/ember.cssshared

API

PropTypeDefault
accentAccent'ember' | 'volt' | 'arc''ember'
labelLabelstring'Verification code'
lengthLengthnumber6
maskMaskbooleanfalse
disabledDisabledbooleanfalse