Pricing
Get Started
  • Introduction
  • Installation
  • MCP Server
  • Saved
Site
  • Builder (Beta)
  • Pricing
  • Roadmap
  • Affiliates
Browse
  • All Components80 New
Text34
  • 3D Letter Swap
  • 3D Text Reveal
  • ASCII Ripple
  • Bending Marquee
  • Blur Highlight
  • Cipher RevealNew
  • Domino LetteringNew
  • Elastic LetteringNew
  • Ghost TypeNew
  • Glitch Text
  • Glyph LotteryNew
  • Gravity LettersNew
  • Label OrbitNew
  • Luminous TypeNew
  • Mesh LetteringNew
  • Orbital TypeNew
  • Particle Text
  • Ribbon TypeNew
  • Rising InkNew
  • Shatter TypeNew
  • Signal TypeNew
  • Smoke TypeNew
  • Speeding Text
  • Spring LetteringNew
  • Staggered Text
  • Stipple TypeNew
  • Tessera TrailNew
  • Text Cube
  • Text MorphNew
  • Text Path
  • Text Scatter
  • Typographic WallNew
  • Vapor TypeNew
  • Wave LetteringNew
Backgrounds98
  • ASCII Tiles
  • Ascii Waves
  • Astral ShellNew
  • Aura Blob
  • Aurora Beam
  • Aurora Blur
  • Axial BeamNew
  • Binary OrbitsNew
  • Black Hole
  • Blinking Dots
  • Blinking Squares
  • Blurred Rays
  • Chroma Blinds
  • Chroma CurrentNew
  • Chroma Waves
  • Cloud AtlasNew
  • Color Loops
  • Concentric TidesNew
  • Contour TideNew
  • Dappled LightNew
  • Dither Wave
  • Dot Shift
  • Eclipse
  • Fading StarsNew
  • Falling Rays
  • Flame Paths
  • Fog Sphere
  • Glass Flow
  • Glass Tiles
  • Glimmer WrapNew
  • Glitter Warp
  • Glowing Ridges
  • Glowing Wave
  • Glue Dots
  • Glyph EmberNew
  • Glyph OrbNew
  • Glyph SonarNew
  • Glyph TideNew
  • Gradient Bars
  • Grain Wave
  • Halftone Vortex
  • Halftone Wave
  • Hexagonal VaultNew
  • Horizon BloomNew
  • Interference RibbonsNew
  • Landscape
  • Light Droplets
  • Lightspeed
  • Liquid Bars
  • Liquid Lines
  • Long Exposure
  • Luminous FilamentsNew
  • Metallic Swirl
  • Minimal Ripple
  • Mosaic
  • Mosaic Waves
  • Neon Reveal
  • Neural Flash
  • Neural Float
  • Neural Tunnel
  • Nexus RaysNew
  • Perspective Grid
  • Photon KnotNew
  • Pixel Rain
  • Prismatic SlatsNew
  • Radial Liquid
  • Ravine
  • Retro Lines
  • Ring FieldNew
  • Rising Lines
  • Rising Particles
  • Rolling Blinds
  • Rotating Stars
  • Rubber Fluid
  • Satin RidgesNew
  • Shader Waves
  • Shadow Bars
  • Silk Waves
  • Simple Swirl
  • Specter Orb
  • Spectral Clouds
  • Spectral DrapeNew
  • Spiral FunnelNew
  • Square Matrix
  • Squares Terminal
  • Squircle Shift
  • Star Swipe
  • Swirl Blend
  • Synaptic Shift
  • Tech Wall
  • Terminal RainNew
  • Thinking Dots
  • Twilight Lines
  • Vortex
  • Voxel ArcNew
  • Warp Twister
  • Watercolor
  • Wireframe Ball
3D & Shaders49
  • Agentic Ball
  • AI Blob
  • Album RailNew
  • Bend Gallery
  • Chrome OrbitNew
  • Circle Stack
  • Concave CarouselNew
  • Constellation GalleryNew
  • Contact SheetNew
  • Depth Card
  • Depth Image
  • Depth RibbonNew
  • Device
  • Dolly Gallery
  • Elastic ReelNew
  • Elastic StickerNew
  • Ember RevealNew
  • Expanding GridNew
  • Frame Border
  • Glass Reveal
  • Globe
  • Gradient Blob
  • Helix GalleryNew
  • Infinite Gallery
  • Inverted Dome
  • Iris GalleryNew
  • Lenticular Carousel
  • Momentum RingNew
  • Page Flip
  • Parallax Carousel
  • Particle Image
  • Particle Morph
  • Passage GalleryNew
  • Pixel Reveal
  • Pixel Sculpt
  • Pixelate Hover
  • Pond ImageNew
  • Portal
  • Prism CarouselNew
  • Rotating Cards
  • Scroll BendNew
  • Scroll Portal
  • Shader Card
  • Shader Reveal
  • Spin ShutterNew
  • Star Burst
  • Tumble Carousel
  • Twisting Gallery
  • Warped Card
