Як створити анімоване лого з допомогою 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

Як змінити активну тему WordPress через базу даних

Тема (шаблон) — це своєрідний кістяк сайту на WordPress. І, на жаль, іноді цей «кістяк»…

7 години ago

5 практичних порад щодо розробки форм під мобільні пристрої

Контактна форма (чи будь-яка інша) на сайті — це дуже важливий компонент. На неї покладено…

1 день ago

Ліна Костенко

Жах не в тому, що щось зміниться. Жах у тому, що все може залишитися так…

7 днів ago

Трансформаційна гра родом з древньої Індії — Ліла

Що таке Ліла — це стародавня гра, що виступає в якості інструменту для особистісної трансформації,…

1 тиждень ago

Конструктор — найкращий варіант інтерактивної іграшки для дітей

Сучасні варіанти дитячих конструкторів — це не просто іграшки, а дієвий інструмент розвитку, який допомагає…

1 тиждень ago

Як зробити так, щоб ваш сайт показувався у блоці відповідей Google

Основний трафік на сайт з пошукових систем йде саме з органічної видачі. І тут дуже…

1 тиждень ago