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.
Card-based setup tracker: a shadcn Progress bar and large percentage readout sit above a checklist of tasks, each carrying its own completed flag. Progress is entirely data-driven; there is no click handler anywhere in the component to check a task off.
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/onboarding7?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/onboarding7?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/onboarding7.tsx and the badge, button, and progress shadcn/ui primitives it depends on.
The installed file exports onboarding7Demo alongside the block: the exact props behind the preview above. Spread it to get a working progress card in one line.
import { Onboarding7, onboarding7Demo } from "@/components/beste/block/onboarding7";
export default function OnboardingPage() {
return <Onboarding7 {...onboarding7Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Onboarding7 } from "@/components/beste/block/onboarding7";
export default function OnboardingPage() {
return (
<Onboarding7
badge={{ label: "Progress", variant: "secondary" }}
heading="You're almost there!"
description="Complete these tasks to finish setting up your account."
tasks={[
{ id: "1", title: "Create your account", completed: true },
{ id: "2", title: "Verify your email", completed: true },
{ id: "3", title: "Connect your calendar", completed: false },
]}
progressLabel="Setup Progress"
primaryButton={{ label: "Continue", href: "/setup" }}
secondaryButton={{ label: "Finish later", href: "/dashboard" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Small badge above the heading |
heading | string | – | Main headline |
description | string | – | Supporting copy below the heading |
tasks | Task[] | [] | Checklist items, each with its own completion flag |
progressLabel | string | – | Label to the left of the "X of Y completed" text |
primaryButton | { label: string; href: string } | – | Primary CTA, stretched to fill its half of the row |
secondaryButton | { label: string; href: string } | – | Secondary/outline CTA next to the primary one |
className | string | – | Extra classes for the outer <section> |
type Task = {
id: string;
title: string;
completed: boolean;
};completed: boolean, there is no click handler to toggle a task, and no internal state in the component. Changing progress means changing the tasks prop from the outside.Math.round((completedCount / totalCount) * 100) and drives both the shadcn Progress bar's value and a large centered {percentage}% label beneath it.border-primary/20 bg-primary/5 row; unfinished tasks keep the plain card border and background.<svg> path (M5 13l4 4L19 7), not a lucide-react Check icon like the rest of this block family uses.tasks is empty the component returns null rather than rendering an empty card.primaryButton and secondaryButton are both sm:flex-1, so on wider screens they split the row evenly instead of sizing to their text.onboarding12
Visual progress tracker featuring a circular percentage indicator with completion stats and task list. Perfect for profile setup flows that encourage users to reach 100% completion.
onboarding5
Multi-step progress indicator with numbered circles connected by a progress line. Perfect for account setup wizards that show users their completion status.
onboarding9
Animated step wizard with square numbered indicators and content cards for each step. Perfect for product walkthroughs that guide users through key features.
onboarding21
Completion screen shown after finishing onboarding with a summary of what was configured and quick-start action links. Perfect for ending the setup flow with clear next steps.
onboarding6
Vertical timeline layout with step indicators, descriptions, and a connecting progress line. Perfect for workspace setup flows with detailed step explanations.
onboarding17
Onboarding screen where users pick their primary goal to receive a tailored onboarding path. Each goal card shows a recommended feature set. Perfect for multi-purpose platforms.