Animated step wizard with square numbered indicators and content cards for each step. Perfect for product walkthroughs that guide users through key features.
Multi-step onboarding wizard with square numbered/checkmark step indicators above a single content card that swaps title and description per step, driven by internal Back/Next/Finish navigation.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/onboarding9"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/onboarding9"This installs the block to components/beste/block/onboarding9.tsx and the badge and button shadcn/ui primitives it depends on.
The installed file exports onboarding9Demo alongside the block: the exact props behind the preview above. Spread it to get a working step wizard in one line.
import { Onboarding9, onboarding9Demo } from "@/components/beste/block/onboarding9";
export default function OnboardingPage() {
return <Onboarding9 {...onboarding9Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Onboarding9 } from "@/components/beste/block/onboarding9";
export default function OnboardingPage() {
return (
<Onboarding9
badge={{ label: "Quick Setup", variant: "secondary" }}
heading="Get started in minutes"
steps={[
{ id: "1", title: "Welcome aboard!", description: "Let's set up your account." },
{ id: "2", title: "Connect your tools", description: "Link the services you use daily." },
{ id: "3", title: "You're all set!", description: "Start exploring your workspace." },
]}
labels={{ next: "Continue", back: "Back", finish: "Get Started" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Small badge above the heading |
heading | string | – | Main headline |
steps | Step[] | [] | Ordered wizard steps |
currentStep | number | 0 | Seeds the initial step only; see Behavior notes |
labels | { next?: string; back?: string; finish?: string } | {} | Button labels for navigation |
className | string | – | Extra classes for the outer <section> |
type Step = {
id: string;
title: string;
description?: string;
icon?: LucideIcon;
};currentStep only seeds the internal useState on first render (useState(initialStep)); after mount, navigation is entirely internal via the Back/Next/Finish buttons, so changing the currentStep prop later does not move the wizard (there's no effect syncing it).steps[].icon is typed as a LucideIcon but is never rendered by the component: only title and description show inside the content card, so the icon field is currently inert.console.log("Onboarding completed!"); there is no onComplete callback prop, so consumers can't hook into completion without editing the component.steps is empty the component returns null, so it renders nothing rather than an empty shell.scale-110) for the current step, and use a muted border otherwise; the Back button is hidden entirely on the first step rather than shown disabled.onboarding5
Multi-step progress indicator with numbered circles connected by a progress line. Perfect for account setup wizards that show users their completion status.
onboarding8
Interactive form wizard with segmented progress bar, form fields, and back/next navigation. Perfect for account registration flows collecting user and company information.
onboarding10
Interactive accordion layout where each step expands to reveal detailed instructions and action buttons. Perfect for setup guides that let users complete tasks at their own pace.
onboarding1
Centered welcome screen featuring a hero image, step counter, and dual CTAs. Perfect for app onboarding flows that guide users through a multi-step setup process.
onboarding7
Card-based progress tracker showing completion percentage and a checklist of tasks with visual status. Perfect for gamified onboarding that motivates users to finish setup.
onboarding6
Vertical timeline layout with step indicators, descriptions, and a connecting progress line. Perfect for workspace setup flows with detailed step explanations.