Как создать мигающую/светящуюся кнопку с помощью анимации в CSS3

В этой статье мы покажем, как создать мигающую/светящуюся кнопку, используя только CSS. Здесь вам не нужно использовать JavaScript. Просто выполните следующие шаги и попробуйте примеры!

1. Создайте ссылку и кнопку.

Прежде всего создадим ссылку и кнопку в таком виде:

<a href="#" class="button">Click here!</a>
<button type="submit" class="button">Click here!</button>

2. Добавьте оформление к кнопке.

Дальше необходимо указать внешний вид кнопки с помощью CSS свойств:

.button{
background-color: #1c87c9;
-webkit-border-radius: 60px;
border-radius: 60px;
border: none;
color: #eeeeee;
cursor: pointer;
display: inline-block;
font-family: sans-serif; 
font-size: 20px;
padding: 10px 10px;
text-align: center;
text-decoration: none;
}

3. Добавьте анимацию к кнопке:

Нам нужны ключевые кадры, чтобы добавить анимацию. Анимация содержит три ключевых кадра. Каждый из них определяет новые значения для свойств background color и the box-shadow.

@keyframes glowing {
0% { background-color: #2ba805; box-shadow: 0 0 3px #2ba805; }
50% { background-color: #49e819; box-shadow: 0 0 10px #49e819; }
100% { background-color: #2ba805; box-shadow: 0 0 3px #2ba805; }
}

Ключевые кадры в оформлении анимаций:

  1. 0% - начальная точка, которая указывает зеленый цвет фона и тот же цвет тени вокруг кнопки с расстоянием размытия 3 px.
  2. 50% - средняя точка, которая указывает светло-зеленый цвет фона и тот же цвет тени вокруг кнопки с расстоянием размытия 10 px.
  3. 100% - конечная точка, которая указывается как 0%.

Давайте посмотрим результат!

Пример

<!DOCTYPE html> 
<html>
  <head>
    <title>Заголовок документа</title>
    <style> 
      .button {
      background-color: #1c87c9;
      -webkit-border-radius: 60px;
      border-radius: 60px;
      border: none;
      color: #eeeeee;
      cursor: pointer;
      display: inline-block;
      font-family: sans-serif; 
      font-size: 20px;
      padding: 10px 10px;
      text-align: center;
      text-decoration: none;
      }
      @keyframes glowing {
      0% { background-color: #2ba805; box-shadow: 0 0 5px #2ba805; }
      50% { background-color: #49e819; box-shadow: 0 0 20px #49e819; }
      100% { background-color: #2ba805; box-shadow: 0 0 5px #2ba805; }
      }
      .button {
      animation: glowing 1300ms infinite;
      }
    </style>
  </head>
  <body>
    <h2>Создайте мигающую/светящуюся кнопку</h2>
    <a class="button" href="#">Нажмите сюда!</a>
    <button type="submit" class="button">Нажмите сюда!</button>
  </body>
</html>

Рассмотрим другой пример:

Пример

<!DOCTYPE html> 
<html>
  <head>
    <title>Заголовок документа</title>
    <style> 
      body {
      margin: 0;
      }
      .wrapper {
      display: flex;
      height: 20vh;
      flex-direction: row;
      justify-content: center;
      align-items: center;
      }
      .button {
      border: 1px transparent;
      -webkit-border-radius: 40px;
      border-radius: 40px;
      color: #eeeeee;
      cursor: pointer;
      display: inline-block;
      font-family: Arial;
      font-size: 20px;
      padding: 8px 30px;
      text-align: center;
      text-decoration: none;
      margin-left: 20px;
      -webkit-animation: glowing 1300ms infinite;
      -moz-animation: glowing 1300ms infinite;
      -o-animation: glowing 1300ms infinite;
      animation: glowing 1300ms infinite;
      }
      @-webkit-keyframes glowing {
      0% { background-color: #0091b2; -webkit-box-shadow: 0 0 3px #0091b2; }
      50% { background-color: #21c7ed; -webkit-box-shadow: 0 0 15px #21c7ed; }
      100% { background-color: #0091b2; -webkit-box-shadow: 0 0 3px #0091b2; }
      }
      @keyframes glowing {
      0% { background-color: #0091b2; box-shadow: 0 0 3px #0091b2; }
      50% { background-color: #21c7ed; box-shadow: 0 0 15px #21c7ed; }
      100% { background-color: #0091b2; box-shadow: 0 0 3px #0091b2; }
      }
      .svg-btn {
      display: block;
      width: 230px;
      height: 230px;
      margin-left: 10px;
      }
      svg {
      fill: blue;
      -webkit-animation: glowing-polygon 1300ms infinite;
      -moz-animation: glowing-polygon 1300ms infinite;
      -o-animation: glowing-polygon 1300ms infinite;
      animation: glowing-polygon 1300ms infinite;
      }
      @-webkit-keyframes glowing-polygon {
      0% { fill: #0091b2; -webkit-filter: drop-shadow( 0 0 3px #0091b2); }
      50% { fill: #21c7ed; -webkit-filter: drop-shadow( 0 0 15px #21c7ed); }
      100% { fill: #0091b2; -webkit-filter: drop-shadow( 0 0 3px #0091b2); }
      }
      @keyframes glowingPolygon  {
      0% { fill: #0091b2; filter: drop-shadow( 0 0 3px #0091b2); }
      50% { fill: #21c7ed; filter: drop-shadow( 0 0 15px #21c7ed); }
      100% { fill: #0091b2; filter: drop-shadow( 0 0 3px #0091b2); }
      }
    </style>
  </head>
  <body>
    <h2>Создайте мигающую/светящуюся кнопку</h2>
    <div class="wrapper">
      <a class="button" href="#">Нажмите сюда!</a>
      <button type="submit" class="button">Нажмите сюда!</button>
      <a class="svg-btn">
        <svg height="210" width="200">
          <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill: #0091b2;"/>
        </svg>
      </a>
    </div>
  </body>
</html>