Wave generation math
The curve samples y = baseline + sin(2πx / wavelength) * amplitude across the viewport width, then closes the shape to form a fillable path.
Create responsive SVG wave backgrounds with adjustable amplitude, wavelength and color.
Updated
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 240" preserveAspectRatio="none"><path fill="#0ea5e9" d="M 0 240 L 0 110 L 0 110 L 20 123.012249 L 40 133.043548 L 60 137.795848 L 80 136.180455 L 100 128.567434 L 120 116.700839 L 140 103.299161 L 160 91.432566 L 180 83.819545 L 200 82.204152 L 220 86.956452 L 240 96.987751 L 260 110 L 280 123.012249 L 300 133.043548 L 320 137.795848 L 340 136.180455 L 360 128.567434 L 380 116.700839 L 400 103.299161 L 420 91.432566 L 440 83.819545 L 460 82.204152 L 480 86.956452 L 500 96.987751 L 520 110 L 540 123.012249 L 560 133.043548 L 580 137.795848 L 600 136.180455 L 620 128.567434 L 640 116.700839 L 660 103.299161 L 680 91.432566 L 700 83.819545 L 720 82.204152 L 740 86.956452 L 760 96.987751 L 780 110 L 800 123.012249 L 820 133.043548 L 840 137.795848 L 860 136.180455 L 880 128.567434 L 900 116.700839 L 920 103.299161 L 940 91.432566 L 960 83.819545 L 980 82.204152 L 1000 86.956452 L 1020 96.987751 L 1040 110 L 1060 123.012249 L 1080 133.043548 L 1100 137.795848 L 1120 136.180455 L 1140 128.567434 L 1160 116.700839 L 1180 103.299161 L 1200 91.432566 L 1200 240 Z"/></svg>
Quick start
Adjust amplitude and wavelength, then copy the SVG path output.
Tune amplitude, wavelength, baseline and fill color.
Validate the responsive wave preview against your design.
Paste the generated SVG into your HTML, Astro or React component.
In-depth guide
Create smooth, responsive SVG wave backgrounds for modern hero sections and visual dividers.
The curve samples y = baseline + sin(2πx / wavelength) * amplitude across the viewport width, then closes the shape to form a fillable path.
Use preserveAspectRatio="none" when the wave must stretch full-width, or keep default aspect ratio for decorative embeds.
<svg> markup and paste it directly into your page, or use it as a CSS background.Because the output is a single inline path, it scales crisply at any width with no extra HTTP request.
Inline SVG inherits surrounding styles, so a stray fill or height rule can distort the wave — scope your CSS. For full-bleed dividers set preserveAspectRatio="none" and an explicit height, otherwise the wave keeps its aspect ratio and leaves gaps. The markup is generated locally in your browser; nothing is uploaded.
Use this tool for quick browser-based work when you need an answer or output immediately. Use a dedicated application or automated workflow when you need bulk processing, approvals, or repeatable production rules.
Yes. The generated SVG is resolution-independent and ideal for hero or section separators.
It controls horizontal distance between peaks. Lower values create tighter waves; higher values create broader waves.
No. The path math runs in your browser and never uploads data.
Set preserveAspectRatio="none" and an explicit height on the SVG so it fills the container edge to edge.
Yes. Amplitude controls the peak-to-trough height of the wave, while wavelength controls the horizontal distance between peaks.
Yes. Inline the SVG as a data URI in background-image, or paste the markup directly into your HTML for a top or bottom divider.
Keep exploring
Hand-picked utilities that pair well with the one you're on — all free, client-side, and zero-signup.
Generate layered-looking box shadows with visual controls for offset, blur, spread and opacity.
Create custom rounded corners visually and copy exact border-radius CSS shorthand.
Build responsive CSS grid layouts with live rows, columns and gap controls.
Shrink PDF file size without uploading to a server.
Body Mass Index with metric / imperial inputs and WHO category bands.
Combine multiple PDFs into one in your browser.
Split a PDF by pages or page ranges, download as zip.