Cursor Effects21
  • Arc CursorNew
  • Ascii Cursor
  • Celebration CursorNew
  • Chroma HaloNew
  • Cursor Wave
  • Custom Cursor
  • Dither Cursor
  • Drafting CursorNew
  • Glass Cursor
  • Glyph StreamNew
  • Grid Rise
  • Gyroscope CursorNew
  • Liquid Ascii
  • Parallax Pills
  • Pigment TrailNew
  • Pixel Magnet
  • Ribbon TrailNew
  • Smooth Cursor
  • Snapshot TrailNew
  • Stardust CursorNew
  • User Cursor
UI & Cards28
  • Animated List
  • Card Spread
  • Center Flow
  • Chroma Card
  • Circle Gallery
  • Circles
  • Click Stack
  • Comparison Slider
  • Credit Card
  • Draggable Grid
  • Frame Scrub
  • Gradient Carousel
  • Hover Preview
  • Liquid Swap
  • Loupe ImageNew
  • Magic Transform
  • Modal Cards
  • Orbit ReelNew
  • Parallax Cards
  • Preloader
  • Reel Gallery
  • Scroll Mask
  • Scroll Stack
  • Simple Graph
  • Skewed Carousel
  • Tile Reveal
  • Tilted Tiles
  • Tumble WallNew
  1. Docs
  2. Components
  3. 3D & Shaders
  4. Scroll Bend
PreviousRotating Cards3D & ShadersNextScroll Portal3D & Shaders

Animated components, blocks, and templates for React. Pay once, ship stunning pages forever.

pro@reactbits.dev

Site

HomeBuilder (Beta)PricingTestimonialsFAQsRoadmapChangelogFree Components

Docs

IntroductionInstallationMCP ServerComponentsBlocksTemplates

Resources

AboutUse casesComparisonsAlternativesFor AI agents

Legal & Account

LoginAffiliateLicensePrivacyContact

© 2026 pro.reactbits.dev. All rights reserved.

Scroll Bend

A strip of images that bulges or pinches with your scroll speed

scroll-bend-tw

Customize

Strength
1.00
Max Bend
0.38
Rest Bend
0.00
Axis Bias
0.75
Lens Radius
1.00
Response
0.32s
Wobble
0.25
Item Size
0.68
Aspect Ratio
1.35
Gap
16px
Radius
18px
Auto Scroll
50px/s
Wheel Speed
1.00
Drag Speed
1.00
Inertia
0.55s
Fade
0.16
Shade
0.22
Aberration
0.40
Quality
1.00

Props

31
NameTypeDefaultDescription
items(string | { src: string; alt?: string })[]8 abstract imagesImages in the strip, as URLs or { src, alt } objects. Alt text goes into a hidden list that screen readers announce.
orientation"vertical" | "horizontal""vertical"Direction the strip runs and scrolls.
bend"convex" | "concave" | "direction""direction"How speed shapes the lens. convex swells the middle toward you, concave pinches it, direction swells while scrolling forward and pinches while scrolling back.
strengthnumber1How quickly the bend builds as scrolling speeds up. Higher values bend fully at gentler speeds.
maxBendnumber0.38Strongest bend that speed can add, from 0 to 0.45.
restBendnumber0Bend the strip holds when it is still. Positive values bulge, negative values pinch.
axisBiasnumber0.75How much the lens also stretches along the strip. 0 only widens the silhouette and keeps the gaps straight, 1 is a full fisheye where the gaps bow.
lensRadiusnumber1Size of the lens relative to the visible strip. Smaller values gather the bend into the middle.
responsenumber0.32Seconds the bend takes to follow a change in speed.
wobblenumber0.25Overshoot as the bend springs back, from 0 (none) to 1 (jelly).
itemSizenumber0.68Tile size across the strip, as a fraction of the container's shorter side.
aspectRationumber1.35 vertical, 0.78 horizontalTile width divided by height. Images are cropped to fill their tile.
gapnumber16Space between tiles in pixels.
radiusnumber18Corner radius of the tiles in pixels.
autoScrollnumber50Drift speed in pixels per second while idle. It pauses briefly after any input. Negative values drift backward, 0 turns it off.
pauseOnHoverbooleanfalseStop the drift while the pointer is over the strip.
wheelSpeednumber1Multiplier for wheel and trackpad scrolling. 0 leaves the page scroll untouched.
dragSpeednumber1Multiplier for mouse and touch dragging. 0 turns dragging off.
inertianumber0.55Seconds of momentum after a flick. It also sets how softly wheel scrolling glides.
snapbooleantrueSettle on the nearest image when scrolling stops. Applies when autoScroll is 0. A single wheel notch then steps one image.
infinitebooleantrueLoop the images endlessly. When off, the ends stretch and spring back, and the drift turns around.
fadenumber0.16Length of the fade to transparent at each end, as a fraction of the strip's length.
shadenumber0.22How much the tiles darken toward the ends, from 0 to 1.
aberrationnumber0.4Colour fringing that appears as the lens bends, from 0 to 1.
pausedbooleanfalseStop the drift. Scrolling, dragging and the keyboard still work. Reduced-motion users get no drift or bend.
qualitynumber1Resolution scale from 0.25 to 1. Lower values are cheaper on large screens.
onIndexChange(index: number) => void—Called with the index of the image nearest the centre whenever it changes.
ariaLabelstring"Image gallery"Accessible name of the carousel. When it has focus, the arrow keys and Page Up/Down step one image, Home and End jump to the first and last.
ref{ next, previous, goTo, impulse }—next() and previous() step one image, goTo(index) glides to an image, impulse(velocity) pushes the strip in pixels per second.
classNamestring—Classes for the root element. It fills its parent, with a 420px minimum height.
styleCSSProperties—Inline styles for the root element.
items(string | { src: string; alt?: string })[]

