プログレス・スピナー (Progress & Spinner)
進捗状況やローディング状態を表示するコンポーネントです。進捗バー、円形プログレス、各種スピナーアニメーションを提供します。
プログレスバー
基本的な使用
25% 完了
75% 完了
基本のCode:
<div class=“progress progress-md”>
<div class=“progress-bar” style=“width: 50%“>50%</div>
</div>サイズ
サイズバリエーション
小さいサイズ
標準サイズ
大きいサイズ
特大サイズ
サイズのCode:
<div class=“progress progress-sm”>…</div>
<div class=“progress progress-md”>…</div>
<div class=“progress progress-lg”>…</div>
<div class=“progress progress-xl”>…</div>色
色バリエーション
プライマリー
セカンダリー
成功
警告
危険
情報
色のCode:
<div class=“progress progress-lg progress-success”>
<div class=“progress-bar” style=“width: 70%“>70%</div>
</div>ストライプ・アニメーション
視覚効果
ストライプ
アニメーション付きストライプ
成功(アニメーション)
ストライプのCode:
<div class=“progress progress-lg progress-striped progress-animated”>
<div class=“progress-bar” style=“width: 75%“>75%</div>
</div>円形プログレス
円形プログレス
60%
75%
90%
45%
円形プログレスのCode:
<div class=“progress-circle progress-circle-md”>
<svg viewBox=“0 0 36 36”>
<circle class=“progress-circle-track” cx=“18” cy=“18” r=“16”></circle>
<circle class=“progress-circle-fill” cx=“18” cy=“18” r=“16”
stroke-dasharray=“75, 100” stroke-dashoffset=“0”></circle>
</svg>
<div class=“progress-circle-text”>75%</div>
</div>スピナー
リングスピナー
リングスピナーのCode:
<div class=“spinner spinner-md spinner-ring spinner-primary”></div>ドットスピナー
ドットスピナーのCode:
<div class=“spinner-dots spinner-primary”>
<div class=“spinner-dot”></div>
<div class=“spinner-dot”></div>
<div class=“spinner-dot”></div>
</div>パルススピナー
パルススピナーのCode:
<div class=“spinner spinner-md spinner-pulse spinner-info”></div>ラベル付きプログレス
詳細ラベル
ファイルアップロード3.2 MB / 5.0 MB
インストール進行中85%
ダウンロード124 KB/s
ラベル付きのCode:
<div class=“progress-with-label”>
<div class=“progress-label”>
<span>ファイルアップロード</span>
<span>3.2 MB / 5.0 MB</span>
</div>
<div class=“progress progress-md”>
<div class=“progress-bar” style=“width: 64%”></div>
</div>
</div>ステップ式プログレス
マルチステップ
3
4
個人情報連絡先確認完了
ステップ式のCode:
<div class=“progress-steps”>
<div class=“progress-step completed”>✓</div>
<div class=“progress-connector completed”></div>
<div class=“progress-step active”>2</div>
<div class=“progress-connector”></div>
<div class=“progress-step”>3</div>
</div>実用的なパターン
ファイルアップロード
document.pdf
2.4 MB
アップロード中…68%
フォーム送信
送信中…
しばらくお待ちください
データ読み込み
ページローディング
読み込み中
コンテンツを準備しています…
ファイルアップロードのCode:
<div class=“border border-gray-200 rounded-lg p-4”>
<div class=“flex items-center justify-between mb-3”>
<div class=“flex items-center gap-3”>
<svg class=“w-8 h-8 text-gray-400”>…</svg>
<div>
<div class=“font-medium text-sm”>document.pdf</div>
<div class=“text-xs text-gray-500”>2.4 MB</div>
</div>
</div>
<div class=“spinner spinner-sm spinner-ring spinner-primary”></div>
</div>
<div class=“progress progress-sm”>
<div class=“progress-bar” style=“width: 68%”></div>
</div>
</div>ローディング画面のCode:
<div class=“loading-inline”>
<div class=“text-center”>
<div class=“spinner spinner-lg spinner-ring spinner-primary mb-4”></div>
<div class=“text-lg font-medium text-gray-900 mb-2”>読み込み中</div>
<div class=“progress progress-md max-w-xs mx-auto”>
<div class=“progress-bar” style=“width: 35%”></div>
</div>
</div>
</div>アクセシビリティ
- • プログレスバーには
role="progressbar"を設定 - •
aria-valuenow,aria-valuemin,aria-valuemaxで現在値を通知 - •
aria-labelまたはaria-labelledbyで進捗の内容を説明 - • 不確定な進捗は
aria-valuetext="読み込み中"を使用 - • 色だけでなくパーセンテージやテキストでも進捗を表現
- • 完了時には
aria-valuenow="100"と完了状態を通知 - • 長時間の処理では定期的な進捗更新とキャンセル機能を提供
- • スピナーには
aria-hidden="true"(装飾目的)またはラベルを設定 - • 十分なコントラスト比を確保(背景色と進捗色)
適切なARIA属性が設定されたプログレスバー