Onboarding Flow Pattern¶
The onboarding flow guides merchants through initial setup. It uses a multi-step centered layout with a clear progress indicator (inspired by Clerk's onboarding).
Structure¶
┌─────────────────────────────────────┐
│ Page background (#F1F1F1) │
│ │
│ ┌─────────────────────────────┐ │
│ │ MetrePay logo (centered) │ │
│ │ │ │
│ │ Step indicator │ │
│ │ ● ● ○ ○ │ │
│ │ │ │
│ │ Step title │ │
│ │ Step description │ │
│ │ │ │
│ │ [Form fields] │ │
│ │ │ │
│ │ [Continue button] │ │
│ │ [Back link] │ │
│ └─────────────────────────────┘ │
│ │
└─────────────────────────────────────┘
Live Preview¶
STEP 2 OF 4
Business details
Tell us about your business so we can set up your payment account.
Step Indicator Variants¶
Dot Progress (Simple)¶
<div style="display:flex; justify-content:center; gap:8px; margin-bottom:32px;">
<div style="width:8px; height:8px; border-radius:50%; background:#6E96FF;"></div> <!-- completed -->
<div style="width:8px; height:8px; border-radius:50%; background:#6E96FF;"></div> <!-- current -->
<div style="width:8px; height:8px; border-radius:50%; background:#E5ECFB;"></div> <!-- upcoming -->
<div style="width:8px; height:8px; border-radius:50%; background:#E5ECFB;"></div> <!-- upcoming -->
</div>
Text Progress (Stripe-inspired)¶
<div style="margin-bottom:8px;">
<span style="font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:#6E96FF;">
STEP 2 OF 4
</span>
</div>
<h2 style="font-size:24px; font-weight:700; color:#333; margin:0 0 8px 0;">Business details</h2>
CSS Implementation¶
.onboarding-page {
background: #F1F1F1;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
padding: 40px 20px;
font-family: 'Cabin', sans-serif;
}
.onboarding-logo {
margin-bottom: 32px;
}
.onboarding-logo img {
height: 36px;
}
/* Step dots */
.step-dots {
display: flex;
gap: 8px;
margin-bottom: 32px;
}
.step-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: #E5ECFB;
transition: background 0.3s ease;
}
.step-dot--active,
.step-dot--completed {
background: #6E96FF;
}
/* Card */
.onboarding-card {
width: 100%;
max-width: 480px;
background: #FFFFFF;
border-radius: 16px;
padding: 32px;
box-shadow: 0px 0px 6px 3px rgba(127, 146, 189, 0.1);
}
.onboarding-step-label {
font-size: 12px;
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #6E96FF;
display: block;
margin-bottom: 8px;
}
.onboarding-title {
font-size: 24px;
font-weight: 700;
color: #333333;
margin-bottom: 8px;
}
.onboarding-description {
font-size: 14px;
color: #999999;
margin-bottom: 24px;
line-height: 1.6;
}
.onboarding-back {
display: block;
text-align: center;
font-size: 13px;
color: #6E96FF;
text-decoration: none;
margin-top: 12px;
}
.onboarding-back:hover {
text-decoration: underline;
}
Rules¶
Onboarding rules
- Always show the MetrePay logo at the top, centered
- Use dot progress for 4+ steps, text progress for 2-3 steps
- Card max-width:
480px— same as payment form - Step label: uppercase, blue,
12px,letter-spacing: 0.08em - Always include a "Back" link below the submit button
- Never use more than 5 steps in an onboarding flow
- Each step should have a single clear objective
- Progress dots: blue for completed/current,
#E5ECFBfor upcoming