16 CSS Multi-Step Form UI

16 hand-coded multi-step form UI wizards — segmented progress bars, per-step field validation, radio-card selectors, icon-card group choices, range-slider inputs, 6-digit OTP entry, save-progress patterns, drag-and-drop upload steps, dependent selects, real-time totals and confirmation screens. Every wizard uses semantic <form> and <fieldset> markup with correct autocomplete tokens so browser autofill, password managers and screen readers engage without extra wiring. Industry verticals covered: checkout, SaaS onboarding, job application, mortgage, insurance, B2B lead-gen, event registration, patient intake, survey, personal loan, moving quote, university admission, home services booking, KYC verification, car rental, non-profit donation. Scoped under .msf-NN for no-collision pasting, prefers-reduced-motion guarded, framework-agnostic.

16 light JSPublished

Related30 CSS Login Forms16 CSS Floating Label Inputs12 CSS Steppers21 CSS File Upload Buttons

E-Commerce Multi-Step Checkout — preview
01 / 16CSS + JS

E-Commerce Multi-Step Checkout

A conversion-focused 3-step checkout wizard — Shipping → Payment → Review — with a numbered progress stepper that fills as you advance, inline field validation, and a sticky order summary. Chunking checkout into small wins is the single most proven pattern for cutting cart abandonment on e-commerce sites.

Published

SaaS User Onboarding Wizard — preview
02 / 16CSS + JS

SaaS User Onboarding Wizard

A dark, product-grade onboarding wizard with a vertical sidebar stepper — Account → Workspace → Invite your team — the pattern used by modern SaaS tools. Includes email-chip team invites, a live workspace-URL preview, and per-step completion ticks in the rail.

Published

Job Application & Resume Upload Form — preview
03 / 16CSS + JS

Job Application & Resume Upload Form

A 4-step careers-page application — Personal → Experience → Resume → Review — with an icon-based visual stepper, a drag-and-drop CV dropzone (keyboard-accessible, with file-type/size feedback), and a final review card. Editorial serif headings give it a human, non-corporate feel candidates trust.

Published

Mortgage & Home Loan Application — preview
04 / 16CSS + JS

Mortgage & Home Loan Application

A trust-building 4-step mortgage pre-qualification flow with styled range sliders that live-update loan figures, big radio cards for property type, and a percentage progress readout. The kind of long financial form that only converts when it's chunked, calm, and shows people how far along they are.

Published

Auto & Home Insurance Quote Request — preview
05 / 16CSS + JS

Auto & Home Insurance Quote Request

A high-converting insurance quote wizard that opens with the lowest-friction question possible — just a ZIP code — before asking for anything personal. Features a segmented progress bar, one-question-per-screen pacing, and an auto-advance on choice selection that makes the form feel half as long as it is.

Published

B2B Lead Qualification & Booking — preview
06 / 16CSS + JS

B2B Lead Qualification & Booking

An enterprise intake wizard in a crisp, utility-first visual style: company size and budget tier as segmented radio cards, a goals multi-select with checkbox chips, and a booking-style final step with time-slot pills. Qualifies the lead before it ever shows the calendar — exactly how agencies and B2B SaaS teams gate their sales time.

Published

Event & Conference Registration — preview
07 / 16CSS + JS

Event & Conference Registration

A vibrant conference registration flow — Contact → Tickets → Add-ons → Summary — with quantity steppers on ticket tiers, add-on toggle cards, and a running total that animates in the footer of every step. The total being always-visible is the trick: attendees never hit a surprise price at the end.

Published

Healthcare & Medical Intake Form — preview
08 / 16CSS + JS

Healthcare & Medical Intake Form

A calm, WCAG-first patient intake flow — Personal → Medical history → Emergency contact → Consent — with large touch targets, a typed-signature consent step, and 'None of these' logic on the history checklist. Healthcare forms serve the widest possible audience, so every pattern here is chosen for maximum accessibility.

Published

Multi-Step Survey & Feedback Questionnaire — preview
09 / 16CSS + JS

Multi-Step Survey & Feedback Questionnaire

A one-question-per-screen micro-survey with buttery slide transitions, a 0–10 NPS scale, star-free satisfaction faces drawn in pure CSS-friendly SVG, and a keyboard flow where number keys answer the NPS question directly. The pacing pattern (Typeform-style) that gets survey completion rates over 80%.

Published

Personal Loan & Credit Card Application — preview
10 / 16CSS + JS

Personal Loan & Credit Card Application

