Process Timeline with Duration Badges

How it works

From signup to success in 4 steps

A streamlined onboarding process that gets you up and running fast, without sacrificing depth or flexibility.

Create your account

Sign up with email or SSO. No credit card required to get started.

2 min

Connect your tools

Integrate with your existing stack. We support 50+ popular services out of the box.

5 min

Configure workflows

Set up automations using our visual builder. No code required.

10 min

Go live

Deploy to production with one click. Monitor results in real-time.

1 min
Step 1

Create your account

2 min

Sign up with email or SSO. No credit card required to get started.

Step 2

Connect your tools

5 min

Integrate with your existing stack. We support 50+ popular services out of the box.

Step 3

Configure workflows

10 min

Set up automations using our visual builder. No code required.

Step 4

Go live

1 min

Deploy to production with one click. Monitor results in real-time.

About this block

Process Timeline with Duration BadgesFREE

Responsive timeline showing sequential steps with icons, descriptions, and time estimates (horizontal on desktop, vertical on mobile). Perfect for onboarding flows, how-to guides, or getting-started sections.

Feature28: Process Timeline with Duration Badges

Sequential step timeline that renders two completely different layouts by breakpoint: a horizontal row of numbered circles connected by a full-width line on desktop, and an indented vertical list connected by a side line on mobile. Each step can carry an icon, a description, and a small duration pill.

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/feature28"

Base UI flavor

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

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

Quick start

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

tsx
import { Feature28, feature28Demo } from "@/components/beste/block/feature28";

export default function Page() {
  return <Feature28 {...feature28Demo} />;
}

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

tsx
import { Rocket, Settings, Check } from "lucide-react";
import { Feature28 } from "@/components/beste/block/feature28";

export default function Page() {
  return (
    <Feature28
      badge={{ label: "How it works", variant: "default" }}
      heading="From signup to success in 3 steps"
      description="A streamlined onboarding process that gets you up and running fast."
      steps={[
        {
          id: "step-1",
          icon: <Rocket className="size-5" />,
          title: "Create your account",
          description: "Sign up with email or SSO.",
          duration: "2 min",
        },
        {
          id: "step-2",
          icon: <Settings className="size-5" />,
          title: "Connect your tools",
          description: "Integrate with your existing stack.",
          duration: "5 min",
        },
        {
          id: "step-3",
          icon: <Check className="size-5" />,
          title: "Go live",
          description: "Deploy to production with one click.",
          duration: "1 min",
        },
      ]}
      buttons={[{ id: "btn-1", label: "Get started free", href: "/signup" }]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Badge above the heading
headingstringSection heading
descriptionstringSection intro text
stepsTimelineStep[][]Steps rendered in both the desktop and mobile timelines
buttonsButtonItem[][]CTA buttons below the timeline
classNamestringExtra classes for the outer <section>
ts
type TimelineStep = {
  id: string;
  icon?: React.ReactNode;
  title: string;
  description?: string;
  duration?: string;
};

type ButtonItem = {
  id: string;
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};

Behavior notes

  • Desktop and mobile timelines are two separate DOM trees (hidden md:block and md:hidden), both always rendered; the breakpoint only toggles visibility with CSS, not conditional mounting.
  • The desktop grid column count is chosen from a fixed lookup on steps.length: 2/3/4 steps map to that many columns exactly, and 5 or more steps are capped at grid-cols-5, so six or more steps will wrap into a second row rather than adding a sixth column.
  • On desktop, a step with no icon falls back to its 1-based index number inside the circle; on mobile, the fallback is a small filled dot (Circle) instead of a number, and a supplied icon is scaled down (scale-60) to fit the smaller mobile marker.
  • The duration pill (a Clock icon plus the duration string) only renders when duration is set, on both breakpoints, and sits in different positions: centered below the title on desktop, right-aligned next to the step label on mobile.
  • The desktop connector is a single absolutely positioned horizontal line behind the circles (top-6); the mobile connector is a vertical line to the left of the stacked cards, each with bg-border and no animation.

More Feature blocks

View all Feature
PRO

feature136

Numbered Steps Grid

Responsive grid of numbered step cards with titles and descriptions. Perfect for process visualization, onboarding steps, or sequential workflows.

PRO

feature201

Feature with Numbered Process Steps and CTA Card

Centered header followed by a 4-step numbered process row with arrows between cards on desktop, plus a wide CTA card with badge, heading, description, button, and image.

PRO

feature119

Goals with Progress Bars

Responsive grid of goal cards with percentage progress bars and labels. Excellent for OKR tracking, quarterly goals, or progress visualization.

PRO

feature222

Numbered Process Steps

Process section with a header and a vertical list of four numbered steps separated by top borders.

PRO

feature120

Category Tiles with Counts

Responsive grid of category cards with icons and listing counts. Perfect for category browse, marketplace sections, or navigation options.

PRO

feature267

Center-Line Journey Timeline

A feature that runs a hairline down the middle of the section and alternates its stages either side of it, dropping an image tile with a live phone frame onto the step worth showing.