Skip to main content

Overview

Particle Card splits a profile photo into a configurable grid of tiles that scatter outward on hover using a center-based explosion algorithm. The reveal exposes a bio, skill tags, and a call-to-action, then the particles reassemble when focus is lost.

Installation

Or copy the component manually from components/rareui/ParticleCard.tsx into your project.

Usage

Props

string
default:"Sam Jenkins"
Name displayed on the card front and revealed in the back layer.
string
default:"Product Designer"
Role or job title shown beneath the name on both the front overlay and revealed layer.
string
default:"Passionate about creating intuitive..."
Biography text shown in the card’s background layer after the particle explosion.
string
default:"Unsplash portrait URL"
URL of the profile image used for both the static display and the particle tiles.
string[]
default:"['UI/UX', 'React', 'Motion', 'Figma']"
Array of skill or category labels rendered as pill badges in the revealed layer.
number
default:"20"
Number of horizontal particle columns. Higher values produce smaller, more numerous tiles.
number
default:"24"
Number of vertical particle rows. Increasing both cols and rows creates a denser, finer explosion.

Examples

Custom profile content

High-density particle grid

Higher cols/rows values create a finer mosaic effect but increase the number of DOM nodes. Values above 40×48 may affect performance on low-end devices.

Team member grid

Features

Particle Explosion Effect

Image breaks into animated tiles that scatter outward from the center on hover.

Spring Animations

Powered by Framer Motion with per-particle delays for a natural ripple effect.

Dual-Sided Content

Front shows the photo overlay; back reveals bio, tags, and a CTA button.

Configurable Density

Control particle size and count independently via cols and rows props.

Mobile Support

Tap-to-toggle interaction on touch devices; hover interaction on desktop.

Performance Optimized

Particle metadata is computed once with useMemo and reused across renders.