Guide

Lottie limitations: what doesn't survive the export

Lottie renders a subset of After Effects — and the subset is smaller than most people expect. Whole categories of effect are dropped on export, expressions are ignored, and the file grows with every second. Here's exactly what's lost, shown live, and what to do about it.

Updated July 2026 · 5 min read · For designers & front-end developers

Short answer: Lottie/Bodymovin does not export Glow, Drop Shadow, blending modes, luma mattes, or Effects-menu effects, and it ignores expressions entirely. The JSON also grows with duration and keyframe count. If your animation leans on any of these, exporting to real HTML/CSS — e.g. with AE2CSS — keeps the effect and stays tiny.

What Lottie drops on export

Per LottieFiles' own docs and years of open issues, these After Effects features don't export — or export broken:

After Effects featureLottieExported CSS (AE2CSS)
Glow (Stylize → Glow)Not supportedRadial bloom + drop-shadow
Drop ShadowBroken / croppedNative drop-shadow
Fill / Color OverlayNot supportedLayer recolor
Blending modesNot supportedCSS mix-blend-mode
Luma mattesNot supportedCSS mask
ExpressionsIgnoredSampled (transform)*
GradientsSometimes exports B&WPixel-sampled

* One honest note on expressions: AE2CSS samples them for the core transform properties — position, scale, rotation, opacity — not arbitrary effect-parameter or random/wiggle expressions. We'd rather under-promise there than oversell.

See it live: kept vs dropped

Three effects Lottie can't export, running as CSS on the left — and what Lottie gives you for the same layer on the right. No player, no JavaScript; these are just CSS.

Glow

After Effects Glow effect on a shape

Exported CSSkept
Lottiedropped

Expression-driven motion

Position & rotation driven by an expression, no keyframes

Exported CSSsampled
Lottiestatic

Screen-blend light sweep

A highlight blended over a button with a blending mode

Exported CSSkept
Lottieno blend

The Lottie panels are static on purpose: with the effect unsupported, the layer exports flat (glow, sweep) or, for a pure expression, doesn't move at all unless you bake keyframes by hand first.

Glow — the effect people miss most

Glow is the most-requested effect Lottie doesn't have — "why doesn't Glow export?" has sat open since 2021 (lottie-web #764, #2484). The usual fix, pre-rendering it to a raster PNG, throws away exactly what Lottie was chosen for: vector scalability, and a small file. AE2CSS instead reproduces Glow as a native radial-gradient bloom + stacked drop-shadow — vector, zero runtime. Drop Shadow is the same story: broken or cropped in Lottie (#553, #926), native in CSS.

Expressions — ignored, not exported

Bodymovin doesn't evaluate expressions, so expression-driven motion exports static unless you convert every property to keyframes by hand first. AE2CSS instead evaluates the value over time (valueAtTime) for the core transform properties — position, scale, rotation, opacity — and bakes a compact set of keyframes automatically. Honest limit: transform motion only, not arbitrary effect-parameter expressions, and it skips random/wiggle (which can't be baked to a clean loop).

The file grows with length — CSS doesn't

An argument that rarely gets made and matters a lot: a Lottie file stores the animation data itself, so every keyframe and every extra second of a baked path adds bytes — real files reach past 1.3 MB, before the ~46 KB player. A CSS export is declarative: it stores the rules you authored and the browser interpolates, so a two-second loop and a ten-second one are the same size. Size scales with the keyframes you wrote, not with duration.

2s simple loop — Lottie JSON~2 KB + 46 KB player
10s multi-layer, dense keyframes — Lottie JSON100s of KB → ~1.3 MB
Either one — Exported CSSa few KB, 0 JS

Illustrative — exact Lottie sizes depend on the artwork, but the direction is the point: Lottie grows with the animation, CSS grows with the keyframes you wrote. (The CSS motion running elsewhere on this page is a few hundred bytes and doesn't get bigger if you loop it for an hour.)

It's not just effects — SEO & accessibility

A Lottie file is a JSON data blob with no semantic meaning, so search engines can't index it and screen readers can't read it. Teams regularly hit this trying to make Lottie text ADA/WCAG-compliant. Animation exported as real HTML/CSS is part of the DOM: it can carry semantic markup, be crawled, and honor prefers-reduced-motion out of the box. If you're investing in the page for search or accessibility, that's a decisive difference.

The cross-platform promise, honestly

One source on web, iOS, and Android is Lottie's real strength — but parity isn't guaranteed: the same file can render differently on Android, and an OS update has broken it before (iOS 18). If you ship to native apps, Lottie is still the right tool — just budget for per-platform testing.

So what do you do?

  • Web-only motion that uses glow, shadow, blend, mattes, or expressions → export to CSS; the effect survives and the file stays small.
  • Intricate vector art that also runs in native apps → Lottie, and test per platform.
  • Not sure which effects survive? The table above is the short version; the fuller comparison is in Lottie vs CSS and the alternatives guide.

FAQ

Does Lottie support glow?
No — After Effects' Glow effect isn't exported by Bodymovin, so the layer arrives flat. The workaround is to pre-render the glow to a raster, which loses vector scalability. A CSS export reproduces glow as a native radial bloom + drop-shadow, no player.
Why doesn't my After Effects effect work in Lottie?
Lottie supports only a subset of AE. Effects-menu effects, blending modes, luma mattes, and layer styles like drop shadow and color overlay aren't exported, so a layer relying on them comes across flat or missing.
Does Lottie support expressions?
No — Bodymovin ignores expressions, so expression-driven motion exports static unless you convert it to keyframes by hand. AE2CSS evaluates expressions over time for position, scale, rotation, and opacity and bakes the result automatically.
Does Lottie support drop shadow and blend modes?
Drop shadow is unreliable — frequently reported broken or cropped — and blend modes like Multiply, Screen, and Add aren't supported. CSS handles both natively, so a CSS export can carry them.
Why is my Lottie file so large?
A Lottie file stores the animation data, so size grows with duration, animated properties, and keyframe density; embedded images inflate it further. CSS stores declarative rules, so a longer hold or loop costs essentially nothing extra.
Can Google index a Lottie animation?
Not meaningfully — it's a JSON blob with no semantic content, invisible to crawlers and screen readers. Animation exported as HTML/CSS is in the DOM, so it can be indexed and made accessible.

Related guides

How to put an After Effects animation on a website Lottie alternative for web animation Lottie vs CSS animation

Keep the effect. Drop the player.

Free during alpha. macOS, After Effects.

Download AE2CSS for macOS