Buy Template Now $65
Skip to main content

Process Bar Tab

A step-by-step process component ideal for onboarding flows, product walkthroughs, feature tours, and "How It Works" sections.

It provides automatic step progression, animated content transitions, progress tracking, and a fully responsive experience across desktop and mobile devices.

Features

  • Auto-sliding process steps
  • Configurable auto-slide duration
  • Pause on hover support
  • Optional progress tab bar
  • Scroll-triggered activation
  • Animated step transitions
  • Desktop and mobile layouts
  • Image and custom content support
  • Badge support
  • Manual step selection
  • Framer Motion animations
  • Fully responsive

Import the component using:

import ProcessBarTab from "@/components/ui/processBarTab";

Preview

ProcessTabs Preview

Props

interface ProcessStep {
  id: string;
  title: string;
  description: string;
  image?: string;
  content?: React.ReactNode;
}
 
interface SectionBadge {
  title: string;
  icon?: LucideIcon;
}
 
interface ProcessTabsProps {
  heading?: string;
  subheading?: string;
  badge?: SectionBadge;
 
  steps: ProcessStep[];
 
  autoSlide?: boolean;
  showProgressTabBar?: boolean;
  autoSliderDuration?: number;
  defaultActiveStep?: string;
  pauseOnHover?: boolean;
 
  className?: string;
}

Example Usage

import ProcessTabs from "@/components/ui/process-tabs";
import { Rocket } from "lucide-react";
 
export default function Example() {
  return (
    <ProcessTabs
      heading="How It Works"
      subheading="Launch your project in just a few simple steps."
      badge={{
        title: "Process",
        icon: Rocket,
      }}
      autoSlide
      autoSliderDuration={5000}
      pauseOnHover
      showProgressTabBar
      steps={[
        {
          id: "step-1",
          title: "Create Account",
          description:
            "Sign up and configure your workspace settings.",
          image: "/images/step-1.png",
        },
        {
          id: "step-2",
          title: "Customize",
          description:
            "Adjust branding, content, and integrations.",
          image: "/images/step-2.png",
        },
        {
          id: "step-3",
          title: "Launch",
          description:
            "Publish your project and start collecting users.",
          image: "/images/step-3.png",
        },
      ]}
    />
  );
}

Step Structure

Each process step requires a unique ID, title, and description.

const steps = [
  {
    id: "step-1",
    title: "Connect Account",
    description: "Link your platform account.",
    image: "/images/connect.png",
  },
];

Using Custom Content

Instead of an image, you can render any React content.

steps={[
  {
    id: "analytics",
    title: "Analytics",
    description: "View performance metrics.",
    content: (
      <div className="rounded-xl border p-8">
        Custom React Content
      </div>
    ),
  },
]}

Auto Sliding

Enable automatic progression through steps.

<ProcessTabs
  autoSlide
  autoSliderDuration={4000}
  steps={steps}
/>

Disable Auto Sliding

<ProcessTabs
  autoSlide={false}
  steps={steps}
/>

Pause On Hover

Pause automatic progression while users interact with a step.

<ProcessTabs
  pauseOnHover
  steps={steps}
/>

Disable Pause On Hover

<ProcessTabs
  pauseOnHover={false}
  steps={steps}
/>

Progress Tab Bar

The vertical progress indicator can be shown or removed.

Enabled

<ProcessTabs
  showProgressTabBar
  steps={steps}
/>

Disabled

<ProcessTabs
  showProgressTabBar={false}
  steps={steps}
/>

Set Default Active Step

Choose which step is active when the component loads.

<ProcessTabs
  defaultActiveStep="step-2"
  steps={steps}
/>

Badge

Display a badge above the heading.

badge={{
  title: "How It Works",
  icon: Rocket,
}}

Responsive Behavior

Desktop

  • Vertical process navigation
  • Animated content panel
  • Progress tab indicators
  • Auto-slide support

Mobile

  • All steps displayed sequentially
  • No active-state switching
  • No auto-slide behavior
  • Optimized touch-friendly layout

Notes

  • The component automatically pauses auto-sliding when outside the viewport.
  • Progress animations only run while auto-slide is active.
  • Supports both images and custom React content.
  • Auto-slide wraps back to the first step after the final step.
  • Mobile devices display all steps simultaneously for easier browsing.