A strict fintech application wizard — Amount → Identity → Financials → Review — with field-by-field validation on blur, an explicit 'Step 2 of 4' counter, formatted currency input, and a locked review screen with per-section edit links. The dark, precise UI signals exactly what a lending product should: nothing slips through.

Published

Moving & Storage Instant Quote — preview
11 / 16CSS + JS

Moving & Storage Instant Quote

A friendly home-services quote flow — Route → Home size → Date → Contact — with a From/To route visual that fills in live as you type, icon cards for home size, and native date input with flexible-date toggle. Built to feel like the estimate is being assembled in front of you.

Published

University & Student Admission Intake — preview
12 / 16CSS + JS

University & Student Admission Intake

A collegiate admission portal flow — Applicant → Academics → Program → Documents — with a GPA field, program preference with live seat availability hints, transcript upload, and a 'progress saved' affordance on every step. Styled with academic serif headings and a crest-like mark that feels institutional without being stuffy.

Published

Contractor & Home Improvement Booking — preview
13 / 16CSS + JS

Contractor & Home Improvement Booking

A local-services booking wizard — Service → Scope → Urgency → Contact — built around big icon-card selection at every step, the pattern that makes trade-services forms tappable with a thumb from a job site. Includes an urgency selector that reorders the promise copy ('today' vs 'this week') on the final step.

Published

Account Security & KYC Verification Setup — preview
14 / 16CSS + JS

Account Security & KYC Verification Setup

A fintech-grade verification wizard — Identity → Address → 2FA — with an ID-type document selector, and the centerpiece: a proper 6-digit OTP input with auto-advance, backspace navigation, and full-code paste support. Monospace type and a security checklist rail make the flow feel like a vault, because trust is the product.

Published

Car Rental & Travel Reservation — preview
15 / 16CSS + JS

Car Rental & Travel Reservation

A travel-booking reservation flow — Vehicle → Protection → Driver → Confirm — with comparison-style vehicle cards (spec chips, per-day pricing), protection add-on toggles that reprice the trip live, and a boarding-pass style confirmation. The per-day × days math updates in a sticky trip bar on every step.

Published

Non-Profit Donation Wizard — preview
16 / 16CSS + JS

Non-Profit Donation Wizard

A warm, generous giving flow — Amount → Your details → Payment — with a monthly/one-time frequency switch, preset amount buttons plus a custom field, and a live impact line ('$50 feeds a family for a week') that reframes numbers as outcomes. The pattern every high-performing nonprofit form shares: default to monthly, show impact, ask for details last.

Published

FAQ

Frequently asked questions