Images in the strip, as URLs or { src, alt } objects. Alt text goes into a hidden list that screen readers announce.

Default8 abstract images
orientation"vertical" | "horizontal"

Direction the strip runs and scrolls.

Default"vertical"
bend"convex" | "concave" | "direction"

How speed shapes the lens. convex swells the middle toward you, concave pinches it, direction swells while scrolling forward and pinches while scrolling back.

Default"direction"
strengthnumber

How quickly the bend builds as scrolling speeds up. Higher values bend fully at gentler speeds.

Default1
maxBendnumber

Strongest bend that speed can add, from 0 to 0.45.

Default0.38
restBendnumber

Bend the strip holds when it is still. Positive values bulge, negative values pinch.

Default0
axisBiasnumber

How much the lens also stretches along the strip. 0 only widens the silhouette and keeps the gaps straight, 1 is a full fisheye where the gaps bow.

Default0.75
lensRadiusnumber

Size of the lens relative to the visible strip. Smaller values gather the bend into the middle.

Default1
responsenumber

Seconds the bend takes to follow a change in speed.

Default0.32
wobblenumber

Overshoot as the bend springs back, from 0 (none) to 1 (jelly).

Default0.25
itemSizenumber

Tile size across the strip, as a fraction of the container's shorter side.

Default0.68
aspectRationumber

Tile width divided by height. Images are cropped to fill their tile.

Default1.35 vertical, 0.78 horizontal
gapnumber

Space between tiles in pixels.

Default16
radiusnumber

Corner radius of the tiles in pixels.

Default18
autoScrollnumber

Drift speed in pixels per second while idle. It pauses briefly after any input. Negative values drift backward, 0 turns it off.

Default50
pauseOnHoverboolean

Stop the drift while the pointer is over the strip.

Defaultfalse
wheelSpeednumber

Multiplier for wheel and trackpad scrolling. 0 leaves the page scroll untouched.

Default1
dragSpeednumber

Multiplier for mouse and touch dragging. 0 turns dragging off.

Default1
inertianumber

Seconds of momentum after a flick. It also sets how softly wheel scrolling glides.

Default0.55
snapboolean

Settle on the nearest image when scrolling stops. Applies when autoScroll is 0. A single wheel notch then steps one image.

Defaulttrue
infiniteboolean

Loop the images endlessly. When off, the ends stretch and spring back, and the drift turns around.

Defaulttrue
fadenumber

Length of the fade to transparent at each end, as a fraction of the strip's length.

Default0.16
shadenumber

How much the tiles darken toward the ends, from 0 to 1.

Default0.22
aberrationnumber

Colour fringing that appears as the lens bends, from 0 to 1.

Default0.4
pausedboolean

Stop the drift. Scrolling, dragging and the keyboard still work. Reduced-motion users get no drift or bend.

Defaultfalse
qualitynumber

Resolution scale from 0.25 to 1. Lower values are cheaper on large screens.

Default1
onIndexChange(index: number) => void

Called with the index of the image nearest the centre whenever it changes.

Default—
ariaLabelstring

Accessible name of the carousel. When it has focus, the arrow keys and Page Up/Down step one image, Home and End jump to the first and last.

Default"Image gallery"
ref{ next, previous, goTo, impulse }

next() and previous() step one image, goTo(index) glides to an image, impulse(velocity) pushes the strip in pixels per second.

Default—
classNamestring

Classes for the root element. It fills its parent, with a 420px minimum height.

Default—
styleCSSProperties

Inline styles for the root element.

Default—