tween
ComponentsTemplatesShowcaseContact

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Installation
  • StoryNew
Guides
  • Motion Principles
  • Scroll and Smooth Scroll
  • Performance and Accessibility
Scroll Animations
  • Sticky Cards Scroll
  • Rise Fan Cards Scroll
  • Rotate Stack Scroll
  • Doodle Lens ScrollNew
  • Slit Open Hero ScrollNew
  • Logo Mask Zoom ScrollNew
  • ASCII Dissolve ScrollNew
  • Lottie Flight ScrollNew
  • Inline Icon Text ScrollNew
  • Starfield ScrollNew
  • Name Swap ScrollNew
  • Spotlight Gallery HeroNew
  • Slit Rotate Hero ScrollNew
  • Stroke Cover ScrollNew
  • Stroke Rows ScrollNew
Text Animations
  • Text Skew Reveal
  • Block Text Reveal
Hover & Cursor
  • Image Trail Cursor
  • Cursor Depth Logo
  • Physics Tag Drop
  • Elastic Card ListNew
  • Magnetic Cards SpringNew
Sliders & Carousels
  • Wheel Fullscreen Carousel
  • Ripple Displacement Slider
  • Three.js Blend Slider
  • Stacked Deck Slider
  • Orbit Cylinder SliderNew
  • Fan Stack SliderNew
  • Exponential Strip SliderNew
  • Dual Column SliderNew
Galleries & Grids
  • Scroll Wave Gallery
Menus & Navigation
  • Shrink Page MenuNew
Preloaders & Intros
  • Floating Items RevealNew
  • Word Cycle RevealNew
  • Tile Grid LoaderNew
Page Transitions
  • Panel Assembly TransitionNew
3D & WebGL
  • Fractal Glass Hero
  • Fluid Cursor Canvas
  • Fluid Portrait Hero
  • Fluid Gradient Canvas
  • Inversion Lens HoverNew
UI Elements
  • Circular Widgets
  • Vinyl Cover
  • Image Explosion Footer
  • Accordion Image FramesNew

(Tween) — Motion registry

Animated components & full sites, one command away.

Product

  • Components
  • Templates
  • Installation
  • Guides
  • Blog
  • Contact

Categories

  • Scroll Animations
  • Text Animations
  • Hover & Cursor
  • Sliders & Carousels
  • Galleries & Grids
  • Menus & Navigation
  • Preloaders & Intros
  • Page Transitions
  • 3D & WebGL
  • UI Elements
TWEEN
ease: power2.inOut0.00s
© 2026 TweenBack to topBuilt by mohammad
  1. Docs/
  2. Components/
  3. Lottie Flight Scroll

Lottie Flight Scroll

PreviousNext

A looping Lottie character that flies down a staggered gallery on scroll along a keyframed path, tilting into turns with a soft shadow beneath it.

Open in
lottie-flight-scroll-demo

Every jar on this page took one whole summer.

Orchard Blossom

01

Lavender Row

02

Goldenrod

03

Late Sunflower

04

Linden Bloom

05

Pollen Hour

06

Thanks for following the bees all the way down.

components/ui/lottie-flight-scroll-demo.tsx
import { LottieFlightScroll } from "@/registry/tween/lottie-flight-scroll"

export function LottieFlightScrollDemo() {
  return <LottieFlightScroll />
}

Installation

pnpm dlx shadcn@latest add https://tweenui.dev/r/lottie-flight-scroll.json

Usage

import { LottieFlightScroll } from "@/components/ui/lottie-flight-scroll"
<LottieFlightScroll
  lottiePath="/bee.json"
  items={[
    { image: "/harvest/orchard.jpg", title: "Orchard Blossom" },
    { image: "/harvest/lavender.jpg", title: "Lavender Row" },
  ]}
  background="#f5c63c"
/>

How it works

A sticky overlay the height of the viewport sits above the page. It holds two copies of the same looping Lottie: the character and a shadow (brightness(0), blurred, half opacity). A scrubbed ScrollTrigger maps the gallery section from top top to bottom bottom onto a 0 to 1 flight progress:

  • Horizontal position samples 11 keyframes (offsets of up to 40% of the width from centre) with smoothstep easing.
  • Vertical position samples 6 keyframes from just above the top edge to just below the bottom edge.
  • Tilt comes from the horizontal direction a little ahead on the path, clamped to ±14°.
  • The shadow is offset further, scaled up and faded as sin(drop × Ï€) rises, so the character seems highest mid-flight.

Sizes come from the overlay, not the window, so the flight fits the preview. The trigger is rebuilt when the scroller resizes. With prefers-reduced-motion: reduce the Lottie does not play and the character rests mid-path.

Props

PropTypeDefaultDescription
lottiePathstring"/lottie-flight-scroll/bee.json"Looping Lottie JSON (svg renderer).
itemsLottieFlightItem[]6 remote itemsGallery items { image, title, index? }.
introTitleReactNodedefault copyHeading before the gallery.
outroTitleReactNodedefault copyHeading after the gallery.
sizenumber125Character size in px.
shadowSizenumber115Shadow size in px.
backgroundstring"#f5c63c"Page background.
foregroundstring"#1c1406"Text color.
fontFamilystringDM Sans stackFont for all text.
scrollerHTMLElement | string | null—Optional ScrollTrigger scroller.
ASCII Dissolve ScrollInline Icon Text Scroll

On This Page

InstallationUsageHow it worksProps

Contribute

  • Report an issue
  • Request a feature
  • Edit this page