Перейти к содержимому

Как сделать неоновый текст в css

  • автор:

doctor Brain

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

В этой статье мы разберем процесс создания светящихся букв и рассмотрим различные анимационные эффекты. Все, что потребуется: CSS и keyframes.

Светящиеся буквы

HTML-разметка для нашего маленького проекта предельно проста:

У нас есть текст h1 и h2 , заключенный в родительский блок container . Эффект свечения будет создаваться для класса neon-text с помощью свойства text-shadow , примечательной особенностью которого является возможность создания множественных теней, перечисленных через запятую:

.neon-text

CSS-свойство text-shadow добавляет к тексту тень и принимает 4 параметра.

text-shadow: [x-offset] [y-offset] [blur-radius] [color]; 

Первые два параметра определяют, соответственно, горизонтальное и вертикальное смещение тени. Третий параметр указывает на радиус размытия тени. Последний параметр устанавливает цвет тени.

Так, чтобы усилить свечение текста, нужно увеличить радиус размытия: третий параметр CSS-свойства text-shadow .

Итак, с помощью одного CSS-свойства и нескольких теней в браузере мы получим приблизительно такую картинку:

Неоновый текст

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

Сначала, мы создаем эффект белого свечения внешних краев букв с небольшим радиусом размытия:

.neon-text < color: #fff; text-shadow: /* белый свет */ 0 0 1px #fff, 0 0 2px #fff, 0 0 5px #fff; >

Затем, мы добавляем пять теней, создающих более размытое (то есть охватывающее больший радиус) зеленое свечение:

.neon-text < color: #fff; text-shadow: /* белый свет */ 0 0 1px #fff, 0 0 2px #fff, 0 0 5px #fff, /* зеленый свет */ 0 0 11px #0fa, 0 0 20px #0fa, 0 0 30px #0fa, 0 0 55px #0fa, 0 0 80px #0fa; >

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

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

Мерцание

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

@keyframes flicker < 0%, 18%, 22%, 25%, 53%, 57%, 100% < text-shadow: 0 0 1px #fff, 0 0 2px #fff, 0 0 5px #fff, 0 0 11px #0fa, 0 0 20px #0fa, 0 0 30px #0fa, 0 0 55px #0fa, 0 0 80px #0fa; >20%, 24%, 55% < text-shadow: none; >> 

Такой подход действительно работает: достаточно взять свойство text-shadow с уже существующими параметрами и поместить его в анимацию @keyframes с названием flicker , после чего остается только установить на временной шкале псевдослучайные точки появления и полного исчезновения тени.

Остается только применить анимацию к нужному HTML-элементу. Например: к элементу h1 . Следует помнить, что мерцание части текста или отдельных символов всегда выглядит более реалистично, чем мерцание всего текста:

Пульсирующий свет

Для того, чтобы получить эффект пульсирующего света, используется тот же подход, что и для создания мерцания. Только в данном случае мы будем изменять радиус размытия, устанавливая для 100% ключевого кадра максимальное значение радиуса размытия, а для 0% — минимальное:

@keyframes flicker < /* максимальное свечение */ 100% < text-shadow: 0 0 2px #fff, 0 0 4px #fff, 0 0 8px #fff, 0 0 15px #0fa, 0 0 30px #0fa, 0 0 40px #0fa, 0 0 70px #0fa, 0 0 100px #0fa; >/* минимальное свечение */ 0% < text-shadow: 0 0 1px #fff, 0 0 2px #fff, 0 0 5px #fff, 0 0 11px #0fa, 0 0 20px #0fa, 0 0 30px #0fa, 0 0 55px #0fa, 0 0 80px #0fa; >> 

Созданную анимацию для эффекта пульсирующего света мы снова применим к элементу h1 :

Невыраженное мерцание

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

@keyframes flicker < 0%, 18%, 22%, 25%, 53%, 57%, 100% < text-shadow: 0 0 2px #fff, 0 0 4px #fff, 0 0 8px #fff, 0 0 15px #0fa, 0 0 30px #0fa, 0 0 40px #0fa, 0 0 70px #0fa, 0 0 100px #0fa; >20%, 24%, 55% < text-shadow: 0 0 1px #fff, 0 0 2px #fff, 0 0 5px #fff, 0 0 11px #0fa, 0 0 20px #0fa, 0 0 30px #0fa, 0 0 55px #0fa, 0 0 80px #0fa; >> 

Полученный эффект, уже по традиции, применим к элементу h1 :

Рамка

Прямоугольная или закругленная рамка — важный элемент светящейся неоновой вывески. Мы можем без особого труда создать ее с помощью CSS, придав ей такие же светящиеся свойства, как и тексту.

С помощью CSS-свойства border создадим рамку вокруг текста:

.container

Установив нужное нам значение border-radius , сделаем закругленные углы:

.container

Наконец, создадим эффект неонового свечения. Для блочного элемента container CSS-свойство text-shadow неприменимо, вместо него нужно использовать box-shadow . Значения тени, устанавливаемые для рамки очень похожи на значения, созданные ранее для текста. Следует обратить внимание на ключевое слово inset . С его помощью мы создаем эффект свечения внутри рамки, добавляя ей реалистичности:

.container

Полученный результат можно посмотреть на CodePen.

Доступность

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

В таком случае необходимо воспользоваться медиа запросом prefers-reduced-motion , чтобы удалить анимацию и сделать текст более доступным для чтения.

@media screen and (prefers-reduced-motion) < h1 < animation: none; >> 

Спасибо за внимание.

Новые публикации

Photo by CHUTTERSNAP on Unsplash

JavaScript: сохраняем страницу в pdf

Photo by David Everett Strickler on Unsplash

2021-07-12

HTML: Полезные примеры

Photo by Pankaj Patel on Unsplash

