Three doors for motion, and only one of them is an image
Lottie and Rive are vector animation, not footage. For footage, Webflow's Add panel has three doors, and they barely overlap. The Video element wants a URL from YouTube, Vimeo, or another host and can't play a file you uploaded. Background video takes your file, silent and under roughly 30 MB, as the backdrop for a section. The GIF comes in through the Image element, so it goes wherever an image goes: a feature card, a Collection item, a rich text post.
That placement is the whole case. A hover state in a three-column grid has no video component that fits it. An image fits, and if the image loops, the column shows the interaction instead of describing it. No poster frame, no player chrome. The catch: Webflow's image rules were written for photographs.
4 MB is a gate at the door, not a budget for the page
The Assets panel refuses any image over 4 MB as of this writing, and a GIF is an image. A 4.2 MB loop doesn't get compressed, it gets an error. That's the gate. The budget is smaller, for a reason buried in the responsive image docs: Webflow slices an uploaded JPG, PNG, or WebP into as many as seven variants, down to 500 px wide, and hands the phone the small one. GIFs aren't on that list. The phone downloads the desktop file.
So a 3.5 MB loop costs 3.5 MB at every breakpoint, and a six-card feature grid carries 21 MB. Lazy loading, on by default for new images, spares the cards below the fold until someone scrolls; the hero row loads regardless. Plan on 1 to 2 MB per loop.
Export at the width the column draws, spend the leftover on frames
A three-column card on a 1,200 px container renders around 350 to 380 px wide. Export there. Webflow's HiDPI checkbox draws an image at half its pixel width for retina sharpness, but a 760 px export carries four times the pixels. Decide on purpose, then:
- Crop to the control. 1:1 or 4:5 for a card, 16:9 for a full-width strip. The window edge is dead weight on every frame.
- 10 to 12 fps, 64 to 128 colors. Toggles don't need 30, and flat UI rarely needs the format's 256-color ceiling.
- Bounce for hover states. Record the hover in, toggle Bounce, and the loop plays in and back out with no seam.
- Extra Compression, Medium. Usually a 30 to 50 percent cut, for a grain a 380 px card hides.
On a UI loop the chrome around the control never moves, and the always-on optimizer writes only the patch of each frame that differs from the last, so an interface GIF lands far under a photographic one of the same length. The under-2 MB recipe works the same dials harder.
The hero should be a video. Say so before the client asks.
Full-bleed, photographic, above the fold, longer than five seconds: not a GIF. H.264 spends bytes on what changed between frames; GIF spends them on the frames, and at 1,400 px wide that arithmetic loses inside two seconds. Background video takes a silent file under roughly 30 MB, transcodes it to MP4 and WebM, loops it, and adds a play/pause button by default.
That button matters. WCAG 2.2.2 says motion that starts on its own and runs past five seconds needs a way to pause, stop, or hide it. Webflow's background video ships the control and sits out for visitors with reduced motion on. A GIF has no switch. It plays for everyone, forever. So keep GIF loops to two to four seconds, away from running text, and give the long take to the component built for it.
Same editor either way: trim and crop once, flip Output Format to MP4 with the bitrate dial for the hero, export a GIF for the grid. Narration means YouTube or Vimeo and the Video element. Pacing a demo longer than a loop is the product demo guide's job.
The Assets panel is public by design. The cutting room shouldn't be.
Webflow's docs say it plainly: files in the Assets panel are publicly accessible and may be indexed once they sit on a live page. Fine for the four-second loop you're launching. The wrong fate for the forty-second raw take behind it, the one that pans across a pricing page you haven't announced, which is exactly what an upload-first converter receives.
This converter does the cut in your tab. Your browser decodes the recording, your CPU trims, crops, and encodes it, and the finished GIF hits your Downloads folder. The first server to see a pixel is Webflow's CDN, and it sees only the finished cut, when you choose to upload it. Staging site? Record a Tab grabs it via the browser's share dialog, desktop only, real time. Webflow's own interactions have no export button either; the HTML5 animation route covers recording them.
Then press J, drop it in the Assets panel, drag it onto the canvas, and write the alt text.