• доступно о веб-разработке
23.11.2014 CSS, Уроки

Золотой текст с эффектом блика на чистом CSS3

color-full-css
Каскадные таблицы стилей третьей версии привнесли в вёрстку и дизайн сайтов много нового. В частности, переходы, анимацию и псевод-элементы. Используя эти преимущества, мы заставим помещённый вовнутрь обычного блочного элемента текст золотого цвета сиять.

Определим наш код:


  ДвижКод

Получим:
Снимок экрана 2014-11-23 в 13.23.50

Совсем невыразительно, правда?

Добавим немного стилей:

body
{
  background: #111;
}

.shiny
{
  color: #F5C21B;
  background: -webkit-gradient(linear, left top, left bottom, from(#F5C21B), to(#D17000));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
  font-family: "Source Sans Pro", sans-serif;
  font-size: 13em;
  font-weight: 900;
  position: relative;
  text-transform: uppercase;
}

Получим:

Вот так уже лучше, правда?

Теперь добавим при помощи градиента псевдо-элемента блик, который позже анимируем также при помощи CSS3:

.shiny::before
{
  background-position: -180px;
  -webkit-animation: flare 5s infinite;
  -webkit-animation-timing-function: linear;
  background-image: linear-gradient(65deg, transparent 20%, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.3) 27%, transparent 27%, transparent 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  content: "ДвижКод";
  color: #FFF;
  display: block;
  padding-right: 140px;
  position: absolute;
}

Получим:
Снимок экрана 2014-11-23 в 13.28.39

Тексту не хватает немного объёма. Сделаем его псевдо-трехмерным:

.shiny::after
{
  content: "ДвижКод";
  color: #FFF;
  display: block;
  position: absolute;
  text-shadow: 0 1px #6E4414, 0 2px #6E4414, 0 3px #6E4414, 0 4px #6E4414, 0 5px #6E4414, 0 6px #6E4414, 0 7px #6E4414, 0 8px #6E4414, 0 9px #6E4414, 0 10px #6E4414;
  top: 0;
  z-index: -1;
}

Получим:
Снимок экрана 2014-11-23 в 13.31.33

Дело за малым. Анимируем наши блики, созданные при помощи псевдо-элементов:

.inner-shiny::after, .inner-shiny::before
{
		-webkit-animation: sparkle 5s infinite;
  -webkit-animation-timing-function: linear;
	background: #FFF;
  border-radius: 100%;
  box-shadow: 0 0 5px #FFF, 0 0 10px #FFF, 0 0 15px #FFF, 0 0 20px #FFF, 0 0 25px #FFF, 0 0 30px #FFF, 0 0 35px #FFF;
  content: "";
  display: block;
  height: 10px;
  opacity: 0.7;
  position: absolute;
  width: 10px;
}

.inner-shiny::before
{
	-webkit-animation-delay: 0.2s;
  height: 7px;
  left: 0.12em;
  top: 0.8em;
  width: 7px;
}

.inner-shiny::after
{
  top: 0.32em;
  right: -5px;
}

@-webkit-keyframes flare
{
  0%   { background-position: -180px; }
  30%  { background-position: 500px; }
  100% { background-position: 500px; }
}

@-webkit-keyframes sparkle
{
  0%   { opacity: 0; }
  30%  { opacity: 0; }
  40%  { opacity: 0.8; }
  60%  { opacity: 0; }
  100% { opacity: 0; }
}

Результат:

Всё вместе, собранное воедино, на CodePen:

Поделиться

Комментарии Правила дискуссии

Читайте ранее:
WordPress обновился до версии 4.0.1

Любимая многими система управления сайтами получила критически важное обновление безопасности под номером 4.0.1.

Закрыть