Navigasi & Struktur

Stepper (Indikator Tahapan Formulir)

Penanda langkah berurutan untuk memandu warga menyelesaikan formulir permohonan layanan yang panjang.

Stepper (.mjl-stepper) memecah formulir permohonan perizinan atau kependudukan yang rumit menjadi beberapa tahap logis yang mudah dipahami warga.

Di layar lebar stepper tampil horizontal; di bawah 768px otomatis berubah vertikal agar judul tahap tidak terpotong di HP.


1. Pratinjau Stepper 4 Tahap

Pratinjau Alur Permohonan
  1. Selesai: Data Diri NIK & KK
  2. Tahap saat ini: Unggah Berkas Foto dokumen
  3. Belum dimulai: Konfirmasi Tinjau ulang
  4. Belum dimulai: Selesai Nomor tiket

2. Tahap Terakhir Sedang Berjalan

Stepper 3 Tahap
  1. Selesai: Isi Data Data pemohon
  2. Selesai: Unggah Berkas KTP & KK
  3. Tahap saat ini: Konfirmasi Tinjau ulang

3. Status Tahap

ClassTampilanKapan dipakai
mjl-stepper__item--completedLingkaran biru penuh berisi centang, garis penghubung biruTahap yang sudah selesai
mjl-stepper__item--currentLingkaran bergaris biru dengan cincin fokusTahap yang sedang diisi warga (tambahkan aria-current="step")
(tanpa modifier)Lingkaran abu-abuTahap yang belum dimulai

Penggunaan di Berbagai Teknologi

Salin contoh sesuai teknologi proyek Anda. Semua versi memakai class dari @majalengka/css. Komponen siap pakai tersedia di @majalengka/vue; untuk React, Angular, Laravel, dan PHP, contoh di bawah sudah berupa pembungkus kecil yang bisa langsung disalin ke proyek.

<ol class="mjl-stepper" aria-label="Tahapan pengajuan">
  <li class="mjl-stepper__item mjl-stepper__item--completed">
    <span class="mjl-stepper__indicator" aria-hidden="true">✓</span>
    <div class="mjl-stepper__content">
      <span class="mjl-stepper__title"><span class="sr-only">Selesai: </span>Data Diri</span>
    </div>
  </li>
  <li class="mjl-stepper__item mjl-stepper__item--current" aria-current="step">
    <span class="mjl-stepper__indicator" aria-hidden="true">2</span>
    <div class="mjl-stepper__content">
      <span class="mjl-stepper__title"><span class="sr-only">Tahap saat ini: </span>Unggah Berkas</span>
    </div>
  </li>
  <li class="mjl-stepper__item">
    <span class="mjl-stepper__indicator" aria-hidden="true">3</span>
    <div class="mjl-stepper__content">
      <span class="mjl-stepper__title"><span class="sr-only">Belum dimulai: </span>Konfirmasi</span>
    </div>
  </li>
</ol>

4. Kaidah Aksesibilitas

  1. Pakai <ol>: urutan tahap ikut terbaca oleh pembaca layar ("daftar, 4 item").
  2. aria-current="step" pada tahap yang sedang berjalan.
  3. Status tidak boleh hanya lewat warna (WCAG 1.4.1): sertakan teks tersembunyi seperti <span class="sr-only">Selesai: </span> di judul tahap. Komponen Vue MjlStepper sudah melakukannya otomatis.
  4. Indikator bersifat dekoratif (aria-hidden="true"), karena nomor tahap sudah tersirat dari urutan daftar.
Copyright © 2026