7 CSS Wave Effects: Free Code Snippets & Examples
CSS wave effects establish dynamic, organic spatial rhythm across modern interfaces, introducing fluid section dividers and ambient background animations. By sliding and morphing periodic wave geometries natively, this styling system replaces hard horizontal cuts with natural, physics-inspired boundary transitions.
- Continuous harmonic wave oscillation is driven by animating CSS trigonometric functions like
sin()andcos()to calculate smooth periodic node shifts natively. - Fluid multi-layered curves utilize custom clip-path polygons mapped to overlapping absolute containers, simulating water depth on the GPU.
- To preserve INP (Interaction to Next Paint) performance, high-speed wave sweeps transition the
transformmatrix directly on compositor layers.
Explore these undulating layout patterns to integrate responsive, organic wave dividers and ambient liquid dynamics into your projects.
Table of Contents:
Examples

Form Wave Animation
Clicking the input field doesn’t just slide the label up; instead, it playfully ‘hops’ letter by letter, adding a micro-interaction that brings the form to life.
See the Pen Form Wave Animation.

Pure CSS Moiré Wave Dots
A dynamic field of black dots moving synchronously yet phase-shifted in time, forming complex geometric patterns reminiscent of moiré.
See the Pen Pure CSS Moiré Wave Dots.

Pure CSS Liquid Wave Illusion
This demo creates a captivating liquid wave illusion using a single ::before pseudo-element inside multiple overflow: hidden containers. The fluid motion is the result of two simultaneous @keyframes animations - one controlling top and the other transform: rotateZ.
See the Pen Pure CSS Liquid Wave Illusion.

Neumorphism Waves Animation
Pure CSS ripple animation with neumorphic styling. Checkbox-triggered wave sequence using scale transforms and opacity transitions.
See the Pen Neumorphism Waves Animation.
Pure CSS Waves
Experimental visualization utilizing CSS Custom Properties (@property), the CSS Shapes module (shape()), and relative color syntax (hsl(from ...)). Fluid deformation of wave-like layers is achieved by animating clip-path with arc and line primitives. Background and graphic color states are synchronized via a shared --color variable, which transitions dynamically throughout the animation sequence.
See the Pen Pure CSS Waves.

Stacked Wave Dividers
Generation of wavy dividers using a Sass function that calculates points for clip-path via math.sin. The layout is dynamically inverted via the --p CSS Custom Property, which simultaneously controls element order and the color scheme through color-mix(), while negative margins ensure seamless section overlapping.
See the Pen Stacked Wave Dividers.
Waves
This lightweight demo showcases dynamic, animated waves built entirely with SVG and pure CSS keyframes, eliminating the need for complex JavaScript to create a smooth, scalable visual effect.
See the Pen Waves.