Демо
  • 9,75 КБ
  • CSS, HTML
  • Текст
  • анимация, свечение
  • Лицензия MIT
HTML
<h1 class="glow-text-1" data-text="чёрное зеркало"><span>чёрное зеркало</span></h1>
CSS
.glow-text-1 {
    position: relative;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: -webkit-calc(20px + 5vw);
    font-size: -moz-calc(20px + 5vw);
    font-size: calc(20px + 5vw);
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-shadow: 0 0 0.15em #1da9cc;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    white-space: nowrap;
    -webkit-filter: blur(0.007em);
    filter: blur(0.007em);
    -webkit-animation: shake-glow-text-1 2.5s linear forwards;
    -moz-animation: shake-glow-text-1 2.5s linear forwards;
    -o-animation: shake-glow-text-1 2.5s linear forwards;
    animation: shake-glow-text-1 2.5s linear forwards;
}

.glow-text-1 span {
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-clip-path: polygon(10% 0%, 44% 0%, 70% 100%, 55% 100%);
    clip-path: polygon(10% 0%, 44% 0%, 70% 100%, 55% 100%);
}

.glow-text-1::before,
.glow-text-1::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
}

.glow-text-1::before {
    -webkit-animation: crack1-glow-text-1 2.5s linear forwards;
    -moz-animation: crack1-glow-text-1 2.5s linear forwards;
    -o-animation: crack1-glow-text-1 2.5s linear forwards;
    animation: crack1-glow-text-1 2.5s linear forwards;
    -webkit-clip-path: polygon(0% 0%, 10% 0%, 55% 100%, 0% 100%);
    clip-path: polygon(0% 0%, 10% 0%, 55% 100%, 0% 100%);
}

.glow-text-1::after {
    -webkit-animation: crack2-glow-text-1 2.5s linear forwards;
    -moz-animation: crack2-glow-text-1 2.5s linear forwards;
    -o-animation: crack2-glow-text-1 2.5s linear forwards;
    animation: crack2-glow-text-1 2.5s linear forwards;
    -webkit-clip-path: polygon(44% 0%, 100% 0%, 100% 100%, 70% 100%);
    clip-path: polygon(44% 0%, 100% 0%, 100% 100%, 70% 100%);
}

@-webkit-keyframes shake-glow-text-1 {
    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        -webkit-filter: blur(0.018em);
        filter: blur(0.018em);
        -webkit-transform: translateY(0.018em) rotate(0deg);
        transform: translateY(0.018em) rotate(0deg);
    }

    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        -webkit-filter: blur(0.01em);
        filter: blur(0.01em);
        -webkit-transform: translateY(-0.018em) rotate(0deg);
        transform: translateY(-0.018em) rotate(0deg);
    }

    20%,
    60% {
        -webkit-filter: blur(0.03em);
        filter: blur(0.03em);
        -webkit-transform: translate(-0.018em, 0.018em) rotate(0deg);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }

    45%,
    85% {
        -webkit-filter: blur(0.03em);
        filter: blur(0.03em);
        -webkit-transform: translate(0.018em, -0.018em) rotate(0deg);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }

    100% {
        -webkit-filter: blur(0.007em);
        filter: blur(0.007em);
        -webkit-transform: translate(0) rotate(-0.5deg);
        transform: translate(0) rotate(-0.5deg);
    }
}

@-moz-keyframes shake-glow-text-1 {
    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        filter: blur(0.018em);
        -moz-transform: translateY(0.018em) rotate(0deg);
        transform: translateY(0.018em) rotate(0deg);
    }

    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        filter: blur(0.01em);
        -moz-transform: translateY(-0.018em) rotate(0deg);
        transform: translateY(-0.018em) rotate(0deg);
    }

    20%,
    60% {
        filter: blur(0.03em);
        -moz-transform: translate(-0.018em, 0.018em) rotate(0deg);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }

    45%,
    85% {
        filter: blur(0.03em);
        -moz-transform: translate(0.018em, -0.018em) rotate(0deg);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }

    100% {
        filter: blur(0.007em);
        -moz-transform: translate(0) rotate(-0.5deg);
        transform: translate(0) rotate(-0.5deg);
    }
}

@-o-keyframes shake-glow-text-1 {
    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        filter: blur(0.018em);
        -o-transform: translateY(0.018em) rotate(0deg);
        transform: translateY(0.018em) rotate(0deg);
    }

    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        filter: blur(0.01em);
        -o-transform: translateY(-0.018em) rotate(0deg);
        transform: translateY(-0.018em) rotate(0deg);
    }

    20%,
    60% {
        filter: blur(0.03em);
        -o-transform: translate(-0.018em, 0.018em) rotate(0deg);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }

    45%,
    85% {
        filter: blur(0.03em);
        -o-transform: translate(0.018em, -0.018em) rotate(0deg);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }

    100% {
        filter: blur(0.007em);
        -o-transform: translate(0) rotate(-0.5deg);
        transform: translate(0) rotate(-0.5deg);
    }
}

