ProgressViewProgressView(value:)stock · do not build
A 4pt linear bar, tinted. Sits under the subtitle inside a row. The determinate form takes a value; the indeterminate form animates on the system’s own timing.
Determinate
tint fill on --component-bg-active
Complete
seeding, ratio in the subtitle
Failed
--red-solid remainder, reason in the subtitle
Height
4pt
system linear style
Track
--component-bg-active
Fill
--yellow-solid
from .tint()
Failed
--red-solid
semantic role
Do not. Paint the row background as the progress fill. That is the tier-1 web recipe; it makes the row background mean two things and it loses VoiceOver.