Particle Morph

GPU particles that flow between a sequence of images, logos and silhouettes

Customize

Transition Duration
1800ms
Interval
2600ms
Particle Density
80
Particle Size
2.0
Particle Opacity
0.90
Dispersion
1.0
Chaos
0.00
Idle Drift
1.0
Idle Speed
1.0
Pointer Strength
1.0
Pointer Radius
120
Glow
0.6
Aberration
1.5px
Color
Background

Props

27
imagesstring[]

Ordered image sources the particles morph between

Defaultrequired
activeIndexnumber

Controlled index of the image currently formed

Defaultundefined
defaultIndexnumber

Initial index when uncontrolled

Default0
autoplayboolean

Advance to the next image automatically

Defaulttrue
intervalnumber

Time each image is held before autoplay advances, in ms

Default3000
transitionDurationnumber

Duration of one morph, in ms

Default1800
particleDensitynumber

Particles per 1,000 square CSS pixels of the frame

Default80
particleSizenumber

Particle diameter in CSS pixels

Default2
particleOpacitynumber

Peak particle opacity

Default0.9
dispersionnumber

Orbital swing particles take while travelling, 0 = straight lines

Default1
chaosnumber

How far particles burst outward in waves before regrouping into the next shape, 0 = direct morph

Default0
idleDriftnumber

Amplitude of the resting drift and sway, 0 holds particles still

Default1
idleSpeednumber

Speed multiplier for the resting drift

Default1
pointerStrengthnumber

How hard the pointer pushes particles away, 0 disables it

Default1
pointerRadiusnumber

Radius of the pointer influence in CSS pixels

Default120
glownumber

Bloom strength around the particles, 0 disables the pass

Default0.6
aberrationnumber

Chromatic aberration at the frame edge in CSS pixels; pulses while morphing, 0 disables

Default1.5
colorstring

Solid particle color; omit to sample colors from the images

Defaultundefined
backgroundColorstring

Background fill color

Default"#0a0a0a"
luminanceThresholdnumber

Pixels darker than this (0 to 1) count as background and get no particles

Default0
loopboolean

Wrap from the last image back to the first when autoplaying

Defaulttrue
onIndexChange(index: number) => void

Called whenever the formed image changes, including from autoplay

Defaultundefined
widthstring | number

Container width

Default"100%"
heightstring | number

Container height

Default"100%"
classNamestring

Additional CSS classes

Defaultundefined
childrenReactNode

Content rendered above the effect

Defaultundefined
dprnumber

Maximum device pixel ratio

Default2