Unlimited PS Actions, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Design & Illustration
  2. SVG
Design

Файли SVG: від Illustrator до Веб

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Web and Interface Design With Vector.
Create a Set of Glossy Labels and Save them for Web
Quick Tip: How to Create a Simple Web Button Set Using the Appearance Panel

Ukrainian (українська мова) translation by AlexBioJS (you can also view the original English article)

Scalable Vector Graphics (SVG) – векторний формат зображень. який почав розвиватися з 1998 року. Він завжди розроблявся з урахуванням веб, проте тільки зараз веб власне почав надолужувати згаяне. Сьогодні ніхто не заперечує його важливість, так що давайте поглянемо, як перенести SVG з Illustrator до веб-браузера.

Зверніть увагу: я використовую Adobe Illustrator CC для демонстрації прикладів у цьому посібнику, проте в інших версіях є подібні (якщо не ідентичні) опції та інструменти.

Чим корисний SVG?

Формат був розроблений та підтримується World Wide Web Consortium (W3C) (* Консорціум Всесвітньої павутини. Тут і надалі примітка перекладача). W3C складається з групи розумних людей, які намагаються стандартизувати веб, роблячи його відкритим та доступним місцем для всіх.

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

Розмір файлу завжди становить проблему у веб (ніхто не хоче чекати, поки зображення розміром 5Tb завантажиться у браузер по мобільному з'єднанню), і тому ми маємо SVG – спрощений векторний формат. Він заснований на XML, і багато зайвого «мотлоху» видаляється, завдяки чому виходить відносно легковагий файл.

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

Коли б вам міг стати у пригоді SVG?

Переваги чіткості лінії та можливості маніпулювання графічним об'єктом говорять самі за себе, проте в яких випадках ви можете ними скористатися? Нижче наведено список випадків, коли використання SVG найбільш ефективно:

Звичайна графіка: Якщо ви використовуєте графіку на вашому сайті, то продумайте, чи могла би вона бути представлена у форматі SVG. Якщо так, то чому би не скористатися їм? Мистецтво фотографії могло би бути прикладом області, де використання SVG немає значення, проте в інших випадках поміркуйте про можливість використання SVG.

Demonstrating crisp font specimens Why bother with fuzzy raster formats
Демонстрація чітких зразків шрифту. Навіщо створювати собі проблеми через нечіткі растрові формати?

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

I havent finished this set of SVG icons yet but youre welcome to download and use them
Я ще не закінчив цей набір іконок SVG, проте за бажанням можете завантажити та користуватися ними...

Логотипи: якщо й є щось, що компанія повинна ретельно оберігати, то це власну ідентичність. Очевидно, що формат SVG надає вам найкращий спосіб відображення фірмової символіки у веб. Кольори можна задати з високою точністю, якість лінії бездоганне, і той самий файл може бути використаний знову на одному веб-сайті, проте змінений в залежності від обставин. Чудово.

Recognise this logo

Узнаєте логотип?

Художнє оформлення: мені не потрібно переконувати вас у тому, що цей формат корисний для майстрів векторного мистецтва.

SVG decoration courtesy of fixateit
Зображення у форматі SVG вище надане fixate.it.

Анімація: за допомогою CSS та JavaScript для веб відкрився цілий світ анімації. SVG також є чудовим посередником у цей світ через всі перелічені мною раніше причини. Можете уявити кнопки, які анімуються, коли ви переміщуєте курсор мишки поверх них? Іконки, які надають вам безпосередній персональний зворотний зв'язок? Дійсно, меж нема.

Iconic demonstrating SVG feedback
Іконка з Iconic, що демонструє зворотний зв'язок, реалізований за допомогою SVG.

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

Зберігаємо файл у форматі SVG

Ми будемо працювати з найпростішим зображенням, щоб продемонструвати вам, як працювати з SVG.

Новий документ

Відкрийте Illustrator, почніть створювати новий документ (File > New Document), дайте йому назву за бажанням та задайте в якості розмірів Artboard (* монтажної області) 300 x 300px.

svg-new-document

Вибираємо зображення

На цьому етапі те, що ви використовуєте в якості своєї демоверсії вектора, особливого значення не має, проте виберіть щось відносно просте. Я скористався гліфом "No Pirates Allowed", який безкоштовно доступний у складі шрифту "Webdings" (ніколи не думав, що він мені може стати у пригоді!).

Перейдіть до панелі Glyphs (Type > Glyphs), потім виберіть шрифт "Webdings" для перегляду різних доступних персонажів.

svg-webdingst

Після вибору інструмента Text Tool виберіть Artboard, потім двічі натисніть по вашому гліфу, щоб їм скористатися.

Перетворюємо на контур

Тепер ми перетворюємо цей гліф на контур.

Зверніть увагу: в SVG дійсно є підтримка текстових об'єктів, проте для того, щоб продемонструвати, як працювати з цією технологією на фундаментальному рівні, ми зупинимо свій вибір на шляхах.

Виберіть гліф за допомогою Selection Tool (V):

svg-select

Потім виберіть Type > Create Outlines.

svg-outlines

Супер! Тепер ми маємо векторний об'єкт, створений на основі шляхів.

Зберігаємо результат

Для того щоб зберегти цей документ у форматі SVG, виберіть File > Save або File > Save As.. У з'явившемуся діалоговому вікні виберіть розташування для файлу, дайте йому назву (якщо ще цього не зробили) і, що надзвичайно важливо, виберіть в якості формату SVG:

svg-save

Далі з'явиться інше діалогове вікно, у цей раз із деякими опціями SVG.

svg-options

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

Ми трохи ознайомимося з деякими з них пізніше, проте у цей раз натисніть OK.

svg-file

У нас є файл SVG!

І потім йдуть ті опції SVG

Ми пропустили опції SVG, оскільки вони не заслуговують на особливу увагу. Проте для повноти картини давайте розглянемо їх.

Порівняння SVG з SVGZ

Почнемо з того, що ми могли би вибрати два потенційних формати у діалоговому вікні для зберігання файлу.

svg-save-dialogue

SVGZ – сильно стиснута (архіватором zip, я гадаю) версія SVG. У результаті виходить файл меншого розміру, проте код XML у самому файлі стає незрозумілим, що завадило би нам маніпулювати векторами за допомогою коду CSS та JavaScript, якщо би ми того захотіли.

SVG Profiles (* Профілі SVG)

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

svg-profiles

Вони означають (приблизно) наступне:

  • SVG 1.0: перше втілення SVG (2001)
  • SVG 1.1: майже те саме, що й SVG 1.0, за винятком того, що у версії SVG 1.1 можуть бути виділені подальші підтипи, якими є...
  • SVG Tiny 1.1: це перший підтип SVG 1.1, оптимізований з урахуванням мобільного веб. Це дуже спрощена форма SVG, призначена для «мобільних пристроїв з дуже обмеженими можливостями». Ця версія не підтримує можливість додання градієнтів, прозорості, масок, символів, патернів, підкресленого тексту, вертикально-орієнтованого тексту або ефектів, що реалізуються за допомогою фільтрів SVG.
  • SVG Tiny 1.1+: трохи вдосконалена версія SVG Tiny 1.1, в якій додано підтримку градієнтів та прозорості.
  • SVG Basic 1.1: це другий підтип SVG 1.1, розроблений для більш просунутих мобільних пристроїв, таких як смартфони. У цій версії нема підтримки вирізання непрямокутної області та деяких ефектів, що реалізуються за допомогою фільтрів SVG.
  • SVG Tiny 1.2: спочатку передбачалося, що ця версія стане наступною повною специфікацією SVG, проте врешті-решт стала вдосконаленням підтипу Tiny. Не запитуйте мене, у чому полягає різниця.

Скоро ми зможемо додати SVG 2.0 до цього переліку. Насправді нюанси цих профілів нам майже не цікавлять. За допомогою SVG ми можемо реалізувати все що завгодно, проте при роботі з простими векторами дотримуйтеся поточної версії за налаштуванням – SVG 1.1, і з вашою графікою буде все завжди у порядку у веб.

Fonts (* Шрифти)

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

svg-fonts
  • Adobe CEF: при цьому значення опції використовується гінтінг (* механізм зменшення насиченості (товщини контурів)) для покращення типографської розмітки тексту. Проте цей варіант не підтримується всіма програмами перегляду SVG.
  • SVG: при цьому значення опції підтримується максимум можливостей; цей варіант підтримується всіма програмами перегляду SVG, проте нема покращення типографської розмітки тексту.
  • Convert To Outlines: при цьому значенні опції видаляється підтримка всіх можливостей редагування, проте текст залишається тим самим, де б він не переглядався. У результаті вибору цього варіанту трохи збільшується розмір файлу, оскільки потрібно описати шляхи, а не просто вказати, які знаки присутні.

Частина опції для налаштування оброблення шрифту включає до себе Subsetting. Налаштовувати цю опцію варто тільки тоді, коли ви вирішили не перетворювати ваш текст на контур.

svg-subsetting

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

Options

Якщо ми вже обговорюємо тему вбудовування, то знайте, що останні опції, які залишилися, також можуть впливати на розмір файлу.

svg-embed

Як і у випадку зі шрифтами, SVG-файли можуть містити растрові зображення. Так, де ви бачите Image location, виберіть «Embed», щоб зображення додавались до файлу у формі коду, або виберіть «Link», щоб там просто розміщувалися посилання на зображення. Ця опція працює аналогічно тому, як ви розміщуєте зображення у самому Illustrator, і вибір варіанта значно впливає на кінцевий розмір файлу.

Останній прапорець тут дозволяє вам зберегти за потреби можливість редагування файлу в Illustrator. При цьому буде збережено деталі про всі шари, фільтри та ефекти, знаки тощо. Знов-таки, не відмічайте прапорець, якщо ваш SVG-файл готовий до етапу публічного доступу додатка та його розмір важливий.

Зверніть увагу: рекомендується, щоб ви мали робочій AI-файл (* файл у форматі Adobe Illustrator Artwork), яким можна скористатися для редагування зображення.

Декілька кнопок

svg-final

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

  • More Options: давайте на будемо їх зараз обговорювати, добре?
  • SVG Code...: показ коду XML, що міститься у SVG-файлі, прямо у текстовому редакторі.
  • Globe: відкриття SVG-файлу прямо у веб-браузері. Саме так ви можете перевірити, чи все з ним гаразд.

Використання SVG у веб

Якщо ви не працювали безпосередньо з веб, HTML, браузерами та подібним, то вам потрібно звернути вашу увагу на декілька моментів.

Веб-браузери

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

svg-browser

Старіші веб-браузери, такі як Internet Explorer 8 та більш ранні версії, не підтримують формат SVG, і, нажаль, не підіграють нам.

More details of SVG and browser support can be found on caniusecom
За подробицями про підтримку SVG браузерами звертайтеся до caniuse.com.

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

svg-in-browser

Перше, на що варто звернути увагу, – те, що у зображення залишилися початково задані розміри. Наше зображення відобразилося в області з розмірами 300 x 300px, зовнішні границі якої було задано на основі розмірів монтажної області, і іконка пірата розмістилася там, де й повинна бути, – у центрі.

svg-in-browser-artboard

Додавання SVG до веб-сторінки

Наразі ми створили SVG-файл та відкрили його у браузері, щоб перевірити, чи все з ним гаразд. Тепер прийшов час скористатися нашим файлом відповідним чином на веб-сторінці.

Для початку нам потрібна веб-сторінка. Нам достатньо буде пустого файлу з розширенням .html, збереженого у звичайному текстовому редакторі. До нього не потрібно додавати ніякого коду, проте якщо ви зацікавлені в опануванні основ HTML, то погляньте на посібник The Best Way to Learn HTML, коли у вас буде час.

Нижче наведено мій файл, відкритий у TextEdit для Mac OS X, проте ви можете використати будь-який текстовий редактор або редактор коду, який вам до вподоби.

svg-text-editor

Цей файл відкриється у веб-браузері цілком нормально у тому вигляді, в якому він зараз є, проте нам потрібно додати деякий код HTML-розмітки, щоб додати SVG. І для цього є декілька підходів:

Підхід, який реалізується за допомогою тегу  <img>

По-перше, ми можемо скористатися тегом для додання зображень (який, ви ймовірно, використовували для додання файлів JPG, PNG тощо), в якому вказано точний шлях до файлу в атрибуті src="". Додайте цей фрагмент коду до вашого HTML-файлу:

Якщо шлях вказано коректно, то ваша HTML-сторінка відкриється у браузері подібним чином:

svg-in-browser-html

Так, я розумію, що зараз все виглядає таким же чином, як і тоді, коли ми відкрили SVG-файл безпосередньо у веб-браузері, проте зараз ми маємо набагато більше можливостей для роботи з ним! Наприклад, ми можемо тут же збільшити SVG за допомогою атрибута width="".

A beautiful crisp SVG infinitely scalable
Прекрасна чітка SVG, яку можна масштабувати скільки завгодно!

Цей підхід, мабуть, – найпростіший, проте має свої недоліки. Деякі браузери, з міркувань безпеки, обмежать коло ваших можливостей для роботи з SVG (наприклад, за допомогою JavaScript). Давайте поглянемо на альтернативні підходи.

Підхід, який реалізується за допомогою тегу  <object>

Тег <object> використовується подібним чином, проте ви вказуєте шлях до файлу наступним чином:

Результат виходить той самий:

svg-in-browser-html

Ви можете навіть помістити попередження у вмісті <object> для відображення у випадку, якщо браузер на підтримує SVG:

Багато веб-дизайнерів згодні з тим, що цей підхід наразі – найнадійніший та найгнучкіший спосіб використання SVG у веб-сторінці.

Підхід, при якому код SVG додається безпосередньо у документ

Ми говорили про те, що SVG працює на основі XML, і якщо ви відкриєте ваш текстовий редактор, то побачите дещо подібне:

svg-xml

Вау, що за куча нісенітниці! Власне, по закінченні стартового шоку у вас повинно буде вийти побачити деякий смисл серед неї. Ми можемо використовувати цей код XML прямо у документі, додавши його безпосередньо до HTML-файлу.

Коли ви почнете пізнавати XML-структуру SVG, ви зможете видалити деякі кусочки з файлу, що допоможе зменшити його розмір.

За бажанням можете запросто видалити рядок з  <!DOCTYPE>, коментар з <!-- Generator: Adobe Illustrator і навіть код з <?xml.

Все, що вам у дійсності потрібно, це спрощена версія коду, що включає тільки декілька тегів XML:

Наш SVG:

Підхід, при якому SVG-зображення додається у складі фонового зображення, що задається у коді CSS

За допомогою CSS (мови для додання стильового оформлення, використовуваної разом з HTML) ми можемо також вказати, щоб наш файл SVG виступав в якості фонового зображення елемента нашої веб-сторінки.

Ми виходимо за межі цього посібника зараз, проте якщо ви хочете розібратися з основами CSS, то погляньте на The Best Way to Learn CSS.

Ми можемо скористатися окремим файлом CSS, підключаючи його у нашому HTML-документі, або ж тегами <style> безпосередньо у нашому HTML-документі. Наше стильове правило виглядало би наступним чином:

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

Завершення

На цьому ми завершуємо з основними відомостями! У цьому посібнику ми розглянули, як створювати SVG та основи використання SVG у веб.

Якщо ви завжди хотіли дізнатися, що таке SVG, проте ніколи точно не знали, чому вам варто використовувати цю технологію, то я сподіваюся, що цей посібник прояснив вам ситуацію. Потенціал цього формату величезний і постійно зростає завдяки уяві та технічній майстерності людей з індустрії веб та графіки.

Ми маємо на підході більше посібників на тему анімацій та взаємодії з SVG-графікою, так що слідкуйте за оновленнями!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.