StealThis .dev

Banking — ID Verification

A trust-first KYC identity-check flow for fintech onboarding, built in vanilla JS. Customers pick a document type, then upload front and back through drag-and-drop zones that show a live progress bar, a masked preview thumbnail, and a sharp-and-readable status before a mock selfie liveness step runs blink and head-turn checks. An animated scan line reads the document, compares biometrics, and screens for sanctions, ending in a verified result card with match score and reference, or a needs-review state. Fully keyboard-usable and responsive to 360px.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

ID Verification

A four-step identity-verification flow shaped for banking and fintech onboarding, where a customer proves who they are before an account is activated. A navy header carries the bank mark and a 256-bit secure badge, and a connected stepper tracks progress through Document, Upload, Selfie, and Result. Step one offers passport, driver’s licence, and national ID as accessible radio cards, each declaring how many sides it needs and a couple of capture tips.

The upload step builds one drag-and-drop zone per side. Dropping a file — or clicking — kicks off a simulated upload with a moving progress bar, a masked card-style thumbnail, the file name and size, and a delete control; once finished, a green status pill marks it sharp and readable and the Continue button unlocks. The selfie step runs a mock liveness check with a spinning capture ring that walks through hold-still, blink, and head-turn cues, ticking each off as it passes. The final step animates a scan line across the document while it reads data, compares facial biometrics, and runs sanctions screening, then resolves to a verified card with a match score, document type, and reference code — or, occasionally, a needs-review state prompting a retake.

Everything is vanilla JS with no dependencies. Amounts and codes use tabular figures, the card number stays masked as •••• 4242, buttons and drop zones are keyboard-usable with visible focus rings, a small toast() helper confirms each action, and the layout stays legible down to 360px. Names, file sizes, and reference codes are realistic but clearly fictional, and no files ever leave the browser.

Illustrative UI only — not real banking software or financial advice.