Welcome Hero with Step Indicator

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.

FREE

Onboarding1: Welcome Hero with Step Indicator

Centered onboarding hero that pairs a step counter, badge, heading, and hero image with up to two CTAs. currentStep and totalSteps are plain display numbers rendered through a "Step of " label template, not a stateful wizard, so the block never manages step transitions on its own.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/onboarding1"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/onboarding1"

This installs the block to components/beste/block/onboarding1.tsx and the badge and button shadcn/ui primitives it depends on.

Quick start

The installed file exports onboarding1Demo alongside the block: the exact props behind the preview above. Spread it to get a working welcome screen in one line.

tsx
import { Onboarding1, onboarding1Demo } from "@/components/beste/block/onboarding1";

export default function OnboardingPage() {
  return <Onboarding1 {...onboarding1Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { Onboarding1 } from "@/components/beste/block/onboarding1";

export default function OnboardingPage() {
  return (
    <Onboarding1
      badge="Welcome"
      heading="Set up your workspace"
      description="A few quick steps and you're ready to go."
      image={{
        src: "https://images.unsplash.com/photo-1531297484001-80022131f5a1?w=1200&h=675&fit=crop",
        alt: "Team workspace",
      }}
      currentStep={2}
      totalSteps={5}
      buttons={[
        { label: "Continue", href: "/setup/step-2" },
        { label: "Skip for now", href: "/dashboard", variant: "ghost" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badgestringSmall outline badge above the step text
headingstringMain headline
descriptionstringSupporting copy below the heading
image{ src: string; alt: string }Hero image shown in a bordered aspect-video box
currentStepnumber1Current step number, used only to fill the step-of label
totalStepsnumber4Total step count, used only to fill the step-of label
buttonsButtonConfig[][]CTA row below the image
labels{ stepOf?: string }{}Template string for the step counter
classNamestringExtra classes for the outer <section>
ts
type ButtonConfig = {
  label: string;
  href: string;
  variant?: "default" | "ghost" | "outline";
};

Behavior notes

More Onboarding blocks

View all Onboarding
FREE

onboarding3

Minimal Welcome with Icon

Clean, centered welcome screen with a branded icon, heading, and single call-to-action. Perfect for simple app introductions that prioritize clarity over complexity.

FREE

onboarding4

Video Introduction Screen

Welcome screen featuring a video thumbnail with play overlay and duration badge. Perfect for product tours that use video content to demonstrate features.

PRO

onboarding2

Split Layout with Features and Social Proof

Two-column welcome layout with feature checklist, user count, and star ratings alongside an image. Perfect for SaaS onboarding that highlights key benefits and builds trust.

PRO

onboarding5

Horizontal Steps with Progress Line

Multi-step progress indicator with numbered circles connected by a progress line. Perfect for account setup wizards that show users their completion status.

FREE

onboarding9

Step Cards with Numbered Indicators

Animated step wizard with square numbered indicators and content cards for each step. Perfect for product walkthroughs that guide users through key features.

PRO

onboarding17

Goal Selector with Paths

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.