Skip to content

ProgressCircle

Construct ProgressCircle() for ongoing work with unknown completion, or pass a normalized progress value for determinate work.

Row {
ProgressCircle(),
Text("Connecting"),
ProgressCircle(progress),
Text::Format("{}%", static_cast<int>(progress * 100.0F)),
}.With(
Spacing(10.0F),
CrossAlign(CrossAxisAlignment::Center)
)

Progress is controlled by the caller. Passing State<float> reads its current value; update the state to supply the next progress.

The component exposes progress-indicator semantics. Determinate mode reports its range value, while indeterminate mode communicates busy progress without inventing a percentage.

ProgressCircleStyle controls size, stroke width, track and indicator colors, track gap, indeterminate motion, arc fractions, and animation duration. Reduced-motion themes suppress or simplify continuous motion.

  • Constructors: ProgressCircle(), ProgressCircle(float), ProgressCircle(State<float>).
  • Common modifiers: Frame, Opacity, Semantics for an application-specific label.
  • Theme style: ProgressCircleStyle and ProgressCircleIndeterminateMotion.

Use ProgressBar when the available width should communicate progress along a linear track.