Use the native <progress> element for determinate bars (upload percent, course completion) and the indeterminate state when the value is unknown. Pico styles the bar without chart libraries or spinners.
Loading with aria-busy
Add aria-busy="true" to article, inline text, or button while async work runs—Pico shows a loading treatment on that node. Pair with visible text (“Saving…”) so screen reader users hear progress, not silence.
Compared to framework spinners
Bootstrap’s spinner-border is a separate component; Pico favors busy regions tied to the element being updated—closer to how docs sites skeleton-load a card.
Self-check
- Which element shows an unknown-duration wait state?
- What attribute marks a button as busy during fetch?