About this set
A bold under construction page on safety yellow with hazard tape along the top and bottom edges and a faint blueprint grid. The demo is an architecture practice rebuilding its site: a Hard hats on tag, a heavy uppercase headline, a short paragraph with the reopening month, and two buttons, one to email the studio and one to the old portfolio. Beside it, a dark panel shows the rebuild progress as a large percentage over a striped bar, followed by a checklist of site sections marked Done, Building and Next. Use it when a site is being replaced and visitors still need a way to reach you. There is no JavaScript. The percentage and the bar both read one registered custom property, –uc-p, set once in the markup, and a single CSS animation counts the number up from zero while the bar fills beside it. The number is drawn with a CSS counter and hidden from screen readers, which get the real value from role=”progressbar” and aria-valuenow. The stripes move with a background-position animation, and both animations stop under reduced motion.
What’s included
- Hazard tape edges and blueprint grid drawn with CSS gradients
- Percentage counts up and the bar fills from one @property value
- role="progressbar" with aria-valuenow for the real figure
- Section checklist marked Done, Building and Next
- No JavaScript; Bootstrap version uses .progress-bar-striped and a dark data-bs-theme panel
Accessibility
The bar has role="progressbar" with aria-valuenow, aria-valuemin and aria-valuemax, named by the Rebuild progress label; the animated percentage is aria-hidden so it is not read twice. Checklist states are written as text, and the tick marks are decorative. Links and buttons show a 3px black focus outline on the yellow page. The count-up, the moving stripes and the button lift are all removed under prefers-reduced-motion.
Customise it
Set the progress in one place, style="--uc-p:72" on the meter, and keep aria-valuenow in step. Colours are --uc-yellow, --uc-ink and --uc-panel on .uc, or the --color-uc-* theme colours in Tailwind; the tape width is the 16px step in the repeating-linear-gradient.






