Skip to content

Halftone Wave

Waves of growing dots roll through a soft halftone field.

LIVE PREVIEWInteract with the component
Just React. No extra dependencies.

Copy the component and its CSS module into your project.

CSS Modules

Usage

Matches your current playground settings.

jsx
import HalftoneWave from "./HalftoneWave";
export default function Example() {
return (
<HalftoneWave
color={"#abb9d9"}
background={"#12151f"}
columns={26}
rows={15}
speed={4}
dotSize={3}
minHeight={400}
children={"In a different rhythm."}
style={{
"color": "#e8eafa",
"fontSize": 35,
"letterSpacing": "-.05em"
}}
/>
);
}

Using Halftone Wave

Use columns and rows to choose the density of the halftone field. dotSize determines how much of each cell the dots occupy.

Place foreground content in children and reserve space with minHeight. Lower-density fields suit smaller previews and quieter backgrounds.

Props

NameTypeRequiredDefaultDescription
colorstringNo"#b4bfdc"Dot colour.
backgroundstringNo"#12151f"Background colour.
columnsnumberNo26Column count, clamped to 4–50.
rowsnumberNo15Row count, clamped to 4–30.
speednumberNo4Wave cycle duration in seconds.
dotSizenumberNo3Dot radius in SVG units.
minHeightnumber | stringNo360Minimum container height in pixels or a CSS length.
childrenReactNodeNoundefinedOptional content above the halftone pattern.
classNamestringNo""Additional classes merged with component styles.
styleCSSPropertiesNoundefinedInline styles for caller-defined sizing, typography, and appearance.

Related components

Lava Lamp

Backgrounds

Warm liquid forms merge and drift inside a softly lit glass lamp.

Helix Field

Backgrounds

Two strands of shaded particles rotate around fine connecting rungs.

Wave Lattice

Backgrounds

A fine perspective mesh drifts over a sculpted wave surface.

Kinetic Mobile

Backgrounds

Suspended discs, rings and counterweights sway on fine connecting rods.