{"id":4058,"date":"2018-06-18T13:54:06","date_gmt":"2018-06-18T17:54:06","guid":{"rendered":"https:\/\/blog.mozilla.org\/ux\/?p=4058"},"modified":"2019-02-01T15:25:52","modified_gmt":"2019-02-01T20:25:52","slug":"firefox-has-a-motion-team-yes-we-do","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/ux\/2018\/06\/firefox-has-a-motion-team-yes-we-do\/","title":{"rendered":"Firefox has a motion team?! Yes we do!"},"content":{"rendered":"<p id=\"0613\" class=\"graf graf--p graf-after--h3\">Motion may sometimes feel like an afterthought or worse yet \u201cpolish\u201d. For the release of Firefox Quantum (one of our most significant releases to date), we wanted to ensure that motion was not a second class citizen and that it would play an important role in how users perceived performance in the browser.<\/p>\n<p id=\"1e3a\" class=\"graf graf--p graf-after--p\">We (Amy &amp; Eric) make up the UX side of the \u201cmotion team\u201d for Firefox. We say this in air quotes because the motion team was essentially formed based on our shared belief that motion design is important in Firefox. With a major release planned, we thought this would be the perfect opportunity to have a team working on motion.<\/p>\n<h4 id=\"55c3\" class=\"graf graf--h4 graf-after--p\"><strong class=\"markup--strong markup--h4-strong\">Step 1: Make a\u00a0Sticker<\/strong><\/h4>\n<p id=\"c14f\" class=\"graf graf--p graf-after--h4\">We made a sticker and started calling ourselves the <em class=\"markup--em markup--p-em\">motion team<\/em>.<\/p>\n<figure id=\"e464\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\">\n<div id=\"attachment_4059\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker.png\"><img aria-describedby=\"caption-attachment-4059\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-4059\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker-600x257.png\" alt=\"\" width=\"600\" height=\"257\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker-600x257.png 600w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker-300x129.png 300w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker-768x329.png 768w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker.png 1400w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motion-sticker-1000x429.png 1000w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-4059\" class=\"wp-caption-text\">We created a sticker to formalize the \u201cmotion team\u201d.<\/p><\/div>\n<\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*z5xaHJp4YoPpFmYVZzC1xA.png\" data-width=\"1400\" data-height=\"600\" data-is-featured=\"true\" data-action=\"zoom\" data-action-value=\"1*z5xaHJp4YoPpFmYVZzC1xA.png\" data-scroll=\"native\"><\/div>\n<\/div>\n<\/figure>\n<h4 id=\"4bea\" class=\"graf graf--h4 graf-after--figure\">Step 2: Audit Existing\u00a0Motions<\/h4>\n<p id=\"808d\" class=\"graf graf--p graf-after--h4\">The next plan of action was to audit the existing motions in Firefox across mobile and desktop. We documented them by taking screen recordings and highlighted the areas that needed the most attention.<\/p>\n<figure id=\"9efb\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*GQ8ApaqbEi6CJHyPMLAA_w.png\" data-width=\"1400\" data-height=\"727\" data-action=\"zoom\" data-action-value=\"1*GQ8ApaqbEi6CJHyPMLAA_w.png\" data-scroll=\"native\">\n<div id=\"attachment_4060\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit.png\"><img aria-describedby=\"caption-attachment-4060\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-4060\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit-600x312.png\" alt=\"\" width=\"600\" height=\"312\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit-600x312.png 600w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit-300x156.png 300w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit-768x399.png 768w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit.png 1400w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/audit-1000x519.png 1000w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-4060\" class=\"wp-caption-text\">An audit of current animations was performed and documented for Firefox on Android, iOS, and desktop to explore areas of opportunity for motion.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"9efb\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<p id=\"815f\" class=\"graf graf--p graf-after--figure\">From this exercise it was clear that consistency and perceived performance were high on our list of improvements.<\/p>\n<p id=\"f47c\" class=\"graf graf--p graf-after--p\">The next step was to gather inspiration for a mood board. From there, we formed a story that would become the foundation of our motion design language.<\/p>\n<p id=\"a8ce\" class=\"graf graf--p graf-after--p\">During this process, we asked ourselves:<\/p>\n<p id=\"edfe\" class=\"graf graf--p graf-after--p\"><em class=\"markup--em markup--p-em\">How can we make the browser feel smoother, faster and more responsive?.<\/em><\/p>\n<figure id=\"e28d\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*G9DOC-oHtSpd4AgqJ3Etwg.png\" data-width=\"1380\" data-height=\"710\" data-action=\"zoom\" data-action-value=\"1*G9DOC-oHtSpd4AgqJ3Etwg.png\" data-scroll=\"native\">\n<div id=\"attachment_4061\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration.png\"><img aria-describedby=\"caption-attachment-4061\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-4061\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration-600x309.png\" alt=\"\" width=\"600\" height=\"309\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration-600x309.png 600w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration-300x154.png 300w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration-768x395.png 768w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration-1000x514.png 1000w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/inspiration.png 1380w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-4061\" class=\"wp-caption-text\">Inspiration was collected and documented in a mood board to help guide the motion story.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"e28d\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<h4 id=\"e1d2\" class=\"graf graf--h4 graf-after--figure\">Step 3: Defining a Motion\u00a0Story<\/h4>\n<p id=\"ada6\" class=\"graf graf--p graf-after--h4\">With <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/design.firefox.com\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/design.firefox.com\/\">Photon<\/a> (Firefox\u2019s new design language) stemming from <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/blog.mozilla.org\/blog\/2017\/11\/14\/introducing-firefox-quantum\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/blog.mozilla.org\/blog\/2017\/11\/14\/introducing-firefox-quantum\/\">Quantum<\/a> we knew there was going to be an emphasis on speed in our story. Before starting work on any new motions, we created a motion curve to reflect this. The aim was to have a curve that would be perceived as fast yet still felt smooth and natural when applied to tabs and menu items. Motion should also be informative (i.e showing where your bookmarked item is saved, when your tab is done loading) and lastly, have personality. We defined our story based on these considerations.<\/p>\n<figure id=\"c626\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*LW-RbOl0MWg11xbvb1OT4w.gif\" data-width=\"1400\" data-height=\"546\" data-action=\"zoom\" data-action-value=\"1*LW-RbOl0MWg11xbvb1OT4w.gif\" data-scroll=\"native\">\n<div id=\"attachment_4062\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motioncurve.gif\"><img aria-describedby=\"caption-attachment-4062\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-4062 size-full\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/motioncurve.gif\" alt=\"\" width=\"1400\" height=\"546\" \/><\/a><p id=\"caption-attachment-4062\" class=\"wp-caption-text\">Motion curve that was applied to menu and tab animations.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"c626\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<p id=\"e509\" class=\"graf graf--p graf-after--figure\">The motion story was presented to the rest of the UX team during a work week held in Toronto (the UX team is distributed across several countries so work weeks are planned for in-person collaboration).<\/p>\n<p id=\"3fa1\" class=\"graf graf--p graf-after--p\">This was our mission statement:<\/p>\n<blockquote id=\"39ab\" class=\"graf graf--blockquote graf-after--p\"><p>The motion design language in Firefox Quantum is defined by three principles: Quick, Informative and Whimsical. Following these guiding principles, we aim to achieve a cohesive, consistent, and enjoyable experience within the family of Firefox browsers.<\/p><\/blockquote>\n<p id=\"49f2\" class=\"graf graf--p graf-after--blockquote\">Next we presented some preliminary concepts to support these principles:<\/p>\n<h4 id=\"ccfc\" class=\"graf graf--h4 graf-after--p\">Quick<\/h4>\n<p id=\"242a\" class=\"graf graf--p graf-after--h4\">Animations should be fast and nimble and never keep the user waiting longer than they need to. The aim is to prioritize user perceived performance over technical benchmarks.<\/p>\n<figure id=\"b6af\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*aKHJw2StDEbGEtg6DaJBfw.gif\" data-width=\"1400\" data-height=\"600\" data-action=\"zoom\" data-action-value=\"1*aKHJw2StDEbGEtg6DaJBfw.gif\" data-scroll=\"native\">\n<div id=\"attachment_4063\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/panel-and-tab.gif\"><img aria-describedby=\"caption-attachment-4063\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-4063 size-full\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/panel-and-tab.gif\" alt=\"\" width=\"1400\" height=\"600\" \/><\/a><p id=\"caption-attachment-4063\" class=\"wp-caption-text\">Panel and new tab animation.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"b6af\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<h4 id=\"2e77\" class=\"graf graf--h4 graf-after--figure\">Informative<\/h4>\n<p id=\"583c\" class=\"graf graf--p graf-after--h4\">Motion should help ease the user through the experience. It should aid the flow of actions, giving clear guidance for user orientation: spatial or temporal.<\/p>\n<figure id=\"f384\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*X8xqcUCfUw-NT8WSN1CWFg.gif\" data-width=\"1400\" data-height=\"350\" data-action=\"zoom\" data-action-value=\"1*X8xqcUCfUw-NT8WSN1CWFg.gif\" data-scroll=\"native\">\n<div id=\"attachment_4064\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/icon-animation.gif\"><img aria-describedby=\"caption-attachment-4064\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-4064 size-full\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/icon-animation.gif\" alt=\"\" width=\"1400\" height=\"350\" \/><\/a><p id=\"caption-attachment-4064\" class=\"wp-caption-text\">Left: Download icon animation indicates download progress. Right: Star icon animation shows the action of saving a bookmark and the location of the bookmark after it\u2019s saved (the library).<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"f384\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<h4 id=\"ad79\" class=\"graf graf--h4 graf-after--figure\">Whimsical<\/h4>\n<p id=\"90c3\" class=\"graf graf--p graf-after--h4\">Even though most people would not associate whimsy with a browser, we wanted to incorporate some playful elements as part of Firefox\u2019s personality (and maybe ourselves).<\/p>\n<figure id=\"b3c4\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*KSc-7vSQJ4fzHgfwDZsmgw.gif\" data-width=\"1400\" data-height=\"350\" data-action=\"zoom\" data-action-value=\"1*KSc-7vSQJ4fzHgfwDZsmgw.gif\" data-scroll=\"native\">\n<div id=\"attachment_4065\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/whimsy.gif\"><img aria-describedby=\"caption-attachment-4065\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-4065 size-full\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/whimsy.gif\" alt=\"\" width=\"1400\" height=\"350\" \/><\/a><p id=\"caption-attachment-4065\" class=\"wp-caption-text\">Icon animations with some whimsy.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"b3c4\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<p id=\"c2f8\" class=\"graf graf--p graf-after--figure\">After getting feedback and buy-in from the rest of the UX team on the motion story, we were able to start working with them in applying motion to their designs.<\/p>\n<h4 id=\"ae99\" class=\"graf graf--h4 graf-after--p\">Step 4: Design\u00a0Motions<\/h4>\n<p id=\"5519\" class=\"graf graf--p graf-after--h4\">The Photon project was divided across various functional teams all focusing on different design aspects of Firefox. With motion overlapping many of these teams we started opening communication channels with each that would directly impact our work. We worked especially close with the visual\/interaction team since it didn\u2019t make sense to start motion design on components that were not yet close to complete. We had regular check-ins to set a rough ordering\/priority of when we would schedule motion work of specific components.<\/p>\n<p id=\"aea6\" class=\"graf graf--p graf-after--p\">Once we had near final visuals\/interactions, it was time to get into After Effects and start animating!<\/p>\n<figure id=\"e794\" class=\"graf graf--figure graf--iframe graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\">\n<p><iframe loading=\"lazy\" src=\"https:\/\/player.vimeo.com\/video\/273956845\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><br \/>\n<a href=\"https:\/\/vimeo.com\/273956845\">Firefox Quantum \u2013 Motion Design<\/a> from <a href=\"https:\/\/vimeo.com\/user26601752\">Amy<\/a> on <a href=\"https:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"e794\" class=\"graf graf--figure graf--iframe graf-after--p\"><figcaption class=\"imageCaption\">\n<p class=\"wp-caption-text\">Some examples of motions we created for Firefox Quantum.<\/p>\n<\/figcaption><\/figure>\n<h4 id=\"485f\" class=\"graf graf--h4 graf-after--figure\"><strong class=\"markup--strong markup--h4-strong\">Step 5: Implementation<\/strong><\/h4>\n<p id=\"831f\" class=\"graf graf--p graf-after--h4\">Implementing animations, especially detailed ones such as bookmarking and downloading, was an interesting challenge for the development team (<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/msuja.ws\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/msuja.ws\/\">Jared Wein<\/a>, <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/twitter.com\/samfosteriam\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/twitter.com\/samfosteriam\">Sam Foster<\/a>, and Jim Porter).<\/p>\n<p id=\"cd7c\" class=\"graf graf--p graf-after--p\">Rather than have a developer try to reproduce our motion designs through code, which can become tedious, we wanted to be able to export the motion directly. This ensured that the nuances of the motion was not lost during implementation.<\/p>\n<p id=\"a0ed\" class=\"graf graf--p graf-after--p\">To have the animations performant in the browser, the file sizes also needed to be small. This was done by using SVG assets and CSS animations.<\/p>\n<p id=\"b584\" class=\"graf graf--p graf-after--p\">We explored existing tools but did not find anything suitable that would be compatible with the browser. We created our own process and designed the animations in After Effects and used the <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/aescripts.com\/bodymovin\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/aescripts.com\/bodymovin\/\">Bodymovin<\/a> extension to export them as JSON files.<\/p>\n<p id=\"e658\" class=\"graf graf--p graf-after--p\">One developer in particular, <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/twitter.com\/markusstange\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/twitter.com\/markusstange\">Markus Stange<\/a> made this method possible by writing a <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/sfoster.github.io\/svgspritesheet\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/sfoster.github.io\/svgspritesheet\/\">tool<\/a>, to convert JSON files into SVG sprite sheets. Sam further refined the tool and it became an essential asset in translating timeline animations from After Effects into CSS animations.<\/p>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*GnCREJcti6aJjwFbBsPjWQ.gif\" data-width=\"1400\" data-height=\"300\" data-action=\"zoom\" data-action-value=\"1*GnCREJcti6aJjwFbBsPjWQ.gif\" data-scroll=\"native\">\n<div id=\"attachment_4066\" style=\"width: 1410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/reload.gif\"><img aria-describedby=\"caption-attachment-4066\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-4066 size-full\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/reload.gif\" alt=\"\" width=\"1400\" height=\"300\" \/><\/a><p id=\"caption-attachment-4066\" class=\"wp-caption-text\">Page reload icon animation using a SVG sprite sheet.<\/p><\/div>\n<\/div>\n<div data-image-id=\"1*GnCREJcti6aJjwFbBsPjWQ.gif\" data-width=\"1400\" data-height=\"300\" data-action=\"zoom\" data-action-value=\"1*GnCREJcti6aJjwFbBsPjWQ.gif\" data-scroll=\"native\"><\/div>\n<p id=\"721e\" class=\"graf graf--p graf-after--figure\">After rounds of asset production, refinements, reviews, and testing, the big day came with the launch of Firefox Quantum!<\/p>\n<figure id=\"b1d6\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*j7wWsKI18ktcaNnSgt0Vmw.jpeg\" data-width=\"2998\" data-height=\"2331\" data-action=\"zoom\" data-action-value=\"1*j7wWsKI18ktcaNnSgt0Vmw.jpeg\" data-scroll=\"native\">\n<div id=\"attachment_4067\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake.jpeg\"><img aria-describedby=\"caption-attachment-4067\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-4067\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake-600x467.jpeg\" alt=\"\" width=\"600\" height=\"467\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake-600x467.jpeg 600w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake-300x233.jpeg 300w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake-768x597.jpeg 768w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake-1000x778.jpeg 1000w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/cake.jpeg 1600w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><p id=\"caption-attachment-4067\" class=\"wp-caption-text\">A large part of the Firefox Quantum team was located in Toronto, Ontario.<\/p><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<figure id=\"b1d6\" class=\"graf graf--figure graf-after--p\"><\/figure>\n<p id=\"962a\" class=\"graf graf--p graf-after--figure\">We were a bit anxious awaiting feedback since this was the most significant update since Firefox 1.0 first launched in 2004.<\/p>\n<p id=\"fbe8\" class=\"graf graf--p graf-after--p\">Thankfully the release was met with positive <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.wired.com\/story\/firefox-quantum-the-browser-built-for-2017\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.wired.com\/story\/firefox-quantum-the-browser-built-for-2017\/\">reviews<\/a>. We were happy that even some of our motions got a kudos.<\/p>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*ULvOLn-rmRUlIIH8Zxm-0Q.png\" data-width=\"1304\" data-height=\"1291\" data-action=\"zoom\" data-action-value=\"1*ULvOLn-rmRUlIIH8Zxm-0Q.png\" data-scroll=\"native\"><a href=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-4068\" src=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-600x594.png\" alt=\"\" width=\"600\" height=\"594\" srcset=\"https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-600x594.png 600w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-150x150.png 150w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-300x297.png 300w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-768x760.png 768w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet-1000x990.png 1000w, https:\/\/blog.mozilla.org\/ux\/files\/2019\/02\/tweet.png 1304w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/div>\n<p id=\"d521\" class=\"graf graf--p graf-after--figure\">So that wraps up the story of how the \u201cmotion team\u201d for Firefox came to be. But that\u2019s not all we do here at Mozilla. These days you\u2019ll also find Eric busy working away at UX for <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/wiki.mozilla.org\/Firefox\/Features\/Web_Payments\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/wiki.mozilla.org\/Firefox\/Features\/Web_Payments\">Web Payments<\/a>, Privacy and Search, while Amy casts her Dark theme magic and spins out the next UX iteration of <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/wiki.mozilla.org\/Firefox\/Activity_Stream\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/wiki.mozilla.org\/Firefox\/Activity_Stream\">Activity Stream<\/a> and Onboarding.<\/p>\n<p id=\"9c28\" class=\"graf graf--p graf-after--p graf--trailing\">If you haven\u2019t given <a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/\">Firefox Quantum<\/a> a try, take it for a spin and let us know what you think.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Motion may sometimes feel like an afterthought or worse yet \u201cpolish\u201d. For the release of Firefox Quantum (one of our most significant releases to date), we wanted to ensure that &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/ux\/2018\/06\/firefox-has-a-motion-team-yes-we-do\/\">Read more<\/a><\/p>\n","protected":false},"author":1174,"featured_media":4059,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[88396,246,52904],"tags":[],"coauthors":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/4058"}],"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\/1174"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/comments?post=4058"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/posts\/4058\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/media\/4059"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/media?parent=4058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/categories?post=4058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/tags?post=4058"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mozilla.org\/ux\/wp-json\/wp\/v2\/coauthors?post=4058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}