進捗バーProgressBeta

タスクの進捗を示すインジケーターです。

プレビュー

アップロード66%

残り 4 ファイルを処理しています。

状態とバリエーション

進行中

割合と補足文を近くに置いて、何の進捗かを明確にします。

アップロード66%

残り 4 ファイルを処理しています。

動的な進捗

Progress は現在値を描画します。進行、停止、失敗、再試行などの処理状態は親側で管理し、近くのテキストと操作で伝えます。

ファイルアップロード28%

残り 5 ファイルを処理しています。

開始直後

値が小さい場合もバーの高さと横幅は変えず、レイアウトを保ちます。

アップロード18%

キューを準備しています。

意味を持つ充填(tone)

容量・予算・健全性など、充填そのものが意味を持つときは tone で色を変えます(残りわずか→warning、超過→destructive)。色だけに頼らず近くのテキストでも伝えます。

棚 A-01 充填45%

余裕あり。

棚 B-07 充填82%

残りわずか。

棚 C-02 充填100%

満杯。別ロケーションへ。

完了

完了状態も同じコンポーネントで表し、文言で処理が終わったことを伝えます。

アップロード100%

すべてのファイルを処理しました。

最大値を指定

容量や件数など、100以外の単位では max を指定します。

ストレージ42 / 64 GB

最大値が 100 以外の場合は max を指定します。

プロパティ

表は横にスクロールできます
プロパティ初期値説明
valuenumber0現在の進捗値です。
maxnumber100進捗の最大値です。value は max に対する割合で表示されます。
tone"default" | "primary" | "success" | "warning" | "destructive" | "info""default"充填バーの意味色です。容量・予算・健全性など充填自体が意味を持つときに使います(既定は中立の foreground)。
labelstring-進捗バーのアクセシブルな名前です(progressbar には名前が必要)。
valueTextstring-スクリーンリーダーへ読み上げる人間可読な値です(例: 「完了 42/120」)。
classNamestring-進捗バーのサイズや余白を調整するクラスです。

使い方

import { Progress } from "@gunjo/ui"

export function UploadProgress() {
  const value = 66

  return (
    <div className="w-full max-w-sm space-y-2">
      <div className="flex items-center justify-between gap-3 text-sm">
        <span className="font-medium">アップロード</span>
        <span className="text-muted-foreground">{value}%</span>
      </div>
      <Progress
        value={value}
        className="h-2 w-full"
        aria-label="アップロード進捗"
      />
      <p className="text-xs text-muted-foreground">
        残り 4 ファイルを処理しています。
      </p>
    </div>
  )
}

使用コンポーネント

設計の判断(UIXHERO)

「いつ・なぜ使うか」の判断は、姉妹サイト UIXHERO の記事で解説しています。