Икона на начална страница. Как да внедрите SVG икони за различни браузъри

Отзивчивият дизайн е популярна тема. Екраните отдавна са надхвърлили стандартните разделителни способности и сайтовете могат да се гледат както на устройства с размер на длан, така и на големи монитори. Сайтът трябва да изглежда еднакво добре, независимо от размера на устройството и плътността на пикселите. Има много различни техники и технологии за адаптиране на дизайна и съдържанието. Векторната графика, SVG, според мен е една от най-интересните теми в тази посока.

SVG графиките са страхотни за икони, няма да изглеждат сапунени на устройства с ретина и могат да бъдат разтегнати без загуба на качество.

Ето, например, един SVG спрайт в 4 различни размера, оригиналният е 32px:

SVG се справя чудесно с това и е много подходящ за използване в адаптивни оформления.

Можете да вземете икони за дизайн от готови комплекти или да нарисувате свои собствени.

Комплекти готови икони

iconmelon.com

Голяма колекция от икони на различни теми. Предлага се изтеглените икони да бъдат вмъкнати в HTML чрез използване на .

icomoon.io

Най-удобният инструмент. Можете не само да изберете и изтеглите готови икони, но можете също да качите свои собствени и да ги получите под формата на шрифт и / или спрайт. Заедно със спрайта се предлага да изтеглите неговата PNG версия.

flaticon.com

Голяма колекция, иконите са удобно разделени на категории. Избраните икони могат да бъдат изтеглени в отделни формати (шрифт, SVG, PNG) или всички наведнъж.

Ние рисуваме себе си

За да създадете свой собствен набор от икони, имате нужда от векторен редактор:

  • Adobe Illustrator е най-добрият според мен. 599 RUB/месец като част от абонамент за Creative Cloud;
  • Inkscape е безплатен и не е много лесен за използване;
  • Sketch - за Mac OS, $79,99. Има някои проблеми с векторизирането на щрихи, но като цяло е доста удобно.

Отслабване

Готовият SVG файл обикновено съдържа много излишък, но се поддава добре на оптимизация. Ненужните атрибути, интервали и тирета са премахнати от кода, а броят на знаците след точката е намален на цифри. Теглото на пилата се намалява с 30-50%. Инструменти за оптимизация:

грухтене-svgmin- задача за използване на Grunt svgo. В този случай самите файлове ще бъдат взети от папката източник, оптимизирани и добавени към папката с резултати. Много удобно.

Шрифт спрайт или икона?

Шрифтът е удобна алтернатива на спрайта. Няма нужда да се занимавате с мрежата и местоположението на иконите, удобно е да добавяте нови знаци, въпреки че това изисква допълнителни инструменти.

С помощта на шрифт можете да правите не само монофонични икони, но и многоцветни.

Можете да създадете свой собствен шрифт, например на icomoon.io/app/. Приблизителна последователност от действия:

  1. Изберете икони от комплекта и/или качете свои собствени.
  2. Щракнете върху бутона Шрифт по-долу.
  3. На тази стъпка можете да преназначите символи за икони или да изтеглите получения шрифт веднага.

Заедно с шрифта в четири формата (.woff, .svg, .ttf, .eot) се зарежда CSS и демо файл.

Вградените шрифтове работят дори в IE 8, но имат неочаквани проблеми с поддръжката в някои съвременни браузъри. Opera Mini изобщо не поддържа персонализирани шрифтове, Firefox се нуждае от заклинания за сървъра, където се намира шрифтът (решено с base64), Chrome може да разтовари шрифта, ако оставите раздел отворен за дълго време:

също в Chrome на Windows7 страница с вградени шрифтове може да виси при отваряне, а в някои други браузъри вместо икони може да се появи всичко:

Изображение от статията на Chris Koer Icon System with SVG Sprites. По някакъв начин видях йероглифи на същото място, но сега има SVG, така че екранът няма да работи. CSS-tricks, между другото, използва SVG много активно в новия си дизайн, а разработчиците на Codepen в новия дизайн на редактора изоставиха използването на шрифтове с икони в полза на SVG.

Въпреки лекотата на използване, проблемите с поддръжката на шрифтове в момента налагат избор в полза на SVG иконите.

Надяваме се, че вграждащите шрифтове ще се поддържат по-добре в бъдеще.

Как има начини да вмъкнете SVG в страница?

Спрайт

.icon (фоново изображение: url(your.svg); )

Професионалисти:

  • кратък четим код;
  • картината е кеширана;

