New
configureLottiesets the two things that belong to the engine rather than to one animation:idPrefixandquality. Element IDs are prefixed by default from this version,lottie-react-lottie__lottie_element_1where 3.0.0 minted__lottie_element_1, each engine build with its own suffix, soLottieandLottieLighton one page no longer share an ID; two copies of the library each set a base of their own. Docs: https://lottiereact.com/docs/animation/configuring-the-engine- React Server Components: the components, the hooks, the interaction factories and
configureLottieare marked as client modules, so a server component can import<Lottie>directly; a server-side call ofconfigureLottiefails at build time instead of configuring a copy the browser never sees. rendererSettingstypes now include the fields the engine reads that lottie-web's own declarations leave out:runExpressionson every renderer,idandcontentVisibilityon svg and canvas,widthandheighton svg,filterSizeon html.
Fixed
lottieScrollScrubno longer stands still whenhtml, body { overflow-x: hidden }(a common rule, and create-next-app's default) makesbodya scroll container that never scrolls: the scrub measures by hand whenever its timeline's scroller cannot scroll.- Interaction factories receive a live view of the animation from
context.lottie, so keeping or destructuring it is safe; a copy taken at attach time no longer misses a root that arrives later.
Docs
Cursor-follow and recolouring recipes, and clarifications on server rendering, the reported frame after playSegments, and the migration guide.
Nothing breaking: the peer range, the exports and every existing prop are unchanged.