← All UI screens

Loading spinner examples (HTML and CSS)

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.

DeviceAllWebMobile
StyleAllMinimalEditorialBrutalistLuxuryPlayfulCorporateRetroMonochrome
Theme

16 examples

Loading spinner component — web, minimal (Lumen Desk)
Web · minimal
Loading spinner component — web, editorial (Lumen Desk)
Web · editorial
Loading spinner component — web, brutalist (Lumen Desk)
Web · brutalist
Loading spinner component — web, luxury (Lumen Desk)
Web · luxury
Loading spinner component — web, playful (Lumen Desk)
Web · playful
Loading spinner component — web, corporate (Lumen Desk)
Web · corporate
Loading spinner component — web, retro (Lumen Desk)
Web · retro
Loading spinner component — web, monochrome (Lumen Desk)
Web · monochrome
Loading spinner component — mobile, minimal (Lumen Desk)
Mobile · minimal
Loading spinner component — mobile, editorial (Lumen Desk)
Mobile · editorial
Loading spinner component — mobile, brutalist (Lumen Desk)
Mobile · brutalist
Loading spinner component — mobile, luxury (Lumen Desk)
Mobile · luxury
Loading spinner component — mobile, playful (Lumen Desk)
Mobile · playful
Loading spinner component — mobile, corporate (Lumen Desk)
Mobile · corporate
Loading spinner component — mobile, retro (Lumen Desk)
Mobile · retro
Loading spinner component — mobile, monochrome (Lumen Desk)
Mobile · monochrome

Loading spinner design tips

Questions

How do I make a loading spinner accessible?

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.

Spinner or skeleton screen?

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.

Browse by pattern

App screens

Dashboard
Data table
Analytics charts
Login
Sign up
Forgot password
Two-factor code
Welcome
Onboarding step
Permissions request
Home
Feed
List view
Detail view
Kanban board
Calendar
File manager
Search results
Editor toolbar
AI chat assistant
Chat list
Chat thread
Video call
Image viewer
Map view
Video player
Create post
Class schedule
Booking details
Booking confirmed
Product detail
Cart
Checkout
Order confirmation
Settings
Profile
Notifications center
Team members
Roles permissions
Audit log
API keys
Integrations
Billing plans
Invoice
Paywall upgrade
Cancel subscription
Empty state
404 error
Loading skeleton
Success confirmation
AI workspace
AI settings
Version history
Approval queue
Doctor directory
Telehealth visit
Clinic home
Music player
Playlist
Portfolio home
Case study
Security dashboard
Project tracker
Course dashboard
Multi-step form wizard
Bank onboarding
Product scan
Split view (master-detail)
Canvas editor
Floor plan
Voice call
Toast / snackbar with undo
Confirm dialog (destructive)
Side drawer
Command palette
Date range picker
Form validation errors
Sign-in error
Card declined at checkout
Find a pro (home services)
Book a home-service visit
Job tracker
Account email
Order email
Shift scheduler
Leave calendar
Time-off request
Multi-location operations dashboard
Inventory stock
Savings goal
Onboarding carousel

UI components

Tabs
Cards
Pagination
Popover
Tooltip
Dropdown menu
Accordion
Radio buttons
Breadcrumbs
Toggle switch
Stepper
Sidebar navigation
Loading spinner

Website sections

Hero
Navigation header
Feature grid
Bento features
How it works
Logo cloud
Stats band
Testimonials
Pricing
Comparison table
Scored comparison table
Integrations grid
Security and trust
FAQ
CTA banner
About team
Careers
Blog index
Changelog
Contact form
Footer

Website templates

Casual dining website templates
Agency website templates
Architecture website templates
Wedding website templates
Ecommerce website templates
Cafe and coffee shop website templates
Salon website templates
Real estate agency website templates
Construction website templates
Law firm website templates
Dental website templates
Gym website templates
School and education website templates
Nonprofit website templates
Travel website templates
Hotel website templates
SaaS landing page templates
AI website templates
Medical website templates
Cardiology website templates
Dermatology website templates
Therapist website templates
Physical therapy website templates
Veterinary website templates
Financial advisor website templates
Cleaning service website templates
HVAC website templates
Cybersecurity website templates
CRM landing page templates
Coaching website templates
Pest control website templates
Solar website templates
AI agent website templates
Preschool website templates
Apartment community website templates
Pediatric website templates
Orthodontics website templates
Fertility clinic website templates
Hospital website templates
Mental health clinic website templates
Optometry website templates
Pharmacy website templates
Real estate agent website templates
Property management website templates
Luxury real estate website templates
Commercial real estate website templates
Vacation rental website templates
Home builder website templates
Bakery website templates
Pizzeria website templates
Bar and pub website templates
Catering website templates
Food truck website templates
Fine dining website templates
Building with an AI coding agent? Every screen here is also in the free Made Good Designs MCP server: ask Claude, Cursor or ChatGPT to 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.

Save to board