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. Spin Shutter
PreviousShader Reveal3D & ShadersNextStar Burst3D & 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.

Spin Shutter

An orbit of photos that spins open and pulls focus where you point

spin-shutter-tw

Customize

Background
Count
14
Aspect
1.00
Size
0.38
Radius
14px
Tilt
14°
Roll
-24°
Distance
3.2
Scale
1.00
Cluster
1
Spread
0.60
Speed
1.2 rpm
Aperture
0.45
Haze
0.30
Shadow
0.35

Props

30
NameTypeDefaultDescription
items{ src: string; alt: string; title?: string; subtitle?: string; href?: string }[]built-in scene collectionPhotos in the orbit (up to 32). Images must allow cross-origin loading. Title and subtitle caption the photo in focus; href is followed when a photo is opened.
countnumber0Number of cards in the orbit, up to 48. Photos repeat to fill it. 0 shows each photo once.
startIndexnumber0Card that sits at the front of the orbit once it has spun open.
aspectnumber1Width divided by height of every card. Photos are cropped to fill it.
sizenumber0.38Card height relative to the orbit's radius.
radiusnumber14Corner radius in pixels at the front of the orbit. Farther cards scale it down with their size.
tiltnumber14Camera height above the orbit in degrees. 0 sees it edge-on as a row; higher values open it into a ring.
rollnumber-24Rotation of the whole orbit on the page in degrees, so it runs along a diagonal.
distancenumber3.2Camera distance in orbit radii. Closer exaggerates perspective and depth of field; farther flattens both.
scalenumber1Size of the composition relative to the space it fits in. The orbit always fits the component.
clusternumber1Cards per group. Above 1, cards travel in tight clusters that fan apart and overlap as they turn.
spreadnumber0.6Spacing between the cards inside a cluster, from 0.05 (stacked) to 1 (even spacing).
speednumber1.2Spin speed in turns per minute. Negative values spin the other way; 0 holds still.
aperturenumber0.45Lens aperture. Higher values give a shallower depth of field; 0 keeps every card sharp.
hazenumber0.3How much far cards fade toward the background.
shadownumber0.35Strength of the soft shadow under each card.
introbooleantrueSpin the orbit open from a single stack when it first loads.
pauseOnHoverbooleantrueEase the spin to a stop while the pointer is over the orbit.
draggablebooleantrueDrag along the orbit to spin it with momentum; drag across it to tilt the view, which springs back on release.
wheelbooleantrueScroll to turn the orbit one card per notch. Set false to leave page scrolling untouched.
captionsbooleantrueShow the title and subtitle of the photo in focus below the orbit.
backgroundColorstring"transparent"Background of the component. Haze, caption text and placeholders adapt to it.
pausedbooleanfalseStops the spin. Space toggles the same pause from the keyboard. Reduced-motion users get a still orbit.
dprnumber2Maximum device pixel ratio for the canvas.
ariaLabelstring"Photo orbit…"Accessible description of the orbit and how to use it.
onFocusChange(item, index) => void—Called when a different photo comes into focus, by spinning to the front, hover, click or keyboard.
onSelect(item, index) => void—Called when the photo brought forward is clicked again, or Enter is pressed.
ref{ next, previous, show, release, replay }—next() and previous() bring the neighbouring card forward, show(index) brings a card forward, release() lets the orbit spin on, replay() spins it open again.
classNamestring—Classes for the root element. It fills its parent, with a 420px minimum height.
styleCSSProperties—Inline styles for the root element.
items{ src: string; alt: string; title?: string; subtitle?: string; href?: string }[]

Photos in the orbit (up to 32). Images must allow cross-origin loading. Title and subtitle caption the photo in focus; href is followed when a photo is opened.

Defaultbuilt-in scene collection
countnumber

Number of cards in the orbit, up to 48. Photos repeat to fill it. 0 shows each photo once.

Default0
startIndexnumber

Card that sits at the front of the orbit once it has spun open.

Default0
aspectnumber

Width divided by height of every card. Photos are cropped to fill it.

Default1
sizenumber

Card height relative to the orbit's radius.

Default0.38
radiusnumber

Corner radius in pixels at the front of the orbit. Farther cards scale it down with their size.

Default14
tiltnumber

Camera height above the orbit in degrees. 0 sees it edge-on as a row; higher values open it into a ring.

Default14
rollnumber

Rotation of the whole orbit on the page in degrees, so it runs along a diagonal.

Default-24
distancenumber

Camera distance in orbit radii. Closer exaggerates perspective and depth of field; farther flattens both.

Default3.2
scalenumber

Size of the composition relative to the space it fits in. The orbit always fits the component.

Default1
clusternumber

Cards per group. Above 1, cards travel in tight clusters that fan apart and overlap as they turn.

Default1
spreadnumber

Spacing between the cards inside a cluster, from 0.05 (stacked) to 1 (even spacing).

Default0.6
speednumber

Spin speed in turns per minute. Negative values spin the other way; 0 holds still.

Default1.2
aperturenumber

Lens aperture. Higher values give a shallower depth of field; 0 keeps every card sharp.

Default0.45
hazenumber

How much far cards fade toward the background.

Default0.3
shadownumber

Strength of the soft shadow under each card.

Default0.35
introboolean

Spin the orbit open from a single stack when it first loads.

Defaulttrue
pauseOnHoverboolean

Ease the spin to a stop while the pointer is over the orbit.

Defaulttrue
draggableboolean

Drag along the orbit to spin it with momentum; drag across it to tilt the view, which springs back on release.

Defaulttrue
wheelboolean

Scroll to turn the orbit one card per notch. Set false to leave page scrolling untouched.

Defaulttrue
captionsboolean

Show the title and subtitle of the photo in focus below the orbit.

Defaulttrue
backgroundColorstring

Background of the component. Haze, caption text and placeholders adapt to it.

Default"transparent"
pausedboolean

Stops the spin. Space toggles the same pause from the keyboard. Reduced-motion users get a still orbit.

Defaultfalse
dprnumber

Maximum device pixel ratio for the canvas.

Default2
ariaLabelstring

Accessible description of the orbit and how to use it.

Default"Photo orbit…"
onFocusChange(item, index) => void

Called when a different photo comes into focus, by spinning to the front, hover, click or keyboard.

Default—
onSelect(item, index) => void

Called when the photo brought forward is clicked again, or Enter is pressed.

Default—
ref{ next, previous, show, release, replay }

next() and previous() bring the neighbouring card forward, show(index) brings a card forward, release() lets the orbit spin on, replay() spins it open again.

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—