The MatrixFx component creates an animated dot matrix reveal effect using the native Canvas 2D API. It supports instant reveal, progressive reveal on mount, or hover-triggered animations with smooth transitions. Perfect for hero sections, backgrounds, or interactive hover cards.
Control the reveal animation speed with the speed prop. Higher values make the reveal faster.
Use multiple colors for variety. Supports CSS variables and any valid color format.
Customize the size of dots and spacing between them.
Control where the reveal animation starts from.
Place content inside the reveal effect.
Add a subtle animated flicker to create a dynamic, alive feeling.
Add dynamic wave effects to create fluid, organic motion. Choose between ripple (circular waves from center) or wave (S-curve flowing diagonally). Tiles are displaced, scale up at the wave front, and fade at the edges.
The wave type creates an organic, flowing S-curve that travels diagonally from bottom-left to top-right. The curve rotates and morphs as it moves, straightening at the edges for a natural liquid motion.
Use repeat: false for a single wave that plays once. Add delay for a pause before starting or between cycles (useful for sequencing multiple effects).
Use trigger="hover" for native hover support. Dots progressively appear on hover and smoothly reverse when you move away.
Use trigger="click" to toggle the effect on click.
Use trigger="manual" with the active prop to control the effect from parent state.
MatrixFx automatically detects low-end devices and the prefers-reduced-motion system setting. When either is detected, the animation renders a single static frame (no flicker, no bulge animation). You can override this with the reducedMotion prop.
See useReducedMotion for details.