Як створити заливку тексту градієнтом з допомогою CSS
Опубліковано

Як створити заливку тексту градієнтом з допомогою CSS

 

 

Веб-дизайнери та розробники завжди шукають щось нове та креативне, щоб зробити свій сайт унікальним та виразним. Один із таких способів візуально привернути увагу, – використовувати градієнтний текст. Градієнтний текст – це просто текст, до якого застосовано заливку градієнтом, і з допомогою цього кольорового ефекту отримує унікальний та привабливий вигляд.

В даному практичному уроці я покажу вам різні методи, які дозволяють накласти градієнт на текст: через кілька простих властивостей CSS або через SVG.

 

Градієнтний текст з допомогою лише CSS

Градієнтний текст з допомогою лише CSS

Мова стилів CSS – це потужний інструмент, який вміє створювати ефект градієнтного тексту. Наприклад, з використанням функції linear-gradient(), коли потрібно створити лінійний градієнт, або функції radial-gradient() – коли потрібен радіальний градієнт. Ці функції ви можете застосувати до тексту з допомогою властивості background-clip. Нижче показано простий приклад того, як створити лінійний градієнт для тексту з допомогою CSS:

.text-with-gradient {
  background: linear-gradient(135deg, #5e58ff, #f9ff58);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

Спочатку через властивість background-image застосовуємо функцію linear-gradient() з кутом нахилу, початковим та завершальним кольором градієнта. А потім встановлюємо властивість background-clip (обмеження, обрізка фону) для тексту та прозорість (transparent) для властивості -webkit-text-fill-color (заповнення тексту кольором). З допомогою цієї інструкції ми вказуємо браузеру застосувати градієнт лише до самого тексту та зробити колір тексту прозорим, щоб градієнт було видно. Я вже використовував властивість CSS-відсікання (background-clip), щоб створювати круглі зображення, і, як бачите, вона знадобилася і для поточної задачі.

 

Градієнтний текст з допомогою властивості mask-image

Ще ми можемо створити градієнтний текст застосовуючи властивість mask-image. Наприклад, використовуючи прозоре PNG зображення в якості маски зображення, до якої потім буде застосовано градієнт.

.text-with-gradient {
  background-image: linear-gradient(135deg, #feac5e, #c779d0, #4bc0c8);
  mask-image: url("logo.png");
  mask-repeat: no-repeat;
  mask-position: center;
  color: transparent;
}

Градієнтний текст з допомогою властивості mask-image

Тут логіка практично аналогічна попередньому підходу, але замість тексту ми використовуємо зображення, що містить потрібний текст. Варто зазначити, що ми можемо використовувати не лише текст, а, наприклад, якісь складні фігури.

 

Використання mix-blend-mode для створення градієнтного тексту

Властивість CSS mix-blend-mode дозволяє вказати, як вміст елемента має поєднуватися з фоном. Це може бути особливо корисним під час створення градієнтного тексту, оскільки дозволяє поєднувати колір тексту з градієнтним фоном.

Щоб використовувати mix-blend-mode для створення градієнтного тексту, спочатку потрібно встановити колір фону як градієнт, використовуючи один із методів, обговорених раніше в даному уроці. Потім можна додати властивість mix-blend-mode для текстового елемента та встановити для нього режим змішування, який добре працює з градієнтним фоном (наприклад, luminosity).

Ось приклад того, як використовувати mix-blend-mode для створення градієнтного тексту. Розмітка наступна:

<div class="background-with-gradient">
  <p class="text-with-gradient">SebWeo</p>
</div>

CSS стилі:

.background-with-gradient {
  background-image: linear-gradient(135deg, #feac5e, #c779d0, #4bc0c8);
}
.text-with-gradient {
  position: relative;
  mix-blend-mode: luminosity;
  background: white;
  color: gray;
}

Використання mix-blend-mode для створення градієнтного тексту

В цьому прикладі я для батьківського блоку встановив лінійний градієнт з допомогою властивості background-image. Потім для елементу p з класом text-with-gradient встановив властивість mix-blend-mode в luminosity (режим світіння). У цьому режимі змішування кольорів шару опирається на базовий колір (сірий) та фоновий (білий для текстового елемента). Як видно на картинці – фоновий колір змішується з фоновим кольором тексту і ми отримуємо градієнтний текст.

У чому перевага використання mix-blend-mode? Найбільша перевага – це те, що це чисте CSS-рішення. Немає потреби використовувати JavaScript або SVG, лише кілька рядків CSS. Іншою перевагою є те, що mix-blend-mode забезпечує значну гнучкість щодо типів градієнтів та кольорів, які можна використовувати та комбінувати.

 

Градієнтний текст з використанням SVG

SVG (масштабована векторна графіка) – це формат векторних зображень на основі XML, який підтримується всіма сучасними веб-браузерами. SVG дозволяє створювати складні фігури, візерунки та градієнти, включаючи градієнтний текст.

Щоб створити градієнтний текст у SVG, можна використовувати елемент <text>, який застосовується для визначення текстового фрагменту. Щоб додати градієнт для заливки тексту, можна використовувати елемент <linearGradient> (як в нашому прикладі) або ж <radialGradient>. Ось як може виглядати текст з градієнтом через SVG картинку:

<svg viewBox="0 0 150 50" xmlns="//www.w3.org/2000/svg">
  <defs>
    <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgb(0, 7, 249);stop-opacity:1"></stop>
      <stop offset="50%" style="stop-color:rgb(255, 255, 0);stop-opacity:1"></stop>
      <stop offset="100%" style="stop-color:rgb(79, 82, 194);stop-opacity:1"></stop>
    </linearGradient>
  </defs>
  <text x="50%" y="50%" text-anchor="middle" fill="url(#gradient)">SebWeo</text>
</svg>

 

Градієнтний текст з використанням SVG

У коді SVG картинки даного прикладу я використовую лінійний градієнт (<linearGradient>) з трьома точками зупину (<stop>), які визначають кольори та положення градієнта. Атрибут id використовується для ідентифікації градієнта, на який ми можемо посилатися з допомогою атрибута fill елементу <text>. Атрибут text-anchor використовується для горизонтального центрування тексту, а атрибути x та y використовуються для вертикального центрування тексту.

Для створення радіального градієнту (<radialGradient>), вкажіть атрибути cx, cy та r, які визначають центр та радіус градієнта, наприклад, так:

<radialGradient id="gradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
  …
</radialGradient>

Вас також ніхто не обмежує використовувати градієнти в SVG у поєднанні з іншими елементами (такими як фігури та зображення), щоб створювати дійсно складні дизайни.

 

 

Замість висновку

Ефективно використовуючи градієнтний текст, ви можете вивести дизайн свого веб-сайту на новий рівень та створити незабутній UX для своїх відвідувачів. З його допомогою ви можете створити унікальний та привабливий елемент дизайну для свого сайту. Незалежно від того, чи ви оберете прості властивості CSS, SVG чи їх комбінацію, градієнтний текст може візуально прикрасити вашу сторінку.

Але важливо пам’ятати, що хоча текст «вкритий» градієнтом може бути потужним інструментом, його слід використовувати стратегічно та помірно. Занадто багато градієнтного тексту може викликати перевантаження та відволікати від загального дизайну сторінки. Враховуйте конкретні потреби та цілі вашого сайту та будьте певні, що це зручно та доступно для ваших користувачів.

Завдяки прикладам, наведеним у даному практичному уроці, ви зможете впевненіше експериментувати з градієнтним текстом на власному сайті.

Дякую за увагу!

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *