Этого эффекта действительно возможно достичь только с помощью CSS, но CSS поразителен:
.container {
background-color: rgba(168,214,255,1);
padding: 20px;
}
.tab {
height: 50px;
background-color: #4790CE;
margin-bottom: 10px;
border-radius: 20px;
position: relative;
}
.tab.active {
background-color: #63B6FF;
border-radius: 20px 0 0 20px;
box-shadow: 0 0 15px #3680BD;
}
.tab .shadow {
position: absolute;
top: -10px;
left: 50px;
right: -20px;
bottom: -10px;
border-radius: 20px;
background-color: transparent;
-webkit-border-image: -webkit-gradient(linear, left top, right top, color-stop(10%,rgba(168,214,255,0)), color-stop(80%,rgba(168,214,255,1))) 50 50 stretch;
border-width: 10px 20px 10px 0;
}
Вы в основном используете border-image, чтобы замаскировать тени. Этого можно добиться без дополнительной разметки с помощью псевдо-селектора: after, но: after не очень хорошо работает с анимацией.
Просмотр демонстрации на jsfiddle (только для Webkit, но вы можете легко адаптировать его к FF. IE9, к сожалению, не повезет).