Loading spinners tell people something is working when you cannot show progress. These examples include three sizes, a button that shows a busy state and an inline status, with the spinner inside role="status" and visually hidden text so the message is read once. Under prefers-reduced-motion the spin slows down and pulses gently. Pure CSS spinners in eight styles, light and dark. Every example is an original design that comes with its HTML code and a DESIGN.md of colour, type and spacing tokens, in light and dark. Free to use and adapt.
16 examples
Put it in an element with role="status" together with text such as Loading…, visually hidden if needed, and hide the spinning shape itself from screen readers. Respect prefers-reduced-motion.
A spinner suits short waits and actions such as saving. A skeleton suits loading a page or list, because it shows the layout that is coming and feels faster.
App screens
UI components
Website sections
Website templates
search_ui_screens (e.g. “billing settings, editorial style”), get_ui_flow for a whole journey, and get_ui_screen_code to pull the HTML and DESIGN.md straight into your project.