About this set
Notifications people act on without leaving the page. The invitations list holds a workspace invite with Accept and Decline, a calendar invite that shows the time and room, and an access request with Approve and Deny. Answering replaces the buttons with a result line, such as You joined Harbor Design System as an Editor, which takes focus and is announced. The undo toast is a dark snackbar for a deleted conversation with an Undo button that counts down from ten seconds and a bar that shrinks with it; hovering or focusing the toast pauses the countdown, Undo restores the conversation and says so, and a Delete conversation button brings the toast back. The upload toast lists three files with a type tile, a percentage and a progress bar each, says how many are still uploading, and ends with 3 files uploaded, a View files link and Upload again; the close button cancels. The progress is simulated by a small timer, so swap tick() for your upload’s progress events. Use the invitations in a notification centre and the two toasts in a corner of the app.
What’s included
- Accept and Decline answered in place, with focus moved to the result
- Undo snackbar with a visible ten-second countdown that pauses on hover and focus
- Upload toast with one labelled progress bar per file
- Live region messages for every result, announced once, not every second
- Bootstrap .list-group, .toast, .progress and .badge without its JavaScript
Accessibility
Each result line is focusable with tabindex="-1" and receives focus after Accept or Decline, and polite status regions announce invitation results, the delete and restore, and the upload outcome; the countdown itself is not announced every second. Progress bars use role="progressbar" with aria-valuenow and are labelled by their file name. Every button has a visible focus outline, and the toast entrance and bar transitions are off under prefers-reduced-motion.
Customise it
In plain CSS change --an-brand, --an-ink, --an-text and --an-line on .an, the snackbar colours on .an-snack and the countdown length in the TOTAL constant. In Bootstrap restyle through --bs-btn-*, --bs-toast-* and --bs-progress-* variables; in Tailwind edit the hex values in the bg-, border- and text- utilities.






