Анимированный блик на чистом CSS

Приветствую, друзья, сегодня покажу как сделать анимированный блик на кнопке. Использовать для этого мы будем только чистый CSS. Без использования плагинов и библиотек. Наш анимированный блик будет похож на тот, что используют в тильде.

Эффект анимированного блика часто используется для привлечения внимания пользователя. Как только пользователь зайдет на сайт, он сразу увидит кнопку с анимированным бликом. Так же из-за приятной анимации повышается конверсия.

Как всегда, вы можете посмотреть пример блика на кнопке и готовый код для него на codepen.

Анимированный блик на кнопке — HTML часть

Начнем с создания HTML структуры. Тут все просто, создаем обычную кнопку, или <a> тег. Единственное, что нужно сделать — поместить внутрь нашей кнопки <span class=»flare»><span>, или другим удобным классом. Это и будет наш блик.

<a href="#" class="button">WebDevTips <span class="flare"></span></a>

CSS код

Саму кнопку вы можете стилизовать как хотите, тут только мой пример. Важное, что вам нужно сделать — добавить для самой кнопки свойство overflow-x: hidden и position: relative. Это нужно, что бы скрыть блик, когда он не на кнопке и правильно позиционировать его относительно её.

Код самого блика лучше скопируйте, и попробуйте изменять параметры, что бы увидеть на практике, как именно все работает. В коде я оставлю комментарии, какое свойство за что отвечает.

.button {
    padding: 20px 80px;
    background: #3E64FF;
    color: #ffffff;
    text-decoration: none;
    font-size: 24px;
    font-weight: 600;
    border-radius: 10px;
    position: relative; // Это важно добавить 
    overflow-x: hidden; / Это важно добавить 
}

.button .flare {
    position: absolute;
    top: 0;
    height: 100%;
    width: 45px;
    transform: skewX(-45deg); // Наклон
    animation: flareAnimation;
    left: -150%;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.4));
    animation: flareAnimation 3s infinite linear; // Время и тип анимации можно менять
}

@keyframes flareAnimation {
    0% {
        left: -150%;
    }
    100% {
        left: 150%;
    }
}

Результат

Спасибо, что прочитали! Если у вас остались любые вопросы — задавайте их на Youtube, или пишите мне в Telegram, с радостью вам помогу и отвечу на вопросы.

Так же буду очень благодарен, если вы ознакомитесь с другими моими уроками:
1. Параллакс эффект для фона сайта на чистом CSS
2. Делаем видео фон на чистом HTML+CSS