9 production-ready variations + bonus preloader • export as SVG or GIF
Embed the animated SVG directly in HTML. Infinitely scalable, smallest file size, smoothest animation.
<!-- Inline: paste SVG contents directly -->
<div class="logo">
<svg xmlns="..." viewBox="0 0 707 345">
<style>...</style>
<path class="icon" .../>
...
</svg>
</div>
<!-- Or reference as an image -->
<img src="/assets/marshwall-anim.svg"
alt="Marshwall" width="440" />
<!-- Or as an object (allows interaction) -->
<object type="image/svg+xml"
data="/assets/marshwall-anim.svg"
width="440"></object>
Use the animated SVG as a full-screen preloader. Much lighter than GIF and resolution-independent.
<div class="preloader" id="preloader">
<object type="image/svg+xml"
data="/assets/marshwall-anim.svg"
width="300"></object>
</div>
<style>
.preloader {
position: fixed; inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
z-index: 9999;
transition: opacity .5s ease;
}
.preloader.hidden {
opacity: 0;
pointer-events: none;
}
</style>
<script>
window.addEventListener('load', () => {
setTimeout(() => {
document.getElementById('preloader')
.classList.add('hidden');
}, 2800);
});
</script>
Import either format into your React component. SVG for web, GIF for email/social.
<!-- SVG: import as React component -->
import { ReactComponent as Logo }
from './marshwall-anim.svg';
function Hero() {
return <Logo width={440} />;
}
<!-- GIF: import as image source -->
import logoGif from './marshwall.gif';
function Preloader({ onDone }) {
useEffect(() => {
const t = setTimeout(onDone, 2800);
return () => clearTimeout(t);
}, [onDone]);
return (
<div className="preloader">
<img src={logoGif} alt="Loading"/>
</div>
);
}
Choose the right format based on where the animation will be used.
SVG (recommended for web)
+ Infinitely scalable, sharp at any size
+ Tiny file size (5-15 KB)
+ Smooth 60fps CSS animation
+ Editable: tweak colors & timing
- Not supported in email clients
GIF (for compatibility)
+ Works everywhere: email, Slack, social
+ No browser rendering differences
- Fixed resolution, larger file size
- Limited to 256 colors per frame
Rule of thumb:
Website / App → SVG
Email / Social → GIF