минуси:

  • заявка към сървъра;
  • фоновият SVG се поддържа странно в старите опери: може да има проблеми при добавяне на рамка към елемент с SVG фон, докато в Opera Mini работят само фонове без viewBox;
  • иконите на спрайтове не са налични за стилове на страници;
  • големите спрайтове могат да причинят проблеми с производителността.

Base64 в URI на данните

.icon (фоново изображение: url(данни:изображение/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL...); )

Професионалисти:

  • няма заявка към сървъра.
  • добра поддръжка на браузъра: всичко с изключение на Opera на Presto и стария IE.

минуси:

  • изображението не се кешира и се изобразява отново всеки път;
  • дълъг ред в CSS;
  • не се чете: от кода не става ясно какво съдържа;
  • кодираната картина може да тежи повече от оригинала;
  • необходими са допълнителни инструменти за кодиране/декодиране;
  • иконите не са налични за стилове на страници.

SVG към данни URI

.icon ( фоново изображение: url("data:image/svg+xml;utf8, Професионалисти:

  • няма заявка към сървъра;
  • относително четим код (може да се чете или редактира);
  • не изисква декодиране;
  • поддържа се от всички съвременни браузъри, когато е кодиран с SVG.

минуси:

  • не е кеширано;
  • дълъг ред в CSS;
  • иконите не са налични за стилове на страници;
  • поддържа се само от браузъри на Webkit.

Използване (повторно използване на SVG елементи)

Професионалисти:

  • четим код;
  • можете да добавите заглавие и описание към снимки;
  • налични са символи за стилове на страници. Можете също да зададете икони на fill="currentColor" и те ще бъдат рисувани заедно с текста.

минуси:

  • вмъкнат директно в HTML. Елементите трябва да бъдат декларирани в горната част на страницата във вграден SVG, преди да могат да се използват. Може би има по-елегантен начин за свързване на библиотеката с елементи, не можах да го намеря.

Шрифт

.icon ( съдържание: "\6c"; семейство шрифтове: "icomoon"; )

Професионалисти:

  • удобен код;
  • единственият начин се поддържа в IE8 без резервни варианти;
  • иконите са налични за стилове на страници и ще бъдат рисувани заедно с текста.

минуси:

  • ако шрифтът не се е заредил (все още не се е заредил, не се е заредил изобщо или вече се е разтоварил), вместо икони ще има букви или символи на Unicode или нищо.

Пример на живо с поддръжка на браузър:

Примерът е предоставен такъв, какъвто е, без опит да бъде съвместим с различни браузъри. Можете да отворите демонстрацията в браузъра, който ви интересува, и да видите как поддържа различни методи.

Показване на икони в браузъри без поддръжка на SVG

В момента най-удобният и надежден начин за вмъкване е под формата на спрайт.

За да замените изображения в IE8 и по-стари, можете да използвате метода с множество фонове:

Икона ( фоново изображение: url(your.png); /* PNG за IE6-8 */ фоново изображение: url(your.svg), няма; )

За по-стари Opera можете да използвате този селектор:

Не съществува:-o-prefocus, .icon ( фоново изображение: url(your.png); )

По този начин е възможно да се гарантира, че иконите за потребители с различни браузъри изглеждат приблизително еднакви.

От съществуващите начини за вмъкване на икони най-много харесвам шрифта. Би било идеално, ако не бяха проблемите с поддръжката. Не харесвам Use, защото смесва маркиране и стил, въпреки че харесвам CSS достъпността и възможността за добавяне на заглавие и desc. Има още един много добър, но слабо поддържан начин, но това е тема за отделен пост.

UPD:Благодаря много

Подготовката на SVG за използване в мрежата е много прост процес, не по-труден от експортирането на JPEG или PNG. Използвайте какъвто и да е редактор на изображения, с който сте свикнали (Illustrator, Sketch, Inkscape [безплатно] и т.н. [или дори Photoshop, ако използвате слоеве с форми]) с размера на изображението, който планирате да използвате. Обикновено работя в Illustrator, така че ще обясня някои от начините за подготовка на файлове в тази програма, но като цяло те са приложими за всяка друга програма. Може да искате да конвертирате текста в контури, тъй като шрифтът най-вероятно няма да се показва правилно, освен ако не планирате да ги стилизирате с уеб шрифта, използван на страницата (което е възможно!). Също така не е добра идея да превръщате всички обекти в еднакви форми, особено ако имате щрих, който ще трябва да контролирате на страницата, особено след като конвертирането на обекти често не намалява размера на файла. Всички имена, дадени на групи или слоеве, ще бъдат добавени към SVG като идентификатор на елемент. Това е доста удобно за оформяне, но леко ще увеличи общия размер на файла.

Преди да извършите експортирането, трябва да проверите дали всички изображения са в решетка с цели числа (т.е. не 23,3px × 86,8px например). В противен случай най-вероятно изображението няма да има достатъчно яснота и част от изображението ще бъде отрязана. В Illustrator това може да се направи по следния начин: Object > Artboards > Fit to Artwork Bounds . След това щракнете върху Запиши като и изберете SVG и оставете настройките по подразбиране. Тук трябва да се направи малко оптимизация, но наистина не си струва, тъй като по-късно ще приложим различни подобрения, така че засега няма да губим време за тези настройки.

Техники за намаляване на размера на файловете.

(Виж оптимизация)

За да постигнете най-малкия размер на SVG, би било логично да премахнете всичко ненужно от него. Най-известната и полезна програма (поне аз така мисля) за обработка на SVG е SVGO. Той премахва целия ненужен код. Но! Бъдете внимателни при използването на тази програма, ако планирате да манипулирате SVG с CSS/JS, тъй като тя може да изчисти кода ви твърде много, затруднявайки по-нататъшните промени. Удобството на SVGO е също, че може да се включи в процеса на автоматично изграждане на проекта, но можете също да използвате GUIако искаш.

Разбирайки по-подробно с правилното премахване на всички ненужни, можем да направим нещо друго в графичния редактор. Първо трябва да се уверите, че използвате възможно най-малко пътища/форми, както и точки по тези пътища. Можете да комбинирате и опростите всичко, което може да бъде опростено, и да премахнете всички ненужни точки. Illustrator има плъгин VectorScribe с инструмента Smart Remove Brush Tool, който ще ви помогне да премахнете точки, като същевременно запазите общата форма същата.

Предварителна оптимизация

Smart Remove Brush Tool премахва точките

След това ще увеличим изображението. В Illustrator е удобно да включите изгледа на пикселна решетка View > Pixel Preview и да проверите как са подредени пътеките. Ще отнеме малко време, за да поставите пътеките върху решетката, но усилията ще се отплатят и ще доведат до по-отчетливо изобразяване (по-добре е да обърнете внимание на това предварително).

Точки извън решетката

Подравняване на мрежата

Ако има два или повече обекта за подравняване, тогава си струва да премахнете всички ненужни припокривания. Понякога, дори ако контурите са внимателно подравнени, може да се види тънка бяла линия. За да предотвратите това, можете леко да наслагвате обекти един върху друг на местата на припокриване. Важно: В SVG z-index има определен ред, който зависи от обекта, който е в долната част, така че си струва да поставите горния обект в долната част на файла в кода.

И накрая, не на последно място, нещо, което обикновено се забравя, е да активирате gzip компресия на SVG на вашия сайт във файла .htaccess.

AddType изображение/svg+xml svg svgz AddOutputFilterByType DEFLATE "image/svg+xml" \ "text/css" \ "text/html" \ "text/javascript" ... и т.н.

Като пример за това колко ефективна е тази техника, ще взема оригиналното лого на Breaking Borders и ще го оптимизирам по следния начин: увеличете размера до това, което трябва да бъде; Ще подредя контурите; Ще изтрия максималния възможен брой точки; преместване на точки с цели пиксели; преместете всички области на припокриване и ги изпратете на SVGO.

Оригинал: 1,413b

След оптимизация: 409b

В резултат на това размерът на файла стана ~ 71% по-малък (и ~ 83% по-малък при компресиране)

PSD иконите са незаменим елемент от всеки UI дизайн, не отстъпват по важност дори на шрифтовете, но на практика рядко някой разработва свои собствени икони за всеки уеб проект. От друга страна, търсенето на икони с подходящо качество и дизайн също отнема много време, но днес решихме да ви помогнем и подготвихме селекция от безплатни комплекти икони за всички поводи.

01.Икони8

Icons8 е набор от 20 хиляди плоски икони във всякакъв формат, размер и цвят! Тук можете да намерите категории като бизнес, дрехи, храна и много други. Icons8 може да се изтегли като приложение за Mac или като ZIP архив.

02. Freepik

Ярка колекция от векторни икони от специализиран ресурс Freepik е само една от многото представени. Идеален е за бизнес и независими проекти. Освен това можете да изтеглите PSD икони във формати .AI, .EPS и .SVG.

03. Iconfinder

Проектиран в черно и бяло, този комплект съдържа комбинация от ясни функционални и емоционални векторни икони. В допълнение към стандартните икони, този комплект съдържа икони под формата на сърца и очи, които ще ви позволят да придадете на собствените си проекти емоционален цвят.

04. 195 PSD икони с плосък флаг

Отличен набор от PSD икони за уебсайтове, които могат да се използват при разработването на международен уебсайт, онлайн магазин или блог за пътуване. Комплектът включва 195 безплатни икони със заоблени ъгли.

05.Metro UI набор от икони

Ако сте фен на Windows 8, тогава трябва да разгледате този безплатен пакет с икони. Той включва 700 добре проектирани икони, които могат да се прилагат свободно към всякакъв тип проекти.

06. Модерни UI икони

Друг набор от безплатни икони, които могат да се използват при създаване на софтуерен потребителски интерфейс за Windows или за Android/iOS. Като изтеглите този комплект, ще получите 1000 ръчно рисувани плоски икони, включително дори икони за чекмеджето на приложението Windows Phone.

07. 350 пиксела перфектни икони

Невероятен набор от 350 идеално ясни икони за приложения или уебсайтове. Те обаче могат да бъдат преоразмерени без загуба на качество.

08.80 мини икони

80 перфектно ясни миниатюрни икони, които могат да бъдат изтеглени както във формат PSD, така и като емблематичен шрифт. Тези спретнати и изтънчени социални PSD икони са идеални за всеки тип проект.

09. Проста и практична векторна графика на уеб икона

Много полезни икони за използване в лични и търговски проекти.

10. Безплатни плоски икони

Набор от икони с плосък стил, включително календар, имейл, часовник, карти и др.

11.Моно икони

Комплект, който включва 108 уникални монохромни икони, направени в минималистичен стил. Всички те са налични в PNG формат с размер 32 на 32.

12. Метрични икони

Безплатна колекция в стил Metro, която можете да използвате в собствените си приложения и уеб проекти. PSD иконите за социални медии са безплатни както за лична, така и за търговска употреба. Архивът съдържа не само PSD, SVG, ESP и AI формати, но и уеб шрифтове.

13. Икони на лентата с раздели iOS 7

Елегантен пакет с икони, вдъхновен от iOS 7, който можете да използвате в собствените си приложения. Можете да изтеглите икони в следните формати: PSD, AI и ESP.

14 комплект икони за буци Pika

Икони в стил Пика, създадени от агенция Dutch Icon от Дания. Този комплект включва 42 идеално ясни икони.

15. Емблематичен

Друг набор от прости, но привличащи окото икони, идеални за минималистичен дизайн. Iconic е набор с отворен код, който може да бъде изтеглен в PNG, SVG, SWC и други формати, което ви позволява да ги адаптирате към вашите собствени дизайни.

16. 44 нюанса безплатни икони

Комплект от 44 икони. Той съдържа PSD икони за форума, които ще ви позволят лесно да ги редактирате и адаптирате към вашите собствени проекти.

17. Набор от икони за токени

Token включва 128 уникални икони, налични в 16x16px, 32x32px и 256x256px ICO формат и 128x128px PNG формат. Всяка икона се предлага в тъмна и светла версия и е пълна с .psd файл.

18. Плоски икони (PSD)

Цветни икони в плосък стил, които можете да изтеглите в PSD формат и да редактирате според собствените си нужди.

19. Безплатен набор от 32px икони

Комплект, в който ще намерите PSD икона за всякакви цели: Skype, Facebook, Twitter, RSS, чаша кафе, „харесване“ и много други.

20. 48 плоски дизайнерски икони

Ако сте почитатели на минимализма, то този комплект със сигурност ще ви хареса. Състои се от 48 безплатни икони, представящи офис задачи, социални аспекти и пътуване. Всички те са представени в AI и PNG формати и могат да бъдат мащабирани без загуба на качество.

21. Комплект икони Plex

Комплектът включва над 100 икони, включително календари, антивирусна програма, часовник, имейл, Microsoft Office приложения, социални мрежи и много други.

22. Vectory mini безплатно

Комплект от над 1000 PSD икони, проектирани от екипа на Icojam. Всички те също са в PNG формат. Те са идеални за използване при разработване на нов сайт, тъй като са безплатни за използване както в лични, така и в търговски проекти.

23. Елдорадо мини безплатно

Друга колекция от мини икони от Icojam, включваща над 1200 икони в 40 x 40 пиксела.