Function
Where the learner is: watched percent, or completed lessons
Presentational and nothing else: it reads no storage, calls no hook and formats no copy. Both labels are passed in already localized, so the two islands that use it — one counting seconds of a video, one counting lessons of a module — differ in what they count without differing in how a bar looks.
The state never rests on the fill alone: the bar carries
role="progressbar" with its value and bounds for assistive technology,
and the visible label states the same thing in text for a learner who
cannot separate the gold from the track.
The fill is clamped, so an out-of-range value — a stored position past a lesson's duration, say — draws a full bar rather than overflowing its track.
A thin gold meter with its reading beside it.