{"id":5714,"date":"2013-08-08T11:55:38","date_gmt":"2013-08-08T18:55:38","guid":{"rendered":"http:\/\/www.yola.com\/blog\/?p=5714"},"modified":"2013-08-20T09:51:13","modified_gmt":"2013-08-20T16:51:13","slug":"style-designer-how-we-did-it","status":"publish","type":"post","link":"https:\/\/www.yola.com\/blog\/style-designer-how-we-did-it\/","title":{"rendered":"Style Designer: How We Did It"},"content":{"rendered":"<h2>Overview<\/h2>\n<p><strong>What is the Style Designer?<\/strong><br \/>\nThe <a title=\"Yola Tutorials: Tutorial: The Style Designer\" href=\"https:\/\/www.yola.com\/tutorials\/article\/Tutorial-Style-Designer\/Site_structure_and_design\" target=\"_blank\">Style Designer<\/a> is a new feature in Yola\u2019s SiteBuilder that allows you to easily configure the look of your entire site from a single panel. It allows you to set parameters on nearly every element of your site that will get applied to all pages. This saves a lot of time and frustration since you no longer have to go to every element on every page to make modifications.<\/p>\n<p><strong>How did we do it?<\/strong><br \/>\nThere are three major parts of the Style Designer:<\/p>\n<ol>\n<li><strong>The property framework.<\/strong> These are the properties that we store when you change the look of your page, for instance \u201cMain Heading Font Color\u201d or \u201cParagraph Text Font Family.\u201d With the Style Designer, we introduced over 60 individual properties that can be set by the user.<\/li>\n<li><strong>The UI\/widget framework.<\/strong> This is the how you interact with the properties. We created color selectors, sliders, dropdowns, and more so you can set the properties. It just wouldn\u2019t be very pretty or useful if we gave you a bunch of text boxes to fill in.<\/li>\n<li><strong>The stylesheet (CSS)<\/strong> that lets us apply your style to your site. Once you set all of your properties, we have to apply them to your site. We created a special stylesheet, using the <a title=\"LESS The dynamic stylesheet language\" href=\"http:\/\/lesscss.org\/\" target=\"_blank\">LESS<\/a> framework that gives us a lot of flexibility when it comes to styling your site.<\/li>\n<\/ol>\n<h2>Properties<\/h2>\n<p><img loading=\"lazy\" class=\"alignright size-full wp-image-5809\" alt=\"properties\" src=\"https:\/\/blogcontent.yola.net\/blog\/wp-content\/uploads\/2013\/08\/properties.png\" width=\"236\" height=\"433\" \/><strong><\/strong>When you <a title=\"Free Website Creator | Create Your Own Website at Yola.com\" href=\"https:\/\/www.yola.com\/free-website-creator.html?cid=501050\" target=\"_blank\">create a site with Yola<\/a>, we populate it with several properties that keep track of data specific to your site. These properties include things like site name, font selection, banner image, and much more.<\/p>\n<p>In creating the Style Designer, we added a lot of base properties to sites with which we could store all of your site\u2019s style information. Some of these properties include \u201cMain Header Font Family,\u201d \u201cParagraph Text Font Color,\u201d \u201cSecond Header Letter Spacing\u201d and many more.<\/p>\n<p>With the first release of the Style Designer, this list of properties is static. This means all sites receive the same properties, and we control those properties with the predefined widgets. As the Style Designer evolves, we will be adding additional properties, as well as style-specific properties.<\/p>\n<p>Style-specific properties will allow our style authors to create custom functionality on a per-style basis. For instance, if a particular style has a <a title=\"What is a Landing Page, and Why Does it Matter?\" href=\"https:\/\/www.yola.com\/blog\/what-is-a-landing-page-and-why-does-it-matter\/\" target=\"_blank\">landing page<\/a>, you could potentially turn the landing page on or off. If a style has the option of vertical or horizontal navigation, we will give an option to configure it accordingly.<\/p>\n<p>This will ultimately give our users nearly limitless customization options for their site.<\/p>\n<h2>Widgets and UI<\/h2>\n<p><strong>Design Decisions<\/strong><br \/>\nOnce we had our properties configured, we needed a way to present them to our users. Many discussions were had over how to present them:<\/p>\n<ul>\n<li>Should we show them vertically or horizontally?<\/li>\n<li>What should our color picker look like?<\/li>\n<li>Should we show a \u201cClose\u201d button?<\/li>\n<li>What happens when a user clicks outside of a widget?<\/li>\n<\/ul>\n<p>We also prototyped several variations before deciding on a vertical layout. The vertical design gave us a lot of flexibility in presenting our widgets and provided a good base on which to build a potentially limitless property list.<\/p>\n<p><strong>Widget Design<img loading=\"lazy\" class=\"alignright size-full wp-image-5812\" alt=\"widget_engineer\" src=\"https:\/\/www.yola.com\/blog\/wp-content\/uploads\/2013\/08\/widget_engineer.jpg\" width=\"316\" height=\"331\" \/><\/strong><br \/>\nAs we were having the high-level discussions on what we want the Style Designer to look and feel like, we needed to make some technical decisions. One of the bigger decisions was choosing a widget framework or rolling out our own.<\/p>\n<p>We did a lot of research into different widget frameworks and decided on the <a title=\"Widget Factory | jQuery UI API Documentation\" href=\"http:\/\/api.jqueryui.com\/jQuery.widget\/\" target=\"_blank\">jQuery UI Widget Factory<\/a>. <a title=\"jQuery\" href=\"http:\/\/jquery.com\/\" target=\"_blank\">jQuery<\/a> is an immensely popular JavaScript library known by nearly every JavaScript developer out there, so it will help with getting new developers onboard for further development the Style Designer. The UI Widget Factory provides a great set of base functionality that gave us everything we needed to hit the ground running.<\/p>\n<p>All of our widgets are derived from a base widget. This allows us to add and improve functionality across all widgets by only modifying a small piece of code. In practical terms, this kind of inheritance allows us to develop and enhance widgets in minutes that would normally take hours to do individually.<\/p>\n<p>Our widget system is still in its first revision, and it is already performing admirably. We have some exciting changes coming up that will take it to the next level.<\/p>\n<h2>Stylesheet<\/h2>\n<p><img loading=\"lazy\" class=\"alignright size-full wp-image-5813\" alt=\"less\" src=\"https:\/\/www.yola.com\/blog\/wp-content\/uploads\/2013\/08\/less.png\" width=\"199\" height=\"81\" \/>One of the more difficult problems to solve during the development of the Style Designer was how to be both useful and unobtrusive with our design. We had to make sure that we didn\u2019t break sites that our users have spent time building. This proved to be quite difficult, as it is nearly impossible to account for all circumstances in CSS design.<\/p>\n<p>Our solution was to craft a stylesheet that would cover the majority of our customers\u2019 sites and refine it over time. We went through many revisions of our override stylesheet and tested it against users\u2019 sites to see what broke. This was a very difficult and time-consuming process.<\/p>\n<p>Unfortunately, even after refining our stylesheet as much as we could, it could still cause problems on our users\u2019 sites, and that was unacceptable. We added the ability to disable the Style Designer so as to not affect the site at all. We now give all sites created before the release of Style Designer the ability to enable or disable the feature.<\/p>\n<h2>The Future<\/h2>\n<p>The Style Designer is an innovative project, and it is just getting started. We now have a solid framework to build on and a lot of ideas for where it is going. We\u2019re watching how our users are using it and learning how we can improve interaction and customer satisfaction.<\/p>\n<p>We\u2019re really excited to see what our users are creating with the Style Designer and some creative uses of it that we never thought of originally. Keep an eye on the Style Designer, as we are constantly updating it and adding new features.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview What is the Style Designer? The Style Designer is a new feature in Yola\u2019s SiteBuilder that allows you to easily configure the look of your entire site from a single panel. It allows you to set parameters on nearly every element of your site that will get applied to all pages. This saves a&hellip;&nbsp;<a href=\"https:\/\/www.yola.com\/blog\/style-designer-how-we-did-it\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Style Designer: How We Did It<\/span><\/a><\/p>\n","protected":false},"author":461,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false},"categories":[129,9],"tags":[233,163,359,1112],"_links":{"self":[{"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/posts\/5714"}],"collection":[{"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/users\/461"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/comments?post=5714"}],"version-history":[{"count":19,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/posts\/5714\/revisions"}],"predecessor-version":[{"id":5836,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/posts\/5714\/revisions\/5836"}],"wp:attachment":[{"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/media?parent=5714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/categories?post=5714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yola.com\/blog\/wp-json\/wp\/v2\/tags?post=5714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}