Кнопка №7
- 5,82 КБ
- HTML, CSS
- Кнопка
- анимация, неон
- Лицензия MIT
<a href="#">
<span></span>
<span></span>
<span></span>
<span></span>
Неоновая кнопка
</a>
@import url("https://fonts.googleapis.com/css2?family=Tektur&display=swap");
a {
position: relative;
padding: 25px 30px;
color: #03e9f4;
text-decoration: none;
text-transform: uppercase;
-webkit-transition: 0.5s;
-o-transition: 0.5s;
-moz-transition: 0.5s;
transition: 0.5s;
letter-spacing: 4px;
overflow: hidden;
font-family: "Tektur", sans-serif;
}
a:hover {
background: #03e9f4;
color: #050801;
-webkit-box-shadow: 0 0 5px #03e9f4, 0 0 25px #03e9f4, 0 0 50px #03e9f4, 0 0 200px #03e9f4;
-moz-box-shadow: 0 0 5px #03e9f4, 0 0 25px #03e9f4, 0 0 50px #03e9f4, 0 0 200px #03e9f4;
box-shadow: 0 0 5px #03e9f4, 0 0 25px #03e9f4, 0 0 50px #03e9f4, 0 0 200px #03e9f4;
-webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
}
a span {
position: absolute;
display: block;
}
a span:nth-child(1) {
top: 0;
left: 0;
width: 100%;
height: 2px;
background: -webkit-gradient(linear, left top, right top, from(transparent), to(#03e9f4));
background: -webkit-linear-gradient(left, transparent, #03e9f4);
background: -moz-linear-gradient(left, transparent, #03e9f4);
background: -o-linear-gradient(left, transparent, #03e9f4);
background: linear-gradient(90deg, transparent, #03e9f4);
-webkit-animation: animate1 1s linear infinite;
-moz-animation: animate1 1s linear infinite;
-o-animation: animate1 1s linear infinite;
animation: animate1 1s linear infinite;
}
@-webkit-keyframes animate1 {
0% {
left: -100%;
}
50%,
100% {
left: 100%;
}
}
@-moz-keyframes animate1 {
0% {
left: -100%;
}
50%,
100% {
left: 100%;
}
}
@-o-keyframes animate1 {
0% {
left: -100%;
}
50%,
100% {
left: 100%;
}
}
@keyframes animate1 {
0% {
left: -100%;
}
50%,
100% {
left: 100%;
}
}
a span:nth-child(2) {
top: -100%;
right: 0;
width: 2px;
height: 100%;
background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#03e9f4));
background: -webkit-linear-gradient(top, transparent, #03e9f4);
background: -moz-linear-gradient(top, transparent, #03e9f4);
background: -o-linear-gradient(top, transparent, #03e9f4);
background: linear-gradient(180deg, transparent, #03e9f4);
-webkit-animation: animate2 1s linear infinite;
-moz-animation: animate2 1s linear infinite;
-o-animation: animate2 1s linear infinite;
animation: animate2 1s linear infinite;
-webkit-animation-delay: 0.25s;
-moz-animation-delay: 0.25s;
-o-animation-delay: 0.25s;
animation-delay: 0.25s;
}
@-webkit-keyframes animate2 {
0% {
top: -100%;
}
50%,
100% {
top: 100%;
}
}
@-moz-keyframes animate2 {
0% {
top: -100%;
}
50%,
100% {
top: 100%;
}
}
@-o-keyframes animate2 {
0% {
top: -100%;
}
50%,
100% {
top: 100%;
}
}
@keyframes animate2 {
0% {
top: -100%;
}
50%,
100% {
top: 100%;
}
}
a span:nth-child(3) {
bottom: 0;
right: 0;
width: 100%;
height: 2px;
background: -webkit-gradient(linear, right top, left top, from(transparent), to(#03e9f4));
background: -webkit-linear-gradient(right, transparent, #03e9f4);
background: -moz-linear-gradient(right, transparent, #03e9f4);
background: -o-linear-gradient(right, transparent, #03e9f4);
background: linear-gradient(270deg, transparent, #03e9f4);
-webkit-animation: animate3 1s linear infinite;
-moz-animation: animate3 1s linear infinite;
-o-animation: animate3 1s linear infinite;
animation: animate3 1s linear infinite;
-webkit-animation-delay: 0.5s;
-moz-animation-delay: 0.5s;
-o-animation-delay: 0.5s;
animation-delay: 0.5s;
}
@-webkit-keyframes animate3 {
0% {
right: -100%;
}
50%,
100% {
right: 100%;
}
}
@-moz-keyframes animate3 {
0% {
right: -100%;
}
50%,
100% {
right: 100%;
}
}
@-o-keyframes animate3 {
0% {
right: -100%;
}
50%,
100% {
right: 100%;
}
}
@keyframes animate3 {
0% {
right: -100%;
}
50%,
100% {
right: 100%;
}
}
a span:nth-child(4) {
bottom: -100%;
left: 0;
width: 2px;
height: 100%;
background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#03e9f4));
background: -webkit-linear-gradient(bottom, transparent, #03e9f4);
background: -moz-linear-gradient(bottom, transparent, #03e9f4);
background: -o-linear-gradient(bottom, transparent, #03e9f4);
background: linear-gradient(360deg, transparent, #03e9f4);
-webkit-animation: animate4 1s linear infinite;
-moz-animation: animate4 1s linear infinite;
-o-animation: animate4 1s linear infinite;
animation: animate4 1s linear infinite;
-webkit-animation-delay: 0.75s;
-moz-animation-delay: 0.75s;
-o-animation-delay: 0.75s;
animation-delay: 0.75s;
}
@-webkit-keyframes animate4 {
0% {
bottom: -100%;
}
50%,
100% {
bottom: 100%;
}
}
@-moz-keyframes animate4 {
0% {
bottom: -100%;
}
50%,
100% {
bottom: 100%;
}
}
@-o-keyframes animate4 {
0% {
bottom: -100%;
}
50%,
100% {
bottom: 100%;
}
}
@keyframes animate4 {
0% {
bottom: -100%;
}
50%,
100% {
bottom: 100%;
}
}
Этот фрагмент кода демонстрирует создание эффекта неоновой кнопки с помощью HTML и CSS, показывая современный и привлекательный прием веб-дизайна. В начале, HTML-структура минималистична, сосредоточена на элементе-ссылке <a href="#">, окруженном четырьмя элементами span, которые играют ключевую роль в анимации кнопки и её визуальной привлекательности, создавая динамичные элементы, которые светятся и анимируются для достижения эффекта неона.
В CSS части начинается с импорта конкретного шрифта из Google Fonts, задавая тон для стильного представления текста внутри кнопки. Стилизация тега ссылки с использованием неонового цвета #03e9f4, с различными состояниями и переходами, усиливает взаимодействие пользователя. Особенно важен эффект при наведении, когда изменяется цвет фона и достигается свечение с помощью box-shadow, слоистый в разных интенсивностях для создания глубокого, светящегося неонового эффекта, дополнительно усиленного эффектом отражения -webkit-box-reflect.
Анимации определены для каждого из элементов span, с ключевыми кадрами, перемещающими эти элементы по определенным паттернам для имитации мерцающего неонового света вокруг кнопки. Каждая анимация настроена с небольшой задержкой вариации, создавая последовательность, которая оживляет кнопку и делает ее привлекательной. Использование градиентов в этих спанах, переходящих от прозрачного к неоновому цвету, вместе с линейными анимациями, способствует созданию динамичного, светящегося периметра, который привлекает внимание.
В целом, этот фрагмент показывает, как можно использовать CSS для создания интересных, интерактивных веб-элементов, улучшающих пользовательский опыт. Комбинация анимации, box-shadow и переходов цвета не только выделяет кнопку, но и добавляет современную эстетику на веб-страницу.