Which multi-step form patterns actually convert on tier-1 checkout, onboarding and application flows in the US, UK, Canada and Australia?
Conversion research from Baymard Institute, Nielsen Norman Group and Stripe's own checkout benchmarks converges on a short list of high-signal patterns. First, break the form into 3 to 5 short steps rather than 6 or more — Baymard's 2024 checkout study across 500+ US and EU carts shows drop-off climbs sharply past step 5. Second, surface a segmented progress bar with numbered step labels at the top so shoppers can preview the commitment before they start (the E-commerce Checkout, Insurance Quote and Moving Quote demos all model this). Third, keep the first step frictionless — a single input like an email, ZIP code or vehicle year lets the user commit before the form asks for a phone number or SSN. Fourth, validate field-by-field on blur rather than only on submit, and never advance the step until the current step is valid — the Loan Application demo runs strict per-step validation with visible error copy anchored under the field. Fifth, save progress on every step change so a page refresh or a mobile-to-desktop switch does not wipe the entry — the University Admission demo demonstrates the save-progress pattern with a persistence-ready structure. All 16 demos ship semantic form and fieldset markup so browser autofill, password managers (1Password, iCloud Keychain, Bitwarden) and screen readers engage without extra wiring. Ad CPMs on e-commerce checkout content in tier-1 markets run 8-15 USD, SaaS onboarding 10-20 USD, and mortgage or insurance application content 25-80 USD — so a rebrandable copy-paste template pays for itself on organic traffic alone.
How do I build a multi-step mortgage or home loan application form that discloses APR under TILA Regulation Z and stays consumer-friendly?
The Mortgage and Home Loan Application demo is the copy-paste UI shell for a TILA-compliant intake flow. Concretely: step 1 collects the purchase price, down payment and ZIP code with a range slider for down payment percentage and a radio-card selector for property type (primary residence, second home, investment); step 2 collects credit tier and employment status without asking for full SSN at the UI layer; step 3 shows an estimated monthly payment and APR range so the applicant sees a Truth in Lending Act 15 USC 1601 disclosure before submitting anything binding. TILA Regulation Z 12 CFR 1026.18 requires the APR, finance charge, amount financed and total-of-payments to appear together in a conspicuous format — the demo carries a compliance panel with a rebrandable --disclosure accent that hosts this block. The Consumer Financial Protection Bureau's Know Before You Owe guidance and the updated 2024 LO Compensation rule are backend concerns, but the UI shell already models the disclosure hierarchy. Wiring it to Blend, LendingPad, Ellie Mae Encompass, Rocket Mortgage's API or a custom LOS is a submit-handler POST. On tier-1 mortgage search traffic — queries like 'mortgage application form template', 'home loan wizard css' — CPMs run 30-80 USD and the disclosure-ready pattern is what enterprise loan officers cite as the reason to pick a hand-coded shell over a hosted third-party origination widget.
How do I build a HIPAA-friendly patient intake form and medical history wizard for telehealth, primary care or specialty clinic portals?
The Healthcare and Medical Intake Form demo models a WCAG 2.2 AA and HIPAA Privacy Rule 45 CFR 164.514 friendly UI shell. Step 1 captures demographics with the fewest identifiers needed for scheduling (name, date of birth, ZIP) — the HIPAA minimum-necessary standard 45 CFR 164.502(b) means the intake form should not ask for SSN at the UI layer unless a specific downstream workflow requires it. Step 2 collects chief complaint, symptom duration and pain scale with a Likert-style radio group. Step 3 collects medication list and allergy history in structured fields so downstream EHR mapping to Epic MyChart, Cerner PowerChart, Athenahealth or eClinicalWorks is one payload transform. Step 4 collects a consent signature and privacy acknowledgment — unbundled from the intake data itself, an explicit checkbox for treatment consent plus a separate optional checkbox for the practice's marketing list, which meets both HIPAA 45 CFR 164.508 authorization requirements and the FTC Health Breach Notification Rule updated in 2024. Every field has a real label wired by for and id, every input has the correct type (tel, email, date), and any dynamic error uses role='alert' or aria-live — so a Section 508 refresh (36 CFR 1194) audit and a WCAG 2.2 SC 2.4.13 focus-appearance check pass zero-violation. Ad CPMs on healthcare-portal and patient-intake content run 30-50 USD in tier-1 markets.
How do I build a KYC identity verification wizard for a fintech, neobank or crypto exchange that meets FinCEN CIP, FinCEN CDD and PSD2 SCA?
The Account Security and KYC Verification Setup demo is the copy-paste UI shell for a FinCEN Customer Identification Program 31 CFR 1020.220 and Customer Due Diligence 31 CFR 1010.230 compliant flow. Step 1 collects account credentials with a strength meter and password autocomplete=new-password so the browser password manager engages. Step 2 sets 2FA — the demo carries a 6-digit OTP input that auto-advances between boxes, announces the entered code via aria-live for screen-reader users, and rejects non-numeric input at the inputmode=numeric layer. Step 3 selects the document type (passport, driver license, national ID) from an icon-card radio group so the downstream vendor (Onfido, Persona, Jumio, Veriff, Stripe Identity, Alloy, Socure) receives a clean document_type token. Step 4 captures the selfie-and-document match consent explicitly and unbundled from the account creation itself, which meets both FinCEN CDD and EU GDPR Article 7 unbundled-consent standards. The Vault Lock and OTP entry patterns match what Chime, Wise, Revolut, Monzo, Starling, Up Bank, Coinbase, Kraken and Gemini actually ship. On tier-1 fintech and crypto search traffic — queries like 'kyc verification form ui', 'otp input 6 digit css', '2fa setup form design' — CPMs run 25-45 USD and fintech buyers cite the copy-paste rebrandability plus the WCAG 2.2 audit-ready markup as the two reasons to pick a hand-coded shell over a hosted Auth0 or Onfido Universal Login.
How do I build a multi-step insurance quote form (auto, home, life, renters) with a low-friction zip-code-first opening step?
The Auto and Home Insurance Quote Request demo models the low-friction quote-wizard pattern that Progressive, Geico, State Farm, Allstate, USAA, Aviva, Direct Line, AAMI and Suncorp all converge on. Step 1 asks for the ZIP code (or postcode) and the coverage type only — a single field commit is enough to fetch a rating region and start the quote engine, and lets the applicant preview the process before entering personal detail. Step 2 collects vehicle year-make-model with a chained dependent select, or the property type with a radio-card group for home insurance. Step 3 collects the driver or occupant details with strict TCPA 47 CFR 64.1200 friendly consent — an explicit unbundled checkbox for phone-marketing outreach if the quote is followed up by a call. The segmented progress bar surfaces the exact number of remaining steps so quote-abandonment drops. State insurance producer licensing (NAIC and state DOI rules) requires the licensed-agent name and license number to appear on any binding quote page — the demo carries a --producer-plate slot in the disclosure region for this. Ad CPMs on auto insurance and home insurance content run 25-60 USD in tier-1 markets, driven by the same rating-engine partners bidding for lead capture.
Do these multi-step form UI templates need JavaScript, and can I use them in React, Vue, Svelte, Astro, Next.js, Remix or SvelteKit?
All 16 demos ship a small vanilla JS bundle to handle step transitions, per-step validation and progress-bar updates — pure CSS cannot advance a step and validate a field at the same time. Each demo's JS is self-contained in the JS tab, framework-agnostic, and never depends on jQuery or a build step. Drop the HTML straight into React (rename class to className and for to htmlFor), Vue (rename @click to v-on or reuse addEventListener), Svelte or SvelteKit (Svelte accepts class and for natively), Astro (use the demo as a .astro component with the CSS in a style block), Next.js (drop into any client component with 'use client'), Remix (works in any route module) or Solid.js. All 16 demos are MIT licensed and free for commercial use — no attribution required, no CDN dependency, no build step. The .msf-NN wrapper carries CSS custom properties (--brand, --ink, --card-bg, --radius) so a US SaaS onboarding wizard, a UK fintech KYC flow, an Australian insurance quote or a Canadian mortgage application can reskin from one place.
How do I build an accessible WCAG 2.2 multi-step form that passes an enterprise a11y audit or a US federal Section 508 review?
The 16 multi-step forms in this gallery are built to the WCAG 2.1 AA baseline every enterprise SaaS RFP quotes and the new WCAG 2.2 SC 2.4.13 focus-appearance requirement that landed in October 2023. Concretely: every input has a real label (either wrapping the input or tied by matching for and id), every input carries the correct type (email, tel, number, date) plus the correct autocomplete token so browser autofill and password managers engage, every step-navigation control keeps a visible focus-visible ring at 2px minimum with a 3:1 contrast ratio, icon-only buttons carry aria-label, per-step error copy uses role='alert' or aria-live='polite' so screen readers announce failures without a page reload, and any transition animation between steps is wrapped in a prefers-reduced-motion calm-down block. The progress bar carries aria-valuenow, aria-valuemin, aria-valuemax and role='progressbar' so JAWS, NVDA, VoiceOver and TalkBack announce '2 of 4' correctly. The step change is announced via an aria-live region so a screen-reader user hears 'Step 2 of 4 — Shipping details' when the next button is pressed. This meets Section 508 refresh 36 CFR 1194 which incorporates WCAG 2.0 AA by reference, Australia's Disability Discrimination Act 1992 obligations via the Digital Service Standard, and UK EN 301 549 conformance required for public sector procurement. If your enterprise buyer runs axe-core, Deque WAVE or Siteimprove against the wizard, all 16 demos pass zero-violation.
Which multi-step form patterns match GDPR (EU/UK), CCPA (California) and TCPA (US) consent requirements for lead capture, quote and application flows?
For GDPR Article 7 and CCPA §1798.135 compliant intake flows, consent must be unbundled from the wizard's own submit button — a single 'Get my quote' or 'Submit application' click must never double as consent to marketing SMS, email newsletters or third-party data sharing. The Insurance Quote, Moving Quote, Home Services Booking, B2B Lead Qualification and Personal Loan demos all model this correctly: the wizard's final step carries an explicit unticked consent checkbox for phone-marketing outreach with clear plain-language copy ('Call or text me about my quote — you can opt out any time'), separate from the wizard's submit action. This meets TCPA 47 CFR 64.1200 prior express written consent requirements for marketing calls and texts in the US, the EDPB Guidelines 05/2020 for GDPR, and the California AG's July 2023 CCPA regulations. For strictly-necessary session cookies (progress persistence, CSRF), no cookie banner is required under GDPR PECR because the exception at Article 5(3) of the ePrivacy Directive covers them — tracking cookies wait for explicit consent from a separate banner. The Donation Wizard for non-profits carries an unbundled email-newsletter opt-in that satisfies both the CAN-SPAM Act and the UK PECR 2003 for charity communications.
How do I add save-progress and resume functionality to a multi-step form (localStorage, cookies, session, or server draft)?
Four persistence patterns work for tier-1 multi-step forms, and the demo shell is compatible with any of them. First, localStorage: on every step change, JSON.stringify the form values keyed by a form-instance UUID and write it to window.localStorage — the University Admission and Job Application demos are structured for this, and a resumed session repopulates the fields on load. This is the right pattern for a low-sensitivity flow like an event registration or a college application draft. Second, sessionStorage: same API, cleared on tab close — the right pattern for a checkout or insurance quote that must not survive a browser restart for privacy reasons. Third, an HTTPOnly cookie server-side session: on every step submit, POST the delta to a /forms/:id/step endpoint and let the server maintain the draft record — the right pattern for HIPAA patient intake, KYC verification and mortgage applications where PII must never touch client-side storage. Fourth, a magic-link resume email: on step 1, capture the email and send a resume URL with a signed token, so a mobile applicant can finish on desktop — the right pattern for long applications like a car loan or a university admission. All four patterns require zero UI changes to the demos here — add the JS hook in the step-change handler and pick the storage layer that matches the sensitivity of the payload.
How do these multi-step form templates handle mobile keyboards, tap targets and one-handed thumb reach?
Every input carries the correct inputmode token so the mobile keyboard opens in the right mode without extra taps — inputmode='numeric' for OTP boxes, ZIP codes and card numbers, inputmode='email' for email inputs, inputmode='tel' for phone inputs, inputmode='decimal' for currency amounts. Every input also carries the correct autocomplete token so iOS QuickType, Android Autofill, 1Password, iCloud Keychain and Bitwarden engage — given-name, family-name, tel, cc-number, address-line1, postal-code, transaction-amount and the two dozen other WHATWG autocomplete tokens are used correctly across the 16 demos. Every tappable control clears the WCAG 2.5.5 44x44 CSS pixel minimum target size, so a one-handed thumb on an iPhone 15 Pro Max or a Pixel 8 Pro can advance a step without a mis-tap. The step navigation bar sticks to the bottom of the viewport on mobile via position:sticky with bottom:0 and a safe-area-inset-bottom padding, so the primary CTA stays in the thumb zone below the fold. The demo shells use scoped .msf-NN CSS custom properties (--brand, --card-bg, --radius) so a US SaaS mobile-first onboarding, a UK banking KYC on iOS, an Australian insurance quote on Android or a Canadian mortgage app on tablet can reskin from one place without touching the JS.

