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. Iris Gallery
PreviousInverted Dome3D & ShadersNextLenticular Carousel3D & 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.

Iris Gallery

An oval of photos that turns into an iris

iris-gallery-tw

Customize

Background
Count
28
Fin
60°
Pupil
0.52
Speed
6°/s
Interval
6.0s
Hold
4.0s
Morph Duration
1.8s
Stagger
0.70
Card Aspect
0.78
Radius
0.18
Gap
0.10
Depth
1.00
Shade
0.60

Props

30
NameTypeDefaultDescription
items{ src: string; alt: string; title?: string; subtitle?: string; href?: string }[]studio portrait collectionImages for the cards. They repeat when there are more cards than items. Images must allow cross-origin loading. Title and subtitle caption a photo when it is opened.
countnumber28Number of cards around the ring, up to 96.
mode"cycle" | "gallery" | "iris""cycle"Cycle alternates between an oval of upright photos and the iris, where every card turns into a lit, radial blade. Gallery and iris stay in one state.
intervalnumber6Seconds spent as a gallery before turning into the iris, in cycle mode.
holdnumber4Seconds held as an iris before opening back into a gallery, in cycle mode.
morphDurationnumber1.8Seconds the wave takes to travel around the ring when the state changes.
staggernumber0.7How spread out that wave is, from the top down both sides. 0 turns every card at once.
speednumber6Speed the cards travel around the ring, in degrees per second. Negative values reverse it.
finnumber60Angle, in degrees, the blades turn to in the iris. Higher values give thinner, deeper blades.
pupilnumber0.52Size of the pupil as a fraction of the iris. An opened photo fills the pupil.
cardAspectnumber0.78Width divided by height of the cards in the gallery state.
radiusnumber0.18Corner rounding as a fraction of the card width.
gapnumber0.1Space between cards in the gallery state, as a fraction of their spacing.
depthnumber1Strength of the perspective.
shadenumber0.6How much the blades darken as they turn away from the light.
backgroundColorstring"transparent"Background of the component. Captions adapt to it.
focusOnClickbooleantrueClicking a card flies its photo into the pupil while the ring closes into an iris around it. Click again or press Escape to put it back.
captionsbooleantrueShow the title and subtitle of an opened photo.
draggablebooleantrueDrag around the ring to turn it, with inertia.
wheelbooleantrueScroll to turn the ring, one card per notch. Set false to leave page scrolling untouched.
pauseOnHoverbooleantrueStop the ring and the cycle while the pointer rests on a card, which lifts so it can be clicked.
pausedbooleanfalseStops travelling and the cycle. Reduced-motion users always get a still gallery.
dprnumber2Maximum device pixel ratio for the canvas.
ariaLabelstring"Iris gallery…"Accessible description of the gallery and how to use it.
onFocusChange(item, index) => void—Called when a photo is opened, with null and -1 when it is put back.
onStateChange(state: "gallery" | "iris") => void—Called when the ring starts turning into the other state.
ref{ open, close, setState, rotate }—Imperative controls for opening a photo, switching state and turning the ring.
childrenReactNode—Content centred inside the ring, such as a headline. It fades out while a photo is open.
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 }[]

Images for the cards. They repeat when there are more cards than items. Images must allow cross-origin loading. Title and subtitle caption a photo when it is opened.

Defaultstudio portrait collection
countnumber

Number of cards around the ring, up to 96.

Default28
mode"cycle" | "gallery" | "iris"

Cycle alternates between an oval of upright photos and the iris, where every card turns into a lit, radial blade. Gallery and iris stay in one state.

Default"cycle"
intervalnumber

Seconds spent as a gallery before turning into the iris, in cycle mode.

Default6
holdnumber

Seconds held as an iris before opening back into a gallery, in cycle mode.

Default4
morphDurationnumber

Seconds the wave takes to travel around the ring when the state changes.

Default1.8
staggernumber

How spread out that wave is, from the top down both sides. 0 turns every card at once.

Default0.7
speednumber

Speed the cards travel around the ring, in degrees per second. Negative values reverse it.

Default6
finnumber

Angle, in degrees, the blades turn to in the iris. Higher values give thinner, deeper blades.

Default60
pupilnumber

Size of the pupil as a fraction of the iris. An opened photo fills the pupil.

Default0.52
cardAspectnumber

Width divided by height of the cards in the gallery state.

Default0.78
radiusnumber

Corner rounding as a fraction of the card width.

Default0.18
gapnumber

Space between cards in the gallery state, as a fraction of their spacing.

Default0.1
depthnumber

Strength of the perspective.

Default1
shadenumber

How much the blades darken as they turn away from the light.

Default0.6
backgroundColorstring

Background of the component. Captions adapt to it.

Default"transparent"
focusOnClickboolean

Clicking a card flies its photo into the pupil while the ring closes into an iris around it. Click again or press Escape to put it back.

Defaulttrue
captionsboolean

Show the title and subtitle of an opened photo.

Defaulttrue
draggableboolean

Drag around the ring to turn it, with inertia.

Defaulttrue
wheelboolean

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

Defaulttrue
pauseOnHoverboolean

Stop the ring and the cycle while the pointer rests on a card, which lifts so it can be clicked.

Defaulttrue
pausedboolean

Stops travelling and the cycle. Reduced-motion users always get a still gallery.

Defaultfalse
dprnumber

Maximum device pixel ratio for the canvas.

Default2
ariaLabelstring

Accessible description of the gallery and how to use it.

Default"Iris gallery…"
onFocusChange(item, index) => void

Called when a photo is opened, with null and -1 when it is put back.

Default—
onStateChange(state: "gallery" | "iris") => void

Called when the ring starts turning into the other state.

Default—
ref{ open, close, setState, rotate }

Imperative controls for opening a photo, switching state and turning the ring.

Default—
childrenReactNode

Content centred inside the ring, such as a headline. It fades out while a photo is open.

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—