Skeleton shimmer loading animation
A placeholder card with a soft shimmer sweeping across it while content loads.
Change anything, then export a GIF, an MP4 or a transparent video.
The sample look, font and background are shared.
Free download
Free for your own projects and client work, including commercial use. Read the licence
What it's good for
It is 400 × 400 pixels and 1.5 seconds long, and it is set to loop. Check the loop and contrast after editing. The background is transparent, so it sits on top of any page, photo or video.
The colours come from your brand kit. Change the timing in the editor.
- A button while a form sends
- A page or panel while data loads
- Splash screens and pull to refresh in mobile apps
How to use it on a website
- Pick your brand above, then download the dotLottie file.
- Add it to your site's files, for example as
/animations/skeleton-shimmer-loader.lottie. - Paste the code where the animation should play.
Without code
- Webflow: upload the Lottie JSON file in the Assets panel, then drag it onto your page.
- Framer: add a Lottie component and give it the JSON file.
- WordPress: use a Lottie block plugin and upload the JSON file.
Need it as a GIF or a video? Download the Lottie JSON and use the free Lottie to GIF or Lottie to MP4 converter, or check any file in the Lottie viewer.
For the steps in Mosso, read Export and put it on your site.
Use it in code
Download the file, then copy the code for your platform. It loops, and it holds a still frame for people who ask for less motion.
- Put
skeleton-shimmer-loader.lottiein your site'sanimationsfolder, so it loads from/animations/skeleton-shimmer-loader.lottie. - Paste this where it should play.
<script type="module" src="https://cdn.jsdelivr.net/npm/@lottiefiles/dotlottie-wc@0.10.0/dist/dotlottie-wc.js"></script>
<div role="status" aria-label="Loading">
<dotlottie-wc src="/animations/skeleton-shimmer-loader.lottie" autoplay loop data-still="0.522"
style="display: block; width: 64px; height: 64px"></dotlottie-wc>
</div>
<script>
// People who ask for less motion see a still frame: data-still is how far in, from 0 to 1.
if (matchMedia('(prefers-reduced-motion: reduce)').matches) {
const players = document.querySelectorAll('dotlottie-wc');
players.forEach((el) => el.removeAttribute('autoplay'));
customElements.whenDefined('dotlottie-wc').then(() => players.forEach((el) => {
const player = el.dotLottie;
if (!player || !el.dataset.still) return;
const show = () => player.setFrame(Math.round(Number(el.dataset.still) * (player.totalFrames - 1)));
if (player.isLoaded) show();
else player.addEventListener('load', show);
}));
}
</script>
Good to know
Wait before you show it
If loading usually takes under a second, wait about 300 milliseconds before you show a loader. Quick loads then feel instant instead of flashing a spinner.
Tell screen readers
Put the animation inside an element with role="status" and a label like "Loading", so people who can't see it still know something is happening.
Keep it small
Loaders read best at 24 to 64 pixels inside buttons and cards. Save big loaders for full screen waits.
Respect reduced motion
Some people ask their device for less motion. Check prefers-reduced-motion and show a still frame for them instead.
Questions
Is this skeleton shimmer animation free?
Yes. A free account lets you download up to 50 library animations a day. You may edit these animations and use them in personal and commercial work, including client projects. Third party parts keep their own licences. Keep the supplied notices and credits when you share them. Mosso does not require a credit for its own work. The restriction on reselling Mosso templates does not limit rights granted by third party licences.
Can I change the colours?
Yes. Pick a sample look above to see how it changes. Open the Mosso project to edit its layers, timing and effect settings, and add your logo. Imported files may have fewer editable parts.
Should I download Lottie JSON or dotLottie?
dotLottie is the same animation in a zipped file, so it is smaller: this one is about 2.2 KB instead of 17 KB. Use it with the dotLottie players for the web, React, iOS and Android. Pick Lottie JSON when a tool asks for a .json file, like Webflow or lottie-web.
Can I get it as a GIF or a video?
Yes. Open it in Mosso and export a GIF, an MP4, a WebM video with a transparent background or PNG frames, all from the same project.
How do I show a loader only while something loads?
Add the animation when loading starts and remove it when your content arrives. If most loads are quick, wait about 300 milliseconds before adding it, so fast loads never show it at all.
Make it yours in Mosso
Change the words, colours, timing and size, add your logo, and export Lottie, GIF, MP4 or transparent video. Or start from a blank canvas and make something new.