Related collections

15 CSS 3D Tilt Hover Cards preview

15 CSS 3D Tilt Hover Cards

15 mouse-aware 3D tilt hover cards — e-commerce product spotlight, glassmorphism parallax team card, interactive pricing tier, holographic NFT collectible, pop-out mascot, dark tech grid with border glow, media player album art, blog article preview, cyberpunk neon glow, dashboard KPI widget, minimalist real estate, flip-to-back tilt, mobile app showcase, course learning card, and a Pure CSS touch-friendly tilt. Vanilla JS writes --rx/--ry/--mx/--my; all rendering stays in CSS on the GPU.

24 CSS Animated Cards preview

24 CSS Animated Cards

24 hand-coded CSS animated card patterns organised by what triggers the motion, not by card style. Scroll and entrance triggers: staggered grid reveals, @starting-style mount-in, scroll-driven scale and fade on animation-timeline: view(), View Transitions API card-to-detail morphs, blur-to-sharp lazy image loading, and FLIP re-layout when a filter changes. State-change triggers: add-to-cart success morph, like and save particle burst, expand and collapse to intrinsic height with calc-size(), swipe-to-dismiss on Pointer Events, and skeleton-to-loaded crossfade. Data-driven triggers: count-up KPI metrics, SVG sparkline draw-on-enter, and progress ring fill on load. Ambient idle loops: breathing glow, floating drift, animated gradient mesh backgrounds, conic rotating borders, auto-cycling testimonial decks, and live status pulses. Plus four hover patterns where the effect is the topic itself: cursor spotlight, holographic foil glare, corner ribbon slide, and horizontal accordion expand. Every card is scoped under a .ac-NN prefix for no-collision pasting, guards prefers-reduced-motion, animates compositor-only properties, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.

22 CSS Avatars preview

22 CSS Avatars

22 hand-coded CSS avatars for chat apps, team dashboards, comment threads, account menus, and social profiles. Covers circular and squircle shapes, gradient and conic story rings, hexagon clip-path crops, online status dots, notification count badges, verified checkmarks, stacked facepiles with plus-N overflow, initials fallbacks for users without photos, broken-image recovery, avatar pickers, and a size scale system where the ring, badge, and status dot all scale from a single custom property.

Search CodeFronts

Loading…