Progress
Determinate or indeterminate progress, measured on a hairline track.
Live — this one is real
Processing artwork42%
Usage
import { useState } from "react";
import { Progress } from "mizu-ui";
export function Example() {
const [value, setValue] = useState(42);
return (
<>
<Progress label="Processing artwork" value={value} />
<input
type="range"
aria-label="Demo progress"
value={value}
onChange={(e) => setValue(Number(e.target.value))}
/>
</>
);
}
Source & setup
Import mizu-ui/styles.css once. Fonts are optional via mizu-ui/fonts.css. Override --mizu-* tokens or use className for local styling. Uses native React and CSS; install the package peers for root imports.
Inspect status/Feedback.tsx
Source is included in the npm package under src/status/Feedback.tsx.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| value | number | undefined | — | Omit for indeterminate progress. |
| max | number | 100 | Completion value. |
| label / showValue | string / boolean | — | Accessible label and visible percentage. |
Accessibility
Native progress announces its value. Omitted value represents an unknown completion amount.
Motion
CSS transitions explain state changes. Reduced motion removes travel.