We're going to use border-radius property to achieve this with pseudo-elements.
Basically, if you round the div to at least 50% of its height and width, you get a circle.
Then, we position it absolutely at the bottom center of the header and voila.
header { position: relative; } header:after { content: ''; border-radius: 40px; height: 80px; width: 80px; position: absolute; left: 50%; top: 100%; transform: translate(-50%, -50%); background-color: blue; }
Alternatively, if you're having overlap issues, this will work as well:
header:after { height:40px; width:80px; border-radius: 0 0 90px 90px; background:blue; top: 100%; left: 50%; transform: translateX(-50%); }
and will generate a half circle (downwards facing) at the bottom of your header.