A sign-in verification screen with springing digits, SMS autofill and a shake on a wrong code.
A two-step verification screen: a heavy two-tone headline, the masked phone number, one-time-code entry with a blinking caret, digits that land with a spring, a sequential success tint, a shake-then-clear error, SMS autofill, paste detection and a resend countdown.
$199 once, every piece included. See how installing works · Sign in
SwiftUI source you own, built on Apple frameworks only.
Send Money (recipe). Your agent builds around this screen in the same design.
Travel App (template)
How it behaves, what it handles, and the decisions behind it.
A hidden TextField with .oneTimeCode content type receives SMS autofill and keyboard input; the visible boxes mirror it. The active box shows a blinking caret, each digit lands with a small scale spring, and the row reports complete with a soft haptic once the last digit is in. Drive status from your verification: verifying dims the boxes under a spinner, success tints them green one by one with a success haptic, and error shakes the row, clears the digits last to first, and hands status back to idle with focus restored.
status is a binding so the field can return .error to .idle after the clear; leave it .constant(.idle) if you only need entry.PasteButton only when the clipboard holds a number, detected with UIPasteboard.detectPatterns, which never reads the contents or shows the paste banner. The pasted text is scanned for the first run of exactly length digits.successColor and successInk.CodeEntryExample at the end of CodeEntry.swift is the Verify screen from the preview.Pieces that work well next to this one.