{"id":3601,"date":"2014-05-29T06:15:27","date_gmt":"2014-05-29T13:15:27","guid":{"rendered":"http:\/\/blog.mozilla.org\/ux\/?p=3601"},"modified":"2016-02-19T14:41:30","modified_gmt":"2016-02-19T06:41:30","slug":"redesigning-firefox","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/ux\/2014\/05\/redesigning-firefox\/","title":{"rendered":"(Re)Designing Firefox"},"content":{"rendered":"<p><em>Update \u2014\u00a02014\/05\/28<\/em><br \/>\nI added <a href=\"http:\/\/www.stephenhorlander.com\/pages\/firefox-29-ui-evolution-slideshow\">a slideshow<\/a> of some of the design iterations we went through from Firefox 4 to Firefox 29.<br \/>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.stephenhorlander.com\/pages\/firefox-29-ui-evolution-slideshow\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/slideshow-preview-w-play.jpg\"\/><\/a><p class=\"wp-caption-text\"><strong>Warning:<\/strong> It&#8217;s image heavy, might take a while to load on a slow connection.<\/p><\/div><\/p>\n<hr \/>\n<section id=\"australis-intro\">\n<p>So, <a href=\"http:\/\/www.mozilla.org\">we<\/a> launched <a href=\"https:\/\/blog.mozilla.org\/blog\/2014\/04\/29\/mozilla-introduces-the-most-customizable-firefox-ever-with-an-elegant-new-design\/\">a thing<\/a>. You may have noticed it. We called it Australis. Now it&#8217;s just called Firefox.<\/p>\n<p>We spent a lot of time on it.<\/p>\n<p>Dedicating yourself to a project can become an intense experience. You think about it all the time: in the morning, at dinner, when you are trying to watch a movie, in the shower, in your sleep, when you should be sleeping\u2026<\/p>\n<p>But then you set it free, because it&#8217;s finally mature enough for that. It&#8217;s exciting. But it&#8217;s also really scary. You are never sure if you made the right decisions along the way. I like to take some time in the post release glow for some reflection.<\/p>\n<\/section>\n<hr \/>\n<section id=\"australis-history\">\n<h2>History<\/h2>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-fx4-fx29-comparison.png\"\/><p class=\"wp-caption-text\">Left: Firefox 4, Right: Firefox 29<\/p><\/div>\n<p>So how did we get from <a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-firefox4.jpg\">there<\/a> to <a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-firefox29.jpg\">here<\/a>?<\/p>\n<p>We launched Firefox 4 in March 2011. It was a big change from Firefox 3. It introduced the Firefox button, revamped the add-ons manager, removed the status bar, combined the stop, go and reload buttons and included a comprehensive visual update\u2014all while still having time to prototype and discard some <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=544818\">other features<\/a> along <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=587908\">the way<\/a>.<\/p>\n<p>And yet it wasn&#8217;t perfect. It had a lot of the rough edges that projects accumulate in the process of going from being designed and built to being shipped.<\/p>\n<p>Firefox 4 was our last monolithic release before we moved to a rapid release cycle. Six week cycles seemed like the perfect timeframe to iteratively smooth out the rough edges. So I created a <a href=\"https:\/\/wiki.mozilla.org\/Firefox\/Features\/Theme_Refinement_and_Evolution_%28Australis%29\">project to do just that<\/a>.<\/p>\n<\/section>\n<hr \/>\n<section id=\"australis-philosophy\">\n<h2>Philosophy<\/h2>\n<p><\/p>\n<p>The project that I had created for iterative refinement however quickly transformed into a significant overhaul.<\/p>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-offsite.jpg\"\/><p class=\"wp-caption-text\"><em>People in the frame<\/em>: Sinchan Banerjee, <a href=\"https:\/\/twitter.com\/faaborg\">Alex Faaborg<\/a>, <a href=\"https:\/\/twitter.com\/briandils\">Brian Dils<\/a>, <a href=\"https:\/\/twitter.com\/trond\">Trond<\/a>, <a href=\"https:\/\/twitter.com\/shorlander\">Stephen Horlander<\/a> (my legs), <a href=\"https:\/\/twitter.com\/Boriss\">Jennifer Boriss<\/a>, <a href=\"https:\/\/twitter.com\/frankyan\">Frank Yan<\/a>, <a href=\"https:\/\/twitter.com\/limi\">Alex Limi<\/a><br \/><em>Taking the picture<\/em>: <a href=\"https:\/\/twitter.com\/madhava\">Madhava Enros<\/a><\/p><\/div>\n<p>At the beginning of June the UX team met up for its first post Firefox 4 team offsite. On the agenda was figuring out &#8220;What&#8217;s next?&#8221;. The entire team gathered in a room to pitch ideas and talk about problems unresolved\u2014or that had been introduced\u2014during the development of Firefox 4.<\/p>\n<p>One theme that had been floating around for a while rose to the surface\u2014 <em>Firefox is about customization, it should feel like it&#8217;s yours<\/em>.<\/p>\n<p>What would this mean for the interface we had just shipped? A lot of ideas were tossed around. Eventually one guiding principal stuck\u2014make the best core experience we can and allow users to add and change the things that matter the most to them.<\/p>\n<p>Building a fun easy to use Customization Mode\u2014along with a more flexible Firefox Menu\u2014would become the foundation of the new Firefox.<\/p>\n<\/section>\n<hr \/>\n<section id=\"australis-visual-profile\">\n<h2>Visual Profile<\/h2>\n<h3>So Curve, Such Aerodynamic<\/h3>\n<p><\/p>\n<p>The offsite also sparked a set of other ideas that would make up what became known as Australis. Primarily: unifying the disparate bookmarking elements in the main window, refining the visual design, consolidating related or redundant features and streamlining the tabstrip.<\/p>\n<p>While the redesigned customization mode would be core to the experience\u2014the redesigned tabstrip would change the entire profile of Firefox.<\/p>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/sketch-air-vents.jpg\"\/><p class=\"wp-caption-text\">&#8220;Make it look faster. No, no! It needs more air vents!&#8221;<br \/>Firefox 4 Aerodynamic Sketch \u2014 2010<\/p><\/div>\n<p>We had explored the idea of adding visual cues to Firefox to make it feel faster and smoother before. Yet some of the ideas were a little over the top.<\/p>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/sketch-offsite-tab.jpg\"\/><p class=\"wp-caption-text\">Curvy Tab Sketch \u2014 June, 2011<\/p><\/div>\n<p>This sketch from the design session\u2014inspired by a previous mockup from <a href=\"https:\/\/twitter.com\/trond\">Trond<\/a>\u2014had a curvy tab shape that immediately resonated with everyone.<\/p>\n<p>It also had one important additional design tweak\u2014only render the tab shape for the active tab. Highlighting the active tab reduces visual noise and makes it easier to keep your place in the tabstrip.<\/p>\n<img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-tab-transition.gif\"\/>\n<p>The early curve shape tried on a few looks. At first it was too angular, then it was too curvy, then it was too short, then it was too tall and then (finally) it was just right.<\/p>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-tabBackground-(full).jpg\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-tabBackground.jpg\"\/><\/a><p class=\"wp-caption-text\">Design ideas for background tabs on Windows \u2014 October 2011<\/p><\/div>\n<p>It turns out that designing background tabs without a tab shape is a lot easier if you have a stable background to work with. Windows 7 has translucent windows of variable tints and Windows 8 has flat windows of variable color. This meant we needed to create our own stable background.<\/p>\n<p>We went through several variations to ensure that the background tabs would be legible. First we tried creating a unified background block, but it seemed too heavy. We even thought about keeping background tab shapes and highlighting the active tab in some other way.<\/p>\n<p>Eventually we decided on a background &#8220;fog&#8221; that would sit behind the tabs and in front of the window. Think of it as an interface sandwich\u2014glass back, curvy-tab front with a delicious foggy center.<\/p>\n<a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-tab-width-(full).jpg\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-tab-width.jpg\"\/><\/a>\n<p>We also made sure that adding curves didn&#8217;t increase the width of the tabs taking up precious tabstrip real estate. And we removed the blank favicon placeholder for sites without favicons. A small tweak that frees up some extra room for the title.<\/p>\n<\/section>\n<hr \/>\n<section id=\"australis-menuPanel-and-customization\">\n<h2>Menu Panel and Customization<\/h2>\n<h3>Redesigning the Firefox Menu<\/h3>\n<p><\/p>\n<p>One size really doesn&#8217;t fit all with something as complex and personal as your web browser. Add-ons have always made Firefox a thoroughly customizable browser, however arranging things has never been a great experience out of the box.<\/p>\n<p>But before we could tackle the customization behavior, we had to rethink the Firefox Menu.<\/p>\n<p>The main toolbar is the primary surface for frequently used actions; while the menu is the secondary surface for stuff you only use some of the time. We wanted users to be able to move things between these surfaces so they could tailor Firefox to their needs.<\/p>\n<img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-menu-panel-original.png\"\/>\n<p>For the updated layout we started with the idea of a visual icon grid. This grid nicely mapped to the icons already found on the toolbar and would ideally make moving things back and forth feel cohesive.<\/p>\n<p>  <div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-menu-faaborg.png\"\/><p class=\"wp-caption-text\">Larger 3&#215;3 Grid with Labels\u2014by <a href=\"https:\/\/twitter.com\/faaborg\">Alex Faaborg<\/a>< [\/caption]\n  \n\n<p>The first grid we designed was wider, with smaller icons and no labels. This quickly changed to a three column grid with larger labeled icons. The updated layout served the same goal but was more clear and also less cramped.<\/p>\n<p>Not everything we currently had in the Firefox Menu would translate directly to the new layout. We had to add special conjoined widgets\u2014also known as &#8220;Wide Widgets&#8221;\u2014for Cut\/Copy\/Paste and the Page Zoom controls. We also added a footer for persistent items that can&#8217;t be customized away. We did this to prevent users from getting into a <a href=\"http:\/\/limi.net\/checkboxes-that-kill\/\">broken layout with no escape hatch<\/a>.<\/p>\n[caption align=\"alignnone\" width=\"600\"]<img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-menu-grid-vs-list.png\"\/><\/p><\/div>\n<p>We had some serious debates about whether to use a an icon grid or a traditional menu list. The visual grid has some drawbacks: it isn&#8217;t as easy to scan and doesn&#8217;t scale as well with a lot of items. But the icon grid won this round because it was more visual, more inline with what we wanted out of drag-and-drop customization and had the side benefit of being touch friendly.<\/p>\n<p>  <img decoding=\"async\" class=\"alignright\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-menu-subview.png\"\/><\/p>\n<p>Some items from the Firefox Menu had submenus that could&#8217;t be easily reduced to a single action: Developer Tools, History, Bookmarks, Help and Character Encoding. Nested submenus hanging off of a panel felt pretty awkward. We had several ideas on how to handle this: <a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-subview-expando.jpg\">inline expando-tray\u2122<\/a>, <a href=\"http:\/\/people.mozilla.org\/~shorlander\/panel-experiment-04\/panel-experiment.html\">a drawer<\/a>(interactive mockup\u2014click History) and <a href=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/ui-evolution-subview-navigation.jpg\">in-panel navigation<\/a>.<\/p>\n<p>We settled on what we call <a href=\"http:\/\/people.mozilla.org\/~shorlander\/panel-experiment-03\/panel-experiment.html\">subviews<\/a>(interactive mockup\u2014click History). Subviews are partial overlays containing lists that slide in over the menu. Click anywhere in the partially visible menu layer to get back to the main menu\u2014or close the entire menu and reopen it.<\/p>\n<p>With the new menu layout Firefox should hopefully work just fine for most people out of the box. But by using the new Customization Mode you can really tailor Firefox to your needs. If you are interested in knowing more about why what is where <a href=\"https:\/\/twitter.com\/zhenshuofang\">Zhenshuo Fang<\/a> <a href=\"https:\/\/blog.mozilla.org\/ux\/2013\/12\/whywhatiswhere\/\">wrote a great post about it<\/a>.<\/p>\n<hr \/>\n<h3>Customize All the Things!<\/h3>\n<p><\/p>\n<p>Now we needed to figure out how update Firefox&#8217;s aging customization experience. Things started off a little ambitious with the idea that we could combine toolbar customization, themes and add-ons into the same UI. This led to an early <a href=\"http:\/\/people.mozilla.org\/~shorlander\/mockups-interactive\/customization-interactive-mockup-panel\/customizationInteractiveMockup-panel.html\">interactive demo<\/a> (<em>it does some stuff, hint: tools icon &#8211;> plus sign)<\/em> to try and see if this would work.<\/p>\n<p>This demo surfaced a few issues: 1) including add-ons was going to be complicated 2) we needed a direct representation of the menu panel instead of a proxy. This led to a <a href=\"http:\/\/people.mozilla.org\/~shorlander\/files\/customization-tab-i01\/customizationTab-quickDisplay.html\">bunch of mockups<\/a> for a flatter interface sans add-ons integration. Eventually I made a <a href=\"http:\/\/people.mozilla.org\/~shorlander\/customizationMode-liveDemo-i02\/windows7-customizationMode-i02.html\">second demo<\/a> without the theme selector that is closer to what we ended up shipping. Then <a href=\"https:\/\/twitter.com\/bwinton\">Blake Winton<\/a> turned that into an <a href=\"https:\/\/people.mozilla.org\/~bwinton\/australis\/customization\/mac\/\">awesome prototype<\/a> that actually did something.<\/p>\n<div style=\"width: 610px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"http:\/\/people.mozilla.org\/~shorlander\/blog-images\/australis-design-retrospective\/image-customize-mode.png\"\/><p class=\"wp-caption-text\">Final Customization Mode<\/p><\/div>\n<p>The demos and prototypes helped us quickly get feedback from people on the idea. One of the complaints we heard was that it wasn&#8217;t obvious that you were entering a mode. We <a href=\"http:\/\/people.mozilla.org\/~shorlander\/files\/customization-tab-i02\/customizationTab-i02.html\">mocked up a lot of ideas<\/a> for various ways to give visual feedback that you were in a mode and could now rearrange your stuff. We eventually settled on a subtle blueprint pattern and <a href=\"https:\/\/twitter.com\/madhava\">Madhava<\/a> suggested we add some kind of animation with padding.<\/p>\n<\/section>\n<hr \/>\n<section id=\"australis-wrap-up\">\n<h2>Wrapping it up<\/h2>\n<p><\/p>\n<p>Thank you to everyone who dedicated so much time and effort into making this happen.<\/p>\n<p>If you want to know more about the people and process behind Firefox 29, <a href=\"https:\/\/blog.mozilla.org\/ux\/2014\/04\/the-new-face-of-firefox\/\">Madhava has a good post with an overview<\/a>.<\/p>\n<p>I think the post-release glow is over now. Time to get back to making Firefox better.<\/p>\n<\/section>\n<p><\/p>\n<p><em>Cross-posted from <a href=\"http:\/\/www.stephenhorlander.com\/2014\/05\/redesigning-firefox\/\">here<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update \u2014\u00a02014\/05\/28 I added a slideshow of some of the design iterations we went through from Firefox 4 to Firefox 29. So, we launched a thing. You may have noticed &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/ux\/2014\/05\/redesigning-firefox\/\">Read more<\/a><\/p>\n","protected":false},"author":428,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[246,9595,9600],"tags":[28092,422,30],"coauthors":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/3601"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/users\/428"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/comments?post=3601"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/3601\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/media?parent=3601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/categories?post=3601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/tags?post=3601"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/coauthors?post=3601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}