@keyframes shake-glow-text-1 {
    5%,
    15%,
    25%,
    35%,
    55%,
    65%,
    75%,
    95% {
        -webkit-filter: blur(0.018em);
        filter: blur(0.018em);
        -webkit-transform: translateY(0.018em) rotate(0deg);
        -moz-transform: translateY(0.018em) rotate(0deg);
        -o-transform: translateY(0.018em) rotate(0deg);
        transform: translateY(0.018em) rotate(0deg);
    }

    10%,
    30%,
    40%,
    50%,
    70%,
    80%,
    90% {
        -webkit-filter: blur(0.01em);
        filter: blur(0.01em);
        -webkit-transform: translateY(-0.018em) rotate(0deg);
        -moz-transform: translateY(-0.018em) rotate(0deg);
        -o-transform: translateY(-0.018em) rotate(0deg);
        transform: translateY(-0.018em) rotate(0deg);
    }

    20%,
    60% {
        -webkit-filter: blur(0.03em);
        filter: blur(0.03em);
        -webkit-transform: translate(-0.018em, 0.018em) rotate(0deg);
        -moz-transform: translate(-0.018em, 0.018em) rotate(0deg);
        -o-transform: translate(-0.018em, 0.018em) rotate(0deg);
        transform: translate(-0.018em, 0.018em) rotate(0deg);
    }

    45%,
    85% {
        -webkit-filter: blur(0.03em);
        filter: blur(0.03em);
        -webkit-transform: translate(0.018em, -0.018em) rotate(0deg);
        -moz-transform: translate(0.018em, -0.018em) rotate(0deg);
        -o-transform: translate(0.018em, -0.018em) rotate(0deg);
        transform: translate(0.018em, -0.018em) rotate(0deg);
    }

    100% {
        -webkit-filter: blur(0.007em);
        filter: blur(0.007em);
        -webkit-transform: translate(0) rotate(-0.5deg);
        -moz-transform: translate(0) rotate(-0.5deg);
        -o-transform: translate(0) rotate(-0.5deg);
        transform: translate(0) rotate(-0.5deg);
    }
}

@-webkit-keyframes crack1-glow-text-1 {
    0%,
    95% {
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -webkit-transform: translate(-51%, -48%);
        transform: translate(-51%, -48%);
    }
}

@-moz-keyframes crack1-glow-text-1 {
    0%,
    95% {
        -moz-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -moz-transform: translate(-51%, -48%);
        transform: translate(-51%, -48%);
    }
}

@-o-keyframes crack1-glow-text-1 {
    0%,
    95% {
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -o-transform: translate(-51%, -48%);
        transform: translate(-51%, -48%);
    }
}

@keyframes crack1-glow-text-1 {
    0%,
    95% {
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -webkit-transform: translate(-51%, -48%);
        -moz-transform: translate(-51%, -48%);
        -o-transform: translate(-51%, -48%);
        transform: translate(-51%, -48%);
    }
}

@-webkit-keyframes crack2-glow-text-1 {
    0%,
    95% {
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -webkit-transform: translate(-49%, -53%);
        transform: translate(-49%, -53%);
    }
}

@-moz-keyframes crack2-glow-text-1 {
    0%,
    95% {
        -moz-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -moz-transform: translate(-49%, -53%);
        transform: translate(-49%, -53%);
    }
}

@-o-keyframes crack2-glow-text-1 {
    0%,
    95% {
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -o-transform: translate(-49%, -53%);
        transform: translate(-49%, -53%);
    }
}

@keyframes crack2-glow-text-1 {
    0%,
    95% {
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }

    100% {
        -webkit-transform: translate(-49%, -53%);
        -moz-transform: translate(-49%, -53%);
        -o-transform: translate(-49%, -53%);
        transform: translate(-49%, -53%);
    }
}

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

Суть магии заключается в CSS (каскадные таблицы стилей), языке стилизации веба. Этот фрагмент кода определяет класс, который применяется к HTML элементу и включает в себя свойства, работающие вместе, чтобы создать желаемый эффект свечения.

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

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

  •  Текст №25
    Текст №8
    Текст №8
    • HTML, CSS
    • 4,94 КБ
    • Анимация, неон
    Подробнее
  •  Текст №25
    Текст №7
    Текст №7
    • HTML, CSS
    • 3,17 КБ
    • Анимация, неон, свечение
    Подробнее
  •  Текст №24
    Текст №6
    Текст №6
    • HTML, CSS
    • 2,01 КБ
    • Анимация, неон, свечение
    Подробнее
  •  Текст №24.5
    Текст №4
    Текст №4
    • HTML, CSS
    • 1,98 КБ
    • Анимация, неон, свечение
    Подробнее
  •  Текст №24.3
    Текст №5
    Текст №5
    • HTML, CSS
    • 1,98 КБ
    • Анимация, неон, свечение
    Подробнее
  •  Текст №24
    Текст №3
    Текст №3
    • HTML, CSS
    • 2,76 КБ
    • Первая буква
    Подробнее
Меню