We’re all becoming increasingly less patient. Especially the younger audience — there’s even a phrase for it now — the TikTok attention span.
I realized just how real this is when a friend of mine told me he never takes the elevator if it’s not already on his floor — because he “hates the loading screen effect”. Waiting a few seconds for the elevator to arrive is already too much. Wow.
I can’t judge, though. I also get surprisingly annoyed when a video buffers for even two seconds before it starts playing.
This impatience is real, and it’s only going to grow as the world gets faster. UX designers need to keep that in mind when designing product experiences. And the fact that the perceived wait times are significantly longer than the actual wait time doesn’t help. Unoccupied time simply feels longer than occupied time — we’ve all experienced how time flies when we’re having fun and how it tends to drag on if we are bored.
Ideally, we’d remove the wait altogether. But that’s rarely possible. So instead, we need to design wait experiences in a way that doesn’t annoy users. Better yet, let’s make them pleasant. Let’s learn how.
How to make loading screens more tolerable?
There are two main ways to make waiting time more bearable — or maybe even enjoyable.
You can either make it fun or usable.
Making wait time fun
There are small, subtle ways you can make the wait feel entertaining, even delightful:
Design joyful spinners
Loading spinners are one of the most common visual cues that something’s happening in the background, and that users have to wait.
But here’s a rule I love — break the pattern. Go wild. Make something mesmerizing.
An engaging, creative spinner can make ten seconds feel like two, and we should strive to make users perceive the wait time as less than 400ms — that’s the Doherty threshold. In theory, there’s nothing to really grab attention, but we like looking at satisfying moving objects. And that’s exactly the reason why many short TikTok videos have split-screen effects with half of the screen being there just to capture with visual effects:
It’s actually super easy to create downloadable animations in CSS with some basic web design skills. So, you can build a spinner with CSS.
Use skeleton patterns
Skeleton patterns serve a similar purpose to joyful spinners — they show progress while grabbing attention.
Whenever text content is loading, you should use the skeleton pattern. It signals “we’re working on it” in a visual, non-verbal way.
I sometimes even get annoyed when the page loads too fast because I was enjoying the skeleton layout. They both tend to look captivating and also give an illusion of speed — it feels as if a lot is happening in the background!
Skeleton screens significantly improve UX by mitigating the user frustrations associated with entirely blank screens and giving users an idea of what content will look like before it loads.
And, it’s easy to use a skeleton UI in React applications.
Show the value that’s happening in the background
Wait time often means something valuable is happening in the background that makes the product even better. Let users in on it.
I love how eSky handles this:
When I search for flights, I don’t just see a spinner. I see real-time status updates —
“Searching easyJet” or “Checked X out of 31 providers.”
These messages make me feel like the product is working for me. The process feels active and thoughtful — even if it’s just a cleverly faked sequence.
(Yes, I tested it. The messages appear in the same order every time. Smart fake door!)
Even if it’s smoke and mirrors, it still reinforces user trust and shows perceived value.
Making wait time usable
If users have to wait, why not let them do something useful with that time?
The gaming industry is often at the forefront of innovation here. I check in every now and then just to see how games handle load times.
Use loading screens for tips and tricks
Offer tips and tricks on how to get the most value out of your product.
Take Sims 4, for example:
You get a new tip every ~10 seconds. It’s subtle onboarding. You’re learning without even realizing it.
This technique can be applied to almost any product — especially ones with a learning curve.
Tell users how long it’ll take
For longer wait times, always include an ETA if possible.
Users shouldn’t have to guess whether they have time to grab a coffee or if everything will be done in twenty seconds.
“X minutes remaining” should be a standard pattern for anything that takes more than a minute to load:
Make it part of the product experience
Some products are all about a particular state of mind, or all about a transition. Help users get there.
Take Headspace’s splash screen as an example:
Since it’s a meditation app, users arrive wanting to slow down. And Headspace meets them halfway — with a simple “breath in, breath out” animation. To some extent, users are already engaging with the purpose of the app even before it fully loads.
Experiment with more interesting app loading states than just the logo itself, whether an animation, a motivational quote, or a relevant picture.
You can build a splash screen in React.
Wait time and accessibility
When working on wait time user experience, it’s important not to forget the accessibility factor, especially for the sight-impaired audience.
If the wait time takes less than ~four seconds, then it’s okayish to skip dedicated accessibility support, but for longer wait times, it is essential:
- For informative onboardings, try to replicate the experience, for example, by making tips and tricks readable by assistive tech such as text readers
- For those more aesthetic/fun-oriented wait times, just inform the users using text readers that there’s a longer wait time happening so that they are not confused.
Choosing the best wait time approach
As you see, there are many ways to design an interesting wait time. But which one to choose?
I usually base the decision on the wait time itself:
- If it’s below 1s, it’s not worth investing
- If it’s between 1s and 5s, try to make it fun
- If it’s above 5s, consider making it informational; otherwise, make it fun
Pro tip — When assessing the length of wait time, use the same network type most of your users use (WiFi/5G/LTE/3G).
Is investing in loading screen UI even worth it?
In most products, users spend less than 1% of their time in a “wait state.” So… is it worth optimizing?
It depends on your stage.
If you’re still early-stage, hunting for product–market fit, then no — wait time probably isn’t your priority. But for mature products? Even tiny improvements (0.1%) can translate to thousands — maybe hundreds of thousands — of dollars in ROI.
In a recent article, I talked about the idea of micro-disappointments. Small annoyances might not break the experience, but they do add up — just like micro-joys.
Over time, these little moments — like how you handle a loading screen — can be the difference between a “good” experience and a great one. And that difference may determine whether a user returns next week or not.
Micro-moments matter. Maybe not enough to obsess over — but definitely enough to notice and thoughtfully design.
LogRocket: Analytics that give you UX insights without the need for interviews
LogRocket lets you replay users’ product experiences to visualize struggle, see issues affecting adoption, and combine qualitative and quantitative data so you can create amazing digital experiences.
See how design choices, interactions, and issues affect your users — get a demo of LogRocket today.
TL;DR: Tips to enhance wait experiences
- Get creative with spinners
- Use skeleton screens instead of blank placeholders
- Display what’s happening in the background
- Turn wait time into learning time with tips or tricks
- Always include ETAs for longer waits
- Align the wait experience with your product’s core value