mcpField
S
syncfusion-react-stepper

syncfusion-react-stepper

github.com/syncfusionデザイン・UI3657 回インストール1 週間前に更新
リポジトリ

syncfusion-react-stepper について

React 開発者向けに、複数ステップのプロセスを表示・制御する Syncfusion Stepper の実装を支援するスキルです。ナビゲーション、検証、外観のカスタマイズ、キーボード操作、ローカライズを扱います。

主な機能

  1. 01水平・垂直ナビゲーションの設定
  2. 02線形・非線形フローの選択
  3. 03ステップ移動前の入力検証
  4. 04アイコン、ラベル、テンプレートのカスタマイズ
  5. 05キーボード操作、ARIA、RTL への対応

活用シーン

  1. 01EC のチェックアウトフローの構築
  2. 02複数段階の登録フォームの作成
  3. 03ソフトウェア設定ウィザードの作成
  4. 04進捗表示付きアンケートの設計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-stepper

インストール後、Claude Code で/syncfusion-react-stepperを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
accessibility-globalization.md
advanced-patterns.md
animation-template-tooltip.md
events-and-interactions.md
getting-started.md
linear-flow-and-validation.md
methods-and-advanced.md
orientations-and-types.md
steps-and-configuration.md

詳細

Syncfusion React Stepper の実装

Stepper コンポーネントは、視覚的なインジケーター、ステップラベル、柔軟な設定により、複数ステップのワークフローやプロセスをユーザーが進められるように案内します。ウィザード、チェックアウトフロー、オンボーディングプロセスなど、順番に進むナビゲーションが必要なガイド付きユーザー体験に最適です。

このスキルを使う場面

次のような場合は、Stepper コンポーネントを使用してください。

  • チェックアウト、登録、セットアップウィザードなどの複数ステップのプロセスをユーザーに案内する
  • 進行状況を表示しながら、ステップごとのワークフローを示す
  • 次のステップに進む前に、ユーザー入力を検証する
  • 線形または非線形のナビゲーションパターンに対応する
  • アイコン、ラベル、テンプレートを使って外観をカスタマイズする
  • コンテンツをさまざまな言語や地域向けにローカライズする

コンポーネントの概要

主な機能:

  • ステップナビゲーション: 水平方向と垂直方向の配置、順次ナビゲーションまたは自由なナビゲーション
  • ステップの種類: デフォルト(アイコン+ラベル)、ラベルのみ、インジケーターのみの各モード
  • イベント: ステップの変更、検証、操作を追跡
  • スタイル設定: アニメーション、テンプレート、カスタム CSS、ツールチップ
  • アクセシビリティ: 完全なキーボードナビゲーションと ARIA のサポート
  • グローバル化: 多言語サポートと RTL への対応

ドキュメントとナビゲーションガイド

はじめにとインストール

📄 参照: references/getting-started.md

  • パッケージのインストールと依存関係
  • CSS のインポートとテーマの設定
  • 最初の Stepper の作成
  • 初期設定とレンダリング
基本設定:ステップとプロパティ

📄 参照: references/steps-and-configuration.md

  • StepDirective を使用したステップの追加と定義
  • アイコンの CSS、テキスト、ラベルのプロパティ
  • アクティブなステップの管理
  • 無効状態とカスタマイズ
  • CSS クラスの設定
レイアウトと外観:配置と種類

📄 参照: references/orientations-and-types.md

  • 水平方向と垂直方向の配置
  • ステップの種類のモード(Default、Label、Indicator)
  • ラベルの配置(Top、Bottom、Start、End)
  • RTL のサポートとレスポンシブデザイン
操作と動作:イベント

📄 参照: references/events-and-interactions.md

  • ライフサイクルイベント:created、stepChanged、stepChanging
  • ユーザー操作イベント:stepClick、beforeStepRender
  • イベント引数と処理パターン
  • 意図しない遷移の防止
ワークフローの制御:線形フローと検証

📄 参照: references/linear-flow-and-validation.md

  • 順次ナビゲーションを行う線形 Stepper の設定
  • ステップの検証とステータス管理
  • 無効な遷移の防止
  • Stepper の状態のリセット
高度なスタイル設定とカスタマイズ

📄 参照: references/animation-template-tooltip.md

  • アニメーションの設定とタイミング
  • ステップのテンプレートのカスタマイズ
  • ツールチップの統合と表示
  • カスタムコンテンツのレンダリング
メソッドと高度なパターン

📄 参照: references/methods-and-advanced.md

  • コンポーネントのメソッド(reset など)
  • 2 つの API パターン(コンポーネントベースとプロパティベース)
  • 高度なユースケースとパターン
  • パフォーマンス最適化のヒント
ベストプラクティス:アクセシビリティとローカライズ

📄 参照: references/accessibility-globalization.md

  • WCAG 準拠と ARIA 属性
  • キーボードナビゲーションのガイドライン
  • グローバル化とローカライズ
  • RTL サポートの実装

クイックスタートの例

パターン 1:コンポーネントベース(StepsDirective)
import React from 'react';
import { StepperComponent, StepsDirective, StepDirective } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  return (
    <div>
      <StepperComponent>
        <StepsDirective>
          <StepDirective iconCss="sf-icon-cart" label="Cart" />
          <StepDirective iconCss="sf-icon-transport" label="Delivery" />
          <StepDirective iconCss="sf-icon-payment" label="Payment" />
          <StepDirective iconCss="sf-icon-success" label="Confirmation" />
        </StepsDirective>
      </StepperComponent>
    </div>
  );
}

