Як створити анімоване лого з допомогою SVG і CSS3

Вже практично не викликає сумнівів те, що використання новітніх технологій на сайті здатне покращити UX (User experience) – взаємодію з користувачем. Масштабовану векторну графіку (іншими словами SVG) можна віднести до цих технологій. А творче використання її разом із CSS (каскадними таблицями стилів) здатне творити на вашому сайті дива.

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

 

Переваги використання SVG і чому вона така крута

Незважаючи на свою назву, масштабована векторна графіка не є окремим типом формату файлу для зображень (наприклад, JPEG, PNG, тощо). SVG відноситься до стандарту побудови мови розмітки (XML). SVG-графіка була розроблена у 1999 році з метою використання при створенні векторних двовимірних зображень, які можна легко масштабувати абсолютно без втрати роздільної здатності. Оскільки цей формат визначається у XML-структурі, SVG легко індексується, масштабується, та редагується. Файл МВГ (масштабованої векторної графіки) можна створити та редагувати з допомогою будь-якого текстового редактора та/або графічних програм.

 

Переваги та недоліки використання SVG-графіки

До переваг SVG графіки можна віднести:

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

 
До недоліків SVG графіки можна віднести наступне:

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

 

Перш ніж перейти до розгляду основного питання даного уроку, давайте поглянемо на приклад ось такого простого SVG коду. Тут за допомогою лише кількох рядків коду ми «намалювали» не лише прямокутник і коло, але й додали текст до логотипу:

<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 195">
  <rect width="100%" height="100%" fill="#5e5cff" />
  <circle cx="150" cy="100" r="80" fill="#ff7364" />
  <text x="150" y="120" font-size="50" text-anchor="middle" fill="white">SVG</text>
</svg>

 

SVG

 

В наступному прикладі використана більш складна структура, в яку ми включили координати шляху (<path>) та лінію (<line>). Вийшла схематична міні картинка Z-зомбі.

 

Як ви можете бачити, використання SVG може стати в нагоді, коли вам потрібно буде створити адаптивний веб-сайт. Вона буде доречна, коли мова йде про логотипи, прості графіки чи інфографіку. А використовуючи її доступний DOM API, ви можете без зусиль маніпулювати файлами SVG, не вдаючись до спеціальних інструментів (потрібен лиш простий текстовий редактор типу Notepad++). Нарешті, SVG можна легко анімувати, використовуючи CSS стилі (ось ми і дійшли до теми сьогоднішнього уроку).

 

Перетворюємо SVG логотип в анімований з допомогою лише CSS

Хоча SVG має вбудовану підтримку анімації, яка називається SMIL (Synchronized Multimedia Integration Language) – Мова синхронізованої інтеграції засобів мультимедіа, однак не всі браузери її підтримують. Як альтернативу, можна використовувати JavaScript, але це тема для наступного уроку. Сьогодні ж ми будемо використовувати простий CSS код для анімації SVG. Це набагато простіше. Ми можемо анімувати SVG розмітку, яка знаходиться безпосередньо в нашому HTML-коді.

Для прикладу розглянемо попередній логотип (Z-зомбі). Ми додамо просту анімацію зміни кольору лого при наведенні на нього курсору мишки. Для доступу до графіки додамо CSS-клас елементу svg-css-animation, а потім додамо ефекти до цього класу в коді CSS стилів. Ось зразок HTML коду для цього прикладу:

<svg viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg" version="1.1" class="svg-css-animation">
  <g fill="#747478">
    <path d="…"/>
    <path d="…"/>
    <path d="…"/>
  </g>
  <line fill="none" stroke="#d21010" stroke-width="0.7" x1="11" x2="27" y1="15" y2="9"/>
</svg>

 

Тепер додамо трохи стильового оформлення:

<style>
  /* Додаємо анімації до SVG логотипа при наведенні мишки */  .svg-css-animation {transition: .7s ease-out;}
  .svg-css-animation:hover path {fill: #c31219;}
  .svg-css-animation:hover line {stroke: #333;}
</style>

 

В результаті повинна бути така анімація при наведенні курсора:

 

Подібним чином можна змінювати колір заливки (fill) та обведення (stroke):

<style>
  …
  .svg-css-animation:hover path {stroke: #333; stroke-width: 3;}
  …
</style>

 

В результаті буде наступний ефект:

 

 

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

Це лише кілька простих прикладів того, чого можна досягти за допомогою CSS для анімації SVG графіки. За бажанням, ви можете використовувати складніші методи, такі як прозорість (opacity), трансформація (transform), обертання (rotate), масштабування (scale) і навіть використовувати ключові кадри CSS (keyframes).

За правильного використання анімація SVG графіки може покращити очікування користувачів і загальний дизайн вашого сайту. Використання SVG може допомогти вам у цьому. Також, рекомендуємо розглянути інший варіант анімації — використовуючи спрайти.

Чи був корисним для вас сьогоднішній урок? Дайте нам знати про це в розділі коментарів нижче.

 

Recent Posts

Чому обрати освіту за кордоном: переваги для майбутнього вашої дитини

Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…

1 день ago

Як вибрати майстра для перетяжки меблів?

Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…

2 дні ago

Що краще вибрати для хостингу: сервер VPS Windows чи VPS Linux?

Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…

1 тиждень ago

Лоуренс Пітер

Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер  

2 тижні ago

Що таке Чорне СЕО (Black Hat SEO) — вся потрібна інформація

Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…

2 тижні ago

Права категорії C: кому вони потрібні та як їх отримати?

Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…

3 тижні ago