مراحل (Stepper)

نمایش پیشرفت گام‌به‌گام در جریان‌های چند مرحله‌ای به صورت افقی یا عمودی.

معرفی

کامپوننت‌های Stepper و Step برای نمایش مراحل یک فرایند چند مرحله‌ای استفاده می‌شوند. هر مرحله می‌تواند وضعیت «تکمیل‌شده»، «فعال»، «در انتظار» یا — با status="error" روی یک Step مشخص — «خطا» داشته باشد.

چه زمانی استفاده کنیم:

  • برای فرآیندهای چندمرحله‌ای که ترتیب مشخصی دارند (مثل ثبت‌نام، خرید)
  • وقتی کاربر باید پیشرفت خود را در مراحل ببیند
  • برای فرم‌های طولانی که به چند مرحله تقسیم شده‌اند

چه زمانی استفاده نکنیم:

  • برای navigation بین بخش‌های غیرترتیبی — از Tabs استفاده کنید
  • برای فرآیندهای تک‌مرحله‌ای — از Dialog یا Form ساده استفاده کنید

یک ویزارد، یک Stepper

ویزارد سیستم طراحی WizardPage است و گام‌هایش همین Stepperاند. Stepper برای مسیری است که کاربر طی می‌کند؛ چرخهٔ حیات یک فرایند سیستمی با وضعیت مستقل هر مرحله StatusFlow است.

زمین بازی

با تغییر تنظیمات زیر، پیش‌نمایش زنده را مشاهده کنید.

زمین بازی

انتخاب منبع

2

پیکربندی

3

بازبینی

4

اجرا

تنظیمات
داده
ظاهر
محتوا
حالت
import { Stepper, Step } from '@partodata/ui'

<Stepper activeStep={1}>
  <Step label="انتخاب منبع" />
  <Step label="پیکربندی" />
  <Step label="بازبینی" />
  <Step label="اجرا" />
</Stepper>

استفاده

اطلاعات پایه

نام و ایمیل

2

تأیید هویت

کد پیامکی

3

تکمیل پروفایل

import { Stepper, Step } from '@partodata/ui'

export default function MyComponent() {
  return (
    <Stepper activeStep={1}>
      <Step label="اطلاعات پایه" description="نام و ایمیل" />
      <Step label="تأیید هویت" description="کد پیامکی" />
      <Step label="تکمیل پروفایل" />
    </Stepper>
  )
}

ظاهر

یک ظاهر در هر دو جهت، فقط با توکن‌ها:

  • نشانگر مرحله دایره‌ای روی نردبان کوچک است: sm 20، md 24 و lg 30 پیکسل (lg هم‌قد کنترل sm)؛ شماره با نقش متنی caption (در lg، compact).
  • مرحلهٔ فعال همان قاعدهٔ «انتخاب‌شده» کنترل‌های انتخاب (RadioCard، Checkbox) را دارد: حاشیهٔ رنگ متن روی زمینهٔ انتخاب، بدون حلقهٔ سبز. تکمیل‌شده سبز پر با تیک است، در انتظار سطح surface-200 با حاشیهٔ پیش‌فرض، و خطا قرمز پر.
  • خط اتصال رنگ حاشیهٔ پیش‌فرض را دارد و بعد از یک مرحلهٔ تکمیل‌شده سبز کم‌رنگ می‌شود؛ در حالت افقی از وسط نشانگرها می‌گذرد.
  • عنوان با نقش body (در sm، compact) و توضیح با caption در سطح کم‌رنگ‌تر متن. مرحلهٔ فعال aria-current="step" دارد.

حالت‌ها و انواع

عمودی

ثبت‌نام

ایجاد حساب کاربری

تأیید ایمیل

لینک تأیید ارسال شد

3

تنظیم پروفایل

اطلاعات تکمیلی

4

شروع به کار

اندازه‌ها

اول

2

دوم

3

سوم

اول

2

دوم

3

سوم

اول

2

دوم

3

سوم

وضعیت خطا

مرحله‌ای که اعتبارسنجی یا ثبت آن با شکست مواجه شده را با status="error" مشخص کنید — این مقدار، وضعیت محاسبه‌شده از روی activeStep را override می‌کند:

<Stepper activeStep={2}>
  <Step label="اطلاعات پایه" />
  <Step label="پرداخت" status="error" description="کارت رد شد" />
  <Step label="تکمیل سفارش" />
</Stepper>

اطلاعات پایه

پرداخت

کارت رد شد

3

تکمیل سفارش

اطلاعات پایه

نام و ایمیل

پرداخت

کارت رد شد

3

تکمیل سفارش

Props

Stepper

Prop

Type

Step

Prop

Type

راهنمای استفاده

بکنید

  • عنوان هر مرحله را کوتاه و واضح نگه دارید (2-3 کلمه) - از description برای توضیح مختصر هر مرحله استفاده کنید - برای فرم‌های موبایل، از orientation="vertical" استفاده کنید - وقتی ثبت یک مرحله شکست می‌خورد، status="error" بگذارید و دلیل را در description توضیح دهید

نکنید

  • بیش از 5-6 مرحله نگذارید — فرایند را ساده‌تر کنید یا مراحل را ادغام کنید - از Stepper برای ناوبری غیرترتیبی استفاده نکنید — از Tabs استفاده کنید

دسترسی‌پذیری

  • از role="list" و role="listitem" استفاده می‌کند
  • وضعیت هر مرحله از طریق aria-label اعلام می‌شود (تکمیل‌شده / فعال / در انتظار / خطا)

کامپوننت‌های مرتبط

  • Tabs — وقتی بخش‌ها ترتیب مشخصی ندارند و کاربر باید آزادانه بین آن‌ها جابجا شود
  • الگوهای فرم — راهنمای کامل ساخت فرم‌های چند مرحله‌ای با Stepper