export default App;
パターン 2:プロパティベース(steps 配列)
import React from 'react';
import { StepperComponent } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  const steps = [
    { iconCss: 'sf-icon-cart', label: 'Cart' },
    { iconCss: 'sf-icon-transport', label: 'Delivery' },
    { iconCss: 'sf-icon-payment', label: 'Payment' },
    { iconCss: 'sf-icon-success', label: 'Confirmation' }
  ];

  return (
    <div>
      <StepperComponent steps={steps} />
    </div>
  );
}

export default App;

よくあるパターン

パターン 1:検証付きウィザード
const [activeStep, setActiveStep] = React.useState(0);
const stepperRef = React.useRef(null);

const handleStepChanging = (args) => {
  // Validate current step before advancing
  if (!validateStep(activeStep)) {
    args.cancel = true; // Prevent transition
  }
};

<StepperComponent 
  ref={stepperRef}
  stepChanging={handleStepChanging}
>
  {/* steps */}
</StepperComponent>
パターン 2:線形ナビゲーションと非線形ナビゲーション
// Linear: Users must complete steps sequentially
<StepperComponent linear={true}>

// Non-linear: Users can skip to any step
<StepperComponent linear={false}>
パターン 3:レスポンシブな配置
// Auto-switch orientation based on screen size
const [orientation, setOrientation] = React.useState('horizontal');

React.useEffect(() => {
  const handleResize = () => {
    setOrientation(window.innerWidth < 768 ? 'vertical' : 'horizontal');
  };
  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, []);

<StepperComponent orientation={orientation}>

主な Props と設定

コンポーネントのプロパティ
PropTypeDefaultPurpose
activeStepnumber0現在アクティブなステップのインデックス
animationStepperAnimationSettingsModelundefinedアニメーションの設定(有効化、期間、遅延)
cssClassstring''カスタムスタイル用の CSS クラス
enablePersistencebooleanfalseページの再読み込み後もコンポーネントの状態を保持します
enableRtlbooleanfalse右から左へのレイアウトを有効にします
labelPositionstring'Bottom'ラベルの配置位置:'Top'、'Bottom'、'Start'、'End'
linearbooleanfalseステップを順番に移動するように制限します
localestring'en-US'ローカライズ用のカルチャコード
orientationstring'horizontal'レイアウトの向き:'horizontal' または 'vertical'
readOnlybooleanfalseユーザー操作を無効にします
showTooltipbooleantrueホバー時にツールチップを表示します
stepTypestring'Default'表示モード:'Default'、'Label'、'Indicator'
stepsStepModel[][]ステップオブジェクトの配列(プロパティベースのパターン)
templatestring | functionundefinedステップ用のカスタムテンプレート
tooltipTemplatestring | functionundefinedツールチップ用のカスタムテンプレート
ステップのプロパティ(StepModel)
PropertyTypePurpose
cssClassstring個々のステップのスタイル設定用 CSS クラス
disabledbooleanステップを無効にします
iconCssstringステップのアイコン用 CSS クラス
isValidbooleanステップの検証状態
labelstringステップのラベルテキスト
optionalbooleanステップを任意としてマークします
statusstringステップの状態:'NotStarted'、'InProgress'、'Completed'
textstringテキスト内容(通常は数値)
アニメーションの設定
PropertyTypeDefaultPurpose
enablebooleantrueアニメーションを有効にします
durationnumber400アニメーションの期間(ミリ秒)
delaynumber0アニメーション開始前の遅延時間
イベント
EventFiresUse ForArguments
createdコンポーネントの初期化後セットアップ、初期化Event
stepChangedステップの変更後UI の更新、コンテンツの読み込みStepperChangedEventArgs
stepChangingステップの変更前検証、遷移の防止StepperChangingEventArgs
stepClickユーザーがステップをクリックしたとき操作の追跡StepperClickEventArgs
beforeStepRender各ステップの描画前ステップの外観のカスタマイズStepperRenderingEventArgs
メソッド
MethodParametersReturnsPurpose
reset()なしvoidステッパーを初期状態(activeStep: 0)にリセットします
nextStep()なしvoidプログラムから次のステップに進みます
previousStep()なしvoidプログラムから前のステップに戻ります
refreshProgressbar()なしvoidコンテナーのサイズ変更時にプログレスバーを更新します
destroy()なしvoidコンポーネントを破棄してリソースを解放します

イベント引数のリファレンス:

  • StepperChangedEventArgs: activeStep、previousStep、isInteracted、name、event、element
  • StepperChangingEventArgs: activeStep、previousStep、cancel、isInteracted、name、event、element
  • StepperClickEventArgs: activeStep、name、event、element
  • StepperRenderingEventArgs: activeStep、name、element

よくあるユースケース

  • E コマースのチェックアウト: 注文確認、配送、支払いを含む複数ステップのチェックアウトフロー
  • ユーザー登録: メールアドレス、プロフィール、確認を含む複数ステップの登録
  • セットアップウィザード: 設定手順を含むソフトウェアのオンボーディング
  • アンケートフォーム: 進行状況を示す、ステップごとに進む質問票
  • インストールガイド: 手順と検証を含むインストールの各ステップ

コメント