{"id":37371,"date":"2016-01-07T08:22:21","date_gmt":"2016-01-07T16:22:21","guid":{"rendered":"\/blog\/?p=9965"},"modified":"2016-01-07T08:22:21","modified_gmt":"2016-01-07T16:22:21","slug":"icon-font-and-skin-module-add-on-in-exo-platform-4-3","status":"publish","type":"post","link":"https:\/\/www.exoplatform.com\/blog\/icon-font-and-skin-module-add-on-in-exo-platform-4-3\/","title":{"rendered":"Icon font and skin module add-on in eXo Platform 4.3"},"content":{"rendered":"<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/BD-2789-BlogCover-650x220.png\" class=\"broken_link\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9967\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/BD-2789-BlogCover-650x220.png\" alt=\"BD-2789-BlogCover-650x220\" width=\"650\" height=\"220\"><\/a><\/p>\n<p>In eXo Platform 4.3, we migrated from our old sprite icons to a new beautiful icon font, which is one of the key components of our <a href=\"https:\/\/www.exoplatform.com\/blog\/exo-platform-goes-responsive\/\" target=\"_blank\" rel=\"noopener\"><strong>new responsive layout<\/strong><\/a>.<br \/>\nIn this blogpost, we will explain why we used the icon font in eXo Platform and how it will help you to create your own skin for eXo easily.<\/p>\n<p><!--more--><\/p>\n<h2>Font what&#8230;?<\/h2>\n<p>Icon font! An icon font is simply a font. The difference is that instead of representing some letters or numbers, this font represents icons. To use an icon font, you just need to embed the icon web font, then select the icon from the character map and type the letter or number.<\/p>\n<h2>Why is an icon font used in Platform 4.3.x ?<\/h2>\n<p>Let\u2019s talk about some benefits of the icon font.<\/p>\n<p><strong>Performance<\/strong><br \/>\nAs a font file is very small, just one HTTP request is sent to the server. You send one single HTTP request(s) to load it instead of the multiple HTTP requests that bitmap images might require.<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/PageLoad.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9968\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/PageLoad.png\" alt=\"PageLoad\" width=\"275\" height=\"222\"><\/a><\/p>\n<p><strong>Retina support<\/strong><br \/>\nBecause the characters in an icon font are vectors, this means that they look good even in displays with a high pixel density, like retina devices.<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9969\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare.png\" alt=\"Compare\" width=\"335\" height=\"136\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare.png 335w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare-300x122.png 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare-200x81.png 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare-100x41.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/Compare-70x28.png 70w\" sizes=\"(max-width: 335px) 100vw, 335px\" \/><\/a><\/p>\n<p><strong>Full CSS styling<\/strong><br \/>\nBecause an icon font contains normal alphabetical letters, you can style the icons using CSS properties. It is possible to change the colors, font style and even some CSS3 animation properties, like adding a drop shadow or rotating the icon.<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/IconFontsColor.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9970\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/IconFontsColor.png\" alt=\"IconFontsColor\" width=\"485\" height=\"263\"><\/a><\/p>\n<p><strong>Workflow efficiency<\/strong><br \/>\nBy removing the need to generate sprites and manually position various-sized images, you will definitely save time and effort.<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9971\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar.png\" alt=\"TimeDollar\" width=\"275\" height=\"222\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar.png 275w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar-162x131.png 162w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar-100x81.png 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/TimeDollar-37x30.png 37w\" sizes=\"(max-width: 275px) 100vw, 275px\" \/><\/a><\/p>\n<h2>How did we do all this?<\/h2>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9972\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process.jpg\" alt=\"process\" width=\"763\" height=\"88\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process.jpg 763w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-300x35.jpg 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-720x83.jpg 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-500x58.jpg 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-360x42.jpg 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-200x23.jpg 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-100x12.jpg 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/process-70x8.jpg 70w\" sizes=\"(max-width: 763px) 100vw, 763px\" \/><\/a><\/p>\n<p>At eXo, we used the Illustrator tool and the icoMoon website to create our icon font.<br \/>\nFirst, we created icons in Illustrator and saved them as file with format SVG. Then we just uploaded them to <a href=\"https:\/\/icomoon.io\/app\/\" target=\"_blank\" rel=\"noopener\"><strong>iconMoon<\/strong><\/a> to render the font files<\/p>\n<h2>How did an icon font improve an eXo skin?<\/h2>\n<p>If you have read the document <a href=\"https:\/\/www.exoplatform.com\/blog\/deep-look-at-the-new-skin-module-feature-in-platform-4-2\/\" target=\"_blank\" rel=\"noopener\"><strong>Deep look at the new skin module feature in Platform 4.2<\/strong><\/a>, you will know that we describe in some detail the skin module in eXo Platform 4.2 and how this feature can help you to quickly create your own skin for eXo Platform. Exo Platform 4.3 embeds the icon font, to make the skin even better, with:<\/p>\n<ul>\n<ul>\n<li><strong>High-quality display<\/strong><\/li>\n<\/ul>\n<\/ul>\n<p>The icon font uses SVG images before the icons are rendered to a font file, so it supports retina devices very well and there are no blurry icons anymore.<\/p>\n<ul>\n<ul>\n<li><strong>Easy to change the colors<\/strong><\/li>\n<\/ul>\n<\/ul>\n<p>The skin module was a really awesome feature in eXo Platform 4.2, but there were some limitations in changing the icon color of sprites. That\u2019s why the skin module had a default color icon folder, with red, blue, green, orange, yellow&#8230; However, if you wanted to change to a special color, you had to create new sprite icon files by yourself. If you were a designer, it was very boring, and if you were not, it took you a lot of time. Now these problem have been solved with the icon font.<\/p>\n<ul>\n<ul>\n<li><strong>Flexibility in changing the size<\/strong><\/li>\n<\/ul>\n<\/ul>\n<p>Besides that the changing the color of an icon, it\u2019s now also easy to change the size of them. On some small devices, we need to increase the size of text and icons to make them easily readable. This was never easy to do with a sprite icon.<\/p>\n<ul>\n<ul>\n<li><strong>Reduce icon duplication<\/strong><\/li>\n<\/ul>\n<\/ul>\n<p>With sprite icons, we had to duplicate icons with the same shape but a different color. Now we just use the CSS properties to define the color of an icon.<\/p>\n<ul>\n<ul>\n<li><strong>Simplify the icon folder structure<\/strong><\/li>\n<\/ul>\n<\/ul>\n<p>Our <a href=\"https:\/\/github.com\/exodev\/platform-ui\/tree\/develop\/platform-ui-skin\/src\/main\/webapp\/skin\/fonts\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\"><strong>font files<\/strong><\/a> have been included in the eXo Platform UI project. This is how the icon font is structured:<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/folder-fonts.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9973\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/folder-fonts.jpg\" alt=\"folder-fonts\" width=\"426\" height=\"188\"><\/a><\/p>\n<p>Thanks to the icon font, it is now possible to change everything simply by modifying a few variables:<\/p>\n<p>@colorIconDefault: #bf9b2e; \/\/ DEFAULT ICON COLOR<br \/>\n@colorIconPrimary: @primaryColor;\/\/ HOVER STATUS ICON COLOR<br \/>\n@sizeIconDefault: 14px;\/\/ DEFAULT SIZE<\/p>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/IconFontSample.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9974\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/IconFontSample.png\" alt=\"IconFontSample\" width=\"485\" height=\"263\"><\/a><\/p>\n<h2><strong>How to migrate an eXo skin 4.2?<\/strong><\/h2>\n<p>Have you already created a personal skin in eXo Platform 4.2 through the skin module add-on? Great! The following lines explain how to migrate it to make it compatible with eXo Platform 4.3:<\/p>\n<ul>\n<li><strong>Back up the variable.less file of your Skin Module PLF 4.2 add-on.<\/strong><\/li>\n<li><strong>Create a new Skin Module PLF 4.3 add-on <a href=\"https:\/\/docs-old.exoplatform.org\/\" target=\"_blank\" rel=\"noopener\"><strong>following the official documentation<\/strong><\/a>.<\/strong><\/li>\n<li><strong>Manually select the modified values of the variable.less backup to the variable.less of your new Skin Module PLF 4.3 add-on.<\/strong><\/li>\n<li><strong>Compile and install your Skin Module PLF 4.3 add-on.<\/strong><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-9975\" src=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue.jpg\" alt=\"exo christmas blue\" width=\"1346\" height=\"724\" srcset=\"https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue.jpg 1346w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-300x161.jpg 300w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-1024x551.jpg 1024w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-768x413.jpg 768w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-1250x672.jpg 1250w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-720x387.jpg 720w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-500x269.jpg 500w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-360x194.jpg 360w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-200x108.jpg 200w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-100x54.jpg 100w, https:\/\/www.exoplatform.com\/blog\/wp-content\/uploads\/2016\/01\/exo-christmas-blue-56x30.jpg 56w\" sizes=\"(max-width: 1346px) 100vw, 1346px\" \/><\/a><\/p>\n<h2><strong>That\u2019s it!<\/strong><\/h2>\n<p>After discovering the advantages of the icon font, we are sure you would like to create your own skin and apply your personal color to the eXo icons. Please <a href=\"http:\/\/sourceforge.net\/projects\/exo\/files\/latest\/download\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\"><strong>download and experience<\/strong><\/a> the change with eXo Platform 4.3-RC1.<\/p>\n<p>Do you have any questions? Share them with us <a href=\"https:\/\/community.exoplatform.com\/\" target=\"_blank\" rel=\"noopener\"><strong>here<\/strong><\/a>!.<\/p>\n","protected":false},"excerpt":{"rendered":"In eXo Platform 4.3, we migrated from our old sprite icons to a new beautiful icon font, which is one of the key components of our new responsive layout. In this blogpost, we will explain why we used the icon font in eXo Platform and how it will help you to create your own skin [&hellip;]","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[819],"tags":[749,735,922,711,924],"lang":"en","translations":{"en":37371},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37371"}],"collection":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/comments?post=37371"}],"version-history":[{"count":0,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37371\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media?parent=37371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/categories?post=37371"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/tags?post=37371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}