Как реализовать в CSS анимацию заливки плавно увеличивающегося круга
Как можно реализовать анимацию смены цвета фона как на гифке? Интересует именно круговая плавная заливка

UPD: я пытался сделать с помощью box-shadow
.wave {
position: absolute;
top: 35px;
right: 40px;
border-radius: 100%;
width: 2px;
height: 2px;
display: block;
z-index: -1;
box-shadow: 0 0 0 0 #212121;
transition: box-shadow .3s cubic-bezier(0.4, 0.0, 0.2, 1);
}
.wave.active {
background: #212121;
box-shadow: 0 0 0 9999px #212121;
}
и это работает, но изучив данный подход узнал что это не best practice, т.к. могут быть странные эффекты при добавлении дополнительных анимаций.
Ответы (1 шт):
Автор решения: Krovorgen
→ Ссылка
document.querySelector('.box__button').addEventListener('click', function() {
document.querySelector('.box').classList.toggle("box--animation");
})
.box {
position: relative;
z-index: 1;
width: 500px;
height: 200px;
overflow: hidden;
background-color: #ccc;
}
.box__button {
position: absolute;
right: 20px;
top: 20px;
z-index: 1;
padding: 5px;
color: #fff;
background-color: #8dce91;
cursor: pointer;
user-select: none;
}
.box::before {
content: "";
position: absolute;
right: 35px;
top: 35px;
z-index: -1;
width: 0;
height: 0;
border-radius: 50%;
background-color: #000;
transform: translate(50%, -50%);
transition: width 0.5s, height 0.5s;
}
.box--animation::before {
z-index: -1;
width: 1000px;
height: 1000px;
}
<div class='box'>
<button class='box__button'>Click</button>
</div>