Interactive Forms · Warm Editorial
Typewriter OTP Input
A six-digit verification code input where each digit drops into its slot like a typewriter key and the row stamps green-free 'Verified' in cobalt.
- Framer Motion
- OTP
- Auth
- Micro
The full prompt
Show the prompt that defines the layout, motion and design language
Build a "Typewriter OTP Input" React component.
CONCEPT: A one-time-code input with six slots. Digits land with a small typewriter drop; pasting fills all slots at once; completion triggers a satisfying stamp.
LAYOUT & CONTENT:
- Six 44x54 slots, 1.5px charcoal border, mono 1.5rem digits. Active slot shows a blinking 2px caret.
- Caption: 'We sent a code to dana@kiln.co' with a 'Resend' link.
- On the 6th digit: slots turn cobalt-bordered, a rotated 'VERIFIED' stamp appears (cobalt, 2px border, mono).
INTERACTIONS & MOTION:
- Use one hidden real <input inputMode='numeric' autoComplete='one-time-code' maxLength=6> for accessibility; render slots from its value.
- Each new digit animates from y -12 scale 1.3 to y 0 scale 1 (spring stiffness 600 damping 18).
- Stamp: scale 2 rotate -20 opacity 0 → scale 1 rotate -8 opacity 1 with spring stiffness 400 damping 15. Backspace clears.
DESIGN SYSTEM (non-negotiable):
- Palette: paper background #FAF9F6, deep charcoal #121212 for text and 1px borders, ONE warm accent: cobalt #1D4ED8 or terracotta #D9534F. Secondary surface #F2EFE8.
- Typography: Swiss / editorial. A tight grotesk for UI (Instrument Sans, Inter Tight or similar) with negative tracking on display sizes; an italic serif (Instrument Serif) used sparingly for one emphasized word.
- NO dark-mode neon, NO glow, NO glassmorphism, NO backdrop blur, NO purple-to-blue gradients, NO emoji icons. Solid fills, hairline rules, honest shadows (hard offset or none).
- Motion: Framer Motion with spring physics (type: "spring", stiffness 300-500, damping 20-35). Animate transform and opacity only. Respect prefers-reduced-motion via useReducedMotion().
- Icons: lucide-react, 1.5px stroke.
- Accessibility: real <button>/<a>/<label> elements, visible focus ring (2px cobalt, 3px offset), keyboard operable, aria attributes where state changes.
OUTPUT: one self-contained React component file (Tailwind CSS v4 utility classes, framer-motion, lucide-react), no external images, default export, ready to paste into a Next.js App Router page with "use client".How to use this prompt
- 1. CopyUse “Copy Claude Prompt” above. It includes the layout, the spring values and the design rules.
- 2. Paste into ClaudeAdd your own brand name, copy and colors at the top of the prompt if you like.
- 3. Drop it inYou get one file with React, Tailwind and Framer Motion. Install framer-motion and lucide-react.