I want to achieve to following design:
This is what I already have:
.header {
width: 100%;
min-height: 500px;
background-color: #2F4F4F;
color: #FFF;
overflow: hidden;
position: relative;
border-bottom-right-radius: 500px;
}
.header:before {
content: '';
background: rgb(47, 79, 79);
background: linear-gradient(90deg, rgba(47, 79, 79, 1) 20%, rgba(255, 255, 255, 0) 100%);
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.header__image__wrapper {
padding-right: 1rem;
border-bottom-right-radius: 500px;
}
.header__image {
background: url('https://images.unsplash.com/photo-1662530787378-966cc9f87a8d?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=869&q=80');
background-position: right center;
background-size: cover;
width: 100%;
height: 500px;
border-bottom-right-radius: 500px;
}
<header class="header">
<div class="header__image__wrapper">
<div class="header__image">
</div>
</div>
</header>
This is the SVG that can be used as a clipping path:
<svg width="1440" height="811" viewBox="0 0 1440 811" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M729.957 635.88C1307.52 647.087 1443.92 359.963 1439.92 0H0V811C2.6665 741.29 152.391 624.673 729.957 635.88Z" fill=""/>
<defs>
<linearGradient id="paint0_linear_558_16541" x1="1440" y1="374.355" x2="0.333518" y2="397.848" gradientUnits="userSpaceOnUse">
<stop stop-color="#11434E"/>
<stop offset="0.338542" stop-color="#0F5868"/>
<stop offset="1" stop-color="#16A1BD"/>
</linearGradient>
</defs>
</svg>
My current struggles are:
- The border that goes outside the div on the bottom left side. That's the blue part that "sticks" outside the element.
- The uneven spacing (padding) between the image and box on the right and bottom. You still see some blue from the wrapper on the right bottom. So I guess it can be done with some padding?
- It's really important that the top right (images + blue background must be in a "point".