JSFiddle - React, Tailwind, and code Playground
by Haze32
HTML
<section class="content">
<div class="lamp">
<div class="lava">
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob"></div>
<div class="blob top"></div>
<div class="blob bottom"></div>
</div>
</div>
<svg>
<defs>
<filter id="goo">
<feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -7" result="goo" />
<feBlend in="SourceGraphic" in2="goo" />
</filter>
</defs>
</svg>
<h1 class="">trying to make the red lava a clip-path. </h1>
<p class="">so i can see the gradient background behind the white section</p>
</section>
CSS
body {
background: linear-gradient(-45deg, #E26373, #0098C3, #359F68);
background-size: 400% 400%;
animation: gradient 15s ease infinite;
transition: all .3s ease-in-out;
height:100vh;
}
section.content {
position: relative;
height:80vh
}
.lamp { background:white;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
height: 100%;
overflow: hidden;
width: 100vw;
min-width: 100vw;
z-index: -1;
height: 100%;
}
.lava {
filter: url("#goo");
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
}
.blob {
border-radius: 50%;
position: absolute;
background: red;
}
.blob.top {
border-radius: 50%;
width: 100%;
height: 4%;
top: -3%;
left: 0;
}
.blob.bottom {
border-radius: 50%;
width: 110%;
height: 4%;
bottom: -3%;
left: -50px;
}
.blob:nth-child(1) {
width: 200px;
height: 200px;
left: 35%;
bottom: -15%;
animation: wobble 4s ease-in-out alternate infinite,
blob-one ease-in-out 13s infinite;
}
.blob:nth-child(2) {
width: 230px;
height: 230px;
right: 24%;
bottom: -65%;
animation: wobble 5s ease-in-out alternate infinite,
blob-two ease-in-out 22s infinite;
}
.blob:nth-child(3) {
width: 150px;
height: 150px;
bottom: -15%;
left: 34%;
animation: wobble 6s ease-in-out alternate infinite,
blob-three ease-in-out 16s infinite;
}
.blob:nth-child(4) {
width: 135px;
height: 135px;
bottom: -19%;
left: 30%;
animation: wobble 7s ease-in-out alternate infinite,
blob-four ease-in-out 12s infinite;
}
.blob:nth-child(4) {
width: 35px;
height: 35px;
bottom: -19%;
left: 30%;
animation: wobble 8s ease-in-out alternate infinite,
blob-four ease-in-out 12s infinite;
}
.blob:nth-child(5) {
width: 55px;
height: 55px;
bottom: -25%;
left: 34%;
animation: wobble 9s ease-in-out alternate infinite,
blob-five ease-in-out 32s infinite;
}
.blob:nth-child(6) {
width: 35px;
height: 35px;
bottom: -25%;
...