動手試試
最簡用法
Upload.jsx<ProgressBar value={progress} max={100} />
<ProgressRing value={progress} size={96}>{progress}%</ProgressRing>
<ProgressBar value={null} /> {}
它替你處理的事
- 值會限制在
0…max 範圍內,null 會顯示不確定的掃動條或旋轉弧線。 - 動態進行中的新值會帶著速度繼續。
- 始終是一條連續的線或弧,絕不會跳格。
- 指定了
duration 的彈簧會恰好在那一刻結束。
適用情境
- 檔案上傳。
- 已用儲存空間占配額的比例。
- 結帳流程的進度。
Props
ProgressBar
| Prop | 型別 | 預設值 | 說明 |
|---|
value | number | null | | 從 0 到 max 的進度;null 表示不確定。 |
|---|
max | number | 100 | 代表完成的值。 |
|---|
color | string | 'currentColor' | 填色顏色。 |
|---|
trackColor | string | '#e7ece9' | 軌道顏色。 |
|---|
thickness | number | 8 | 線條粗細,單位為像素。 |
|---|
direction | 'ltr' | 'rtl' | 'ltr' | 從左(ltr)或從右(rtl)開始填滿。 |
|---|
transition | Transition | spring | 時間曲線 { duration, easing } 或彈簧 { tempo: 'spring', spring }。彈簧被中斷時會保留動量。 |
|---|
ProgressRing
| Prop | 型別 | 預設值 | 說明 |
|---|
value | number | null | | 從 0 到 max 的進度;null 表示不確定。 |
|---|
max | number | 100 | 代表完成的值。 |
|---|
size | number | 96 | 直徑,單位為像素。 |
|---|
thickness | number | 8 | 圓環粗細,單位為像素。 |
|---|
color | string | 'currentColor' | 弧線顏色。 |
|---|
trackColor | string | '#e7ece9' | 軌道顏色。 |
|---|
children | ReactNode | | 顯示在中間的標籤。 |
|---|
transition | Transition | spring | 時間曲線 { duration, easing } 或彈簧 { tempo: 'spring', spring }。彈簧被中斷時會保留動量。 |
|---|
其他 props 會傳給渲染的元素,所以 className、style 與事件處理函式照常可用。