React Image Effects
React image effects: reveals, parallax, zoom lenses, pixel transitions and galleries.
About these image effects
Image effects turn static pictures into moments: reveals on scroll, parallax depth, a zoom lens for detail, Ken Burns movement, pixel and halftone transitions, orbiting images and preview rails with thumbnails.
Every effect keeps the image's alt text and never hides the content it decorates.
Where they earn their keep
- Product photography and e-commerce.
- Portfolios and case studies.
- Editorial and blog heroes.
- Galleries and property listings.
How they are built
Effects animate transforms, masks and clip paths around a normal img element, so images load and lazy-load as usual. Reduced motion shows the image without the effect.
Each one is a single file you copy into your project with the shadcn CLI and own outright. They are written for React 19 and Tailwind CSS 4 with Motion, use only your theme's CSS variables, and work in Next.js, Vite, Remix and Astro.
All 14 image effects
All of them are part of Charcoal UI Pro, which covers all 393 Pro components, 112 sections and 100 templates for one price. Open any of them to try it live and tune it before you buy.
- Parallax Image (Pro): A React parallax image that drifts slower than the page as you scroll
- Pixelate Reveal (Pro): A React pixelate reveal: images resolve from chunky pixels to full detail
- Image Reveal (Pro): A React image reveal: a clip-path wipe uncovers the image as it settles
- Zoom Lens (Pro): A React zoom lens: a magnifier follows the pointer over product images
- Ken Burns (Pro): A React Ken Burns slideshow: slow pan and zoom crossfading through images
- Pixel Transition (Pro): A React pixel transition: content swaps behind a grid of flipping cells
- Scroll Expand (Pro): A React scroll expand: media grows from a small frame to full screen as you scroll
- Orbit Images (Pro): React orbiting images on rings that pause and lift on hover
- Halftone Reveal (Pro): A React halftone reveal: a print-style image clears in a wave on hover
- Pixel Swap (Pro): A React pixel swap: two images flip block by block in a diagonal wave
- Dither Veil (Pro): A React dither veil that lifts in a Bayer crosshatch around the pointer
- Ripple Distortion (Pro): React water ripple distortion over a photo: stir it, drop a stone
- Paper Crumple (Pro): A React image you crumple like paper by holding and dragging it
- Preview Rail (Pro): A React image preview with a thumbnail rail and autoplay progress
Install one
npx shadcn@latest add @charcoal/parallax-imageEvery page shows the exact command. The CLI adds the file to components/ui along with any dependency it needs, and AI coding agents can do the same through the Charcoal UI MCP server.
Other categories
Browse the rest of the library by what you are building.
- React Input Components: 68 components
- React Navigation Components: 27 components
- React Dialog, Popover and Tooltip Components: 19 components
- React Loading, Progress and Toast Components: 23 components
- React Card, Accordion and Display Components: 67 components
- React AI Chat and Agent Components: 20 components
- React Chart and Data Table Components: 24 components
- Animated React Icons: 2 components
- React UI Sound Effects: 2 components
- React Text Animations: 41 components
- Animated React Backgrounds: 86 components
- React Cursor Effects: 17 components
- Interactive React Animations: 27 components
- React UI Transitions and Micro-interactions: 23 components
Frequently asked questions
- Do image effects work with next/image?
- Most take a src and alt and render a plain img; for next/image, pass its output or wrap the effect around it.
- Are the images still indexed?
- Yes. The real img element with its alt text is in the page, so search engines and screen readers see it.
- Do they slow images down?
- No. The effects animate after the image loads, using transforms and masks that the browser handles on the GPU.
- Do these image effects work with shadcn/ui?
- Yes. Charcoal UI is a shadcn registry, so components install with the same CLI, use the same CSS variables and sit next to your existing shadcn components.