I\'m trying to recreate this image with CSS:
I would not need it to repeat. This is what I started but it just has a straight line:
#wave {
position: absolute;
height: 70px;
width: 600px;
background: #e0efe3;
}
<div id=\"wave\"></div>
I\'m not sure it\'s your shape but it\'s close - you can play with the values:
https://jsfiddle.net/7fjSc/9/
#wave {
position: relative;
height: 70px;
width: 600px;
background: #e0efe3;
}
#wave:before {
content: \"\";
display: block;
position: absolute;
border-radius: 100% 50%;
width: 340px;
height: 80px;
background-color: white;
right: -5px;
top: 40px;
}
#wave:after {
content: \"\";
display: block;
position: absolute;
border-radius: 100% 50%;
width: 300px;
height: 70px;
background-color: #e0efe3;
left: 0;
top: 27px;
}
<div id=\"wave\"></div>
I think this is the right way to make a shape like you want. By using the SVG possibilities, and an container to keep the shape responsive.
svg {
display: inline-block;
position: absolute;
top: 0;
left: 0;
}
.container {
display: inline-block;
position: relative;
width: 100%;
padding-bottom: 100%;
vertical-align: middle;
overflow: hidden;
}
<div class=\"container\">
<svg viewBox=\"0 0 500 500\" preserveAspectRatio=\"xMinYMin meet\">
<path d=\"M0,100 C150,200 350,0 500,100 L500,00 L0,0 Z\" style=\"stroke: none; fill:red;\"></path>
</svg>
</div>
My pure CSS implementation based on above with 100% width. Hope it helps!
#wave-container {
width: 100%;
height: 100px;
overflow: hidden;
}
#wave {
display: block;
position: relative;
height: 40px;
background: black;
}
#wave:before {
content: \"\";
display: block;
position: absolute;
border-radius: 100%;
width: 100%;
height: 300px;
background-color: white;
right: -25%;
top: 20px
}
#wave:after {
content: \"\";
display: block;
position: absolute;
border-radius: 100%;
width: 100%;
height: 300px;
background-color: black;
left: -25%;
top: -240px;
}
<div id=\"wave-container\">
<div id=\"wave\">
</div>
</div>
My implementation uses the svg element in html and I also made a generator for making the wave you want:
https://smooth.ie/blogs/news/svg-wavey-transitions-between-sections
<div style=\"height: 150px; overflow: hidden;\">
<svg viewBox=\"0 0 500 150\" preserveAspectRatio=\"none\" style=\"height: 100%; width: 100%;\">
<path d=\"M0.00,92.27 C216.83,192.92 304.30,8.39 500.00,109.03 L500.00,0.00 L0.00,0.00 Z\" style=\"stroke: none;fill: #e1efe3;\"></path>
</svg>
</div>
https://jsfiddle.net/1b8L7nax/5/