2021-07-11

CSS: Ускоряем загрузку страницы

Photo by Evan Fitzer on Unsplash

2021-07-10

JavaScript: 5 странностей

Photo by Markus Spiske on Unsplash

2021-07-10

JavaScript: конструктор сортировщиков

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.

© 2021 dr.Brain .
мир глазами веб-разработчика

Неоновый текст на CSS

Неоновый текст на CSS

Эффект неонового текста создается css-свойством text-shadow и animation , которая меняет эту тень, придавая тексту мерцание.

Во всех примерах используется шрифт Roboto

Вариант 1:

Простой вариант с мигающим текстом

Неоновый текст
Неоновый текст
background : #337AB7 ;
text-align : center ;
padding : 60px 20px ;
.sign-wrap-1 .sign_word < font-size : 40px ; font-weight : bold ; line-height : 50px ; color : #FFF ; font-family : 'Roboto' , sans-serif ; text-transform : uppercase ; animation : neon-1 .1s ease-in-out infinite alternate ; @keyframes neon-1 <

text-shadow : 0 0 6px rgba ( 202, 228, 225, 0.92 ) , 0 0 30px rgba ( 202, 228, 225, 0.34 ) , 0 0 12px rgba ( 191, 226, 255, 0.52 ) , 0 0 21px rgba ( 191, 226, 255, 0.92 ) , 0 0 34px rgba ( 191, 226, 255, 0.78 ) , 0 0 54px rgba ( 191, 226, 255, 0.92 ) ;

text-shadow : 0 0 6px rgba ( 202, 228, 225, 0.98 ) , 0 0 30px rgba ( 202, 228, 225, 0.42 ) , 0 0 12px rgba ( 191, 226, 255, 0.58 ) , 0 0 22px rgba ( 191, 226, 255, 0.84 ) , 0 0 38px rgba ( 191, 226, 255, 0.88 ) , 0 0 60px #FFF ;

Вариант 2:

Вариант, похожий на первый, только с более медленным миганием

Эффект неонового текста с помощью CSS

Эффект неонового текста с помощью CSS

Набор разноцветных эффектов неонового текста, которые созданы благодаря использованию только CSS свойств.

Используя свойство text-shadow можно создавать неоновый текст в любых цветовых гаммах, изменяя только цвет и параметры тени.

HTML

CSS

@font-face < font-family: 'Open Sans'; font-style: normal; font-weight: 700; src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzKRDOzjiPcYnFooOUGCOsRk.woff) format('woff'); >body < background: #000; font-family: 'Open Sans', sans-serif; >h1 < text-transform: uppercase; text-align: center; font-weight: bold; font-style: italic; font-size: 100px; >h1.pink < color: #ffffff; text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #ff00de, 0 0 80px #ff00de, 0 0 90px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de; >h1.red < color: #ffffff; text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #ff0000, 0 0 80px #ff0000, 0 0 90px #ff0000, 0 0 100px #ff0000, 0 0 150px #ff0000; >h1.green < color: #ffffff; text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #00ff00, 0 0 80px #00ff00, 0 0 90px #00ff00, 0 0 100px #00ff00, 0 0 150px #00ff00; >h1.blue < color: #ffffff; text-shadow: 0 0 5px #ffffff, 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 40px #0000ff, 0 0 80px #0000ff, 0 0 90px #0000ff, 0 0 100px #0000ff, 0 0 150px #0000ff; >h1.yellow

Как создать неоновый текст с помощью CSS

От автора: неоновый текст может добавить приятный футуристический штрих любому веб-сайту. Мне всегда нравилась магия неоновых надписей, и я хотел воссоздать их с помощью CSS. Я хочу поделиться советами, как это сделать! В этой статье мы рассмотрим, как добавить к тексту эффекты свечения. Мы также рассмотрим различные способы анимации неоновых надписей с использованием CSS и ключевых кадров.

Вот что мы будем делать:

Как создать неоновый текст с помощью CSS

Добавление эффекта свечения к тексту

Во-первых, давайте заставим текст светиться. Это можно сделать в CSS с помощью свойства text-shadow. Что полезно в text-shadow, так это то, что мы можем применить к нему несколько теней, просто разделив их запятыми:

color : #fff ;
text-shadow :
0 0 7px #fff,
0 0 10px #fff,
0 0 21px #fff,
0 0 42px #0fa,
0 0 82px #0fa,
0 0 92px #0fa,
0 0 102px #0fa,
0 0 151px #0fa ;

text-shadow требует четырех значений, первые два из которых представляют горизонтальное и вертикальное положение тени соответственно. Третье значение представляет размер радиуса размытия, а последнее значение представляет цвет тени. Чтобы увеличить размер эффекта свечения, мы бы увеличили третье значение, которое представляет радиус размытия. Или, выражаясь по-другому:

text-shadow : [x-offset] [y-offset] [blur-radius] [color] ;

Вот что мы получаем с помощью этого небольшого фрагмента CSS:

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

color : #fff ;
text-shadow :
/* White glow */
0 0 7px #fff,
0 0 10px #fff,
0 0 21px #fff,

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

color : #fff ;
text-shadow :
/* White glow */
0 0 7px #fff,
0 0 10px #fff,
0 0 21px #fff,
/* Green glow */
0 0 42px #0fa,
0 0 82px #0fa,
0 0 92px #0fa,
0 0 102px #0fa,
0 0 151px #0fa ;

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

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

Эффект «мерцания»

Одна вещь, которую вы можете заметить в неоновых надписях — это то, что некоторые из них, особенно старые, имеют тенденцию мерцать. Свет как то появляется и гаснет. Мы можем делать то же самое с анимацией CSS! Давайте сделаем анимацию @keyframes, которая включает и выключает свет быстрыми, казалось бы, случайными вспышками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *