縦ステップインジケータ

UI コンポーネント Medium #css #step #vertical #wizard

縦ステップインジケータは、申込や予約などの複数段階フローを縦一列に並べ、進み具合を可視化する UI です。各ステップは丸い番号と見出し・補足テキストで構成され、左側を縦に貫く線( ::before で描画)が全体を一本につないで「順序」を表します。

▶ プレビュー

解説

縦ステップインジケータは、申込や予約などの複数段階フローを縦一列に並べ、進み具合を可視化する UI です。各ステップは丸い番号と見出し・補足テキストで構成され、左側を縦に貫く線(::before で描画)が全体を一本につないで「順序」を表します。完了したステップは is-done クラスでチェックマークの SVG に切り替わり、現在地のステップは強調表示されるため、利用者は今どこにいて、あと何が残っているかを直感的に把握できます。CSS のみで動作し JavaScript は不要です。

こんなフローに最適

  • 会員登録や購入手続きの進捗表示
  • 予約・申込フォームの段階案内
  • オンボーディングや設定ウィザード

状態の切り替えは、各ステップの <li> に付けるクラス(完了・現在・未着手)を変えるだけです。縦線の色や太さは ::beforebackgroundwidth で、丸い番号のサイズは .sv__no で調整できます。横並びより縦並びは説明文を添えやすいのが利点で、各ステップに何をするかの一文を入れると離脱を抑えられます。完了マークはアイコンを使っているため OS に依存せず表示が崩れません。読み上げ対応として、現在ステップに aria-current="step" を付けると親切です。

よくある質問

現在のステップを切り替えるにはどうしますか?
各 li に付ける状態クラスを変えるだけです。完了したステップには is-done を、現在地のステップには現在を示すクラスを付け、残りは未着手の見た目にすれば、進捗に合わせて表示が変わります。
横並びのステップにはできますか?
このスニペットは縦並び専用ですが、考え方は応用できます。横並びにする場合は、縦線を引いている ::before を横方向に変え、li を flex で横に並べる調整が必要になります。
追加日:2026-05-11
← すべてのスニペットへ戻る