{"id":2335,"date":"2013-02-12T22:14:33","date_gmt":"2013-02-13T03:14:33","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2335"},"modified":"2023-12-20T16:25:12","modified_gmt":"2023-12-20T21:25:12","slug":"making-australis-tab-animations-faster","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2013\/02\/12\/making-australis-tab-animations-faster\/","title":{"rendered":"Making Australis Tab Animations Faster"},"content":{"rendered":"<p>The Firefox desktop team gathered in Toronto a few weeks back to hack together, and to discuss how we&#8217;re going to tackle 2013.<\/p>\n<p>I can tell you right now, it&#8217;s going to be a <em>fantastic <\/em>year for Firefox.<\/p>\n<p><a href=\"http:\/\/weblogs.mozillazine.org\/asa\/archives\/2013\/02\/firefox-work-week.html\">Asa Dotzler has a great high-level write-up<\/a> of some of the stuff we talked about, but I want to focus in on something <a href=\"http:\/\/matthew.noorenberghe.com\/blog\">Matt Noorenberghe<\/a> and I were working on: beautiful curvy tabs.<\/p>\n<div id=\"attachment_2337\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2337\" data-attachment-id=\"2337\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/02\/12\/making-australis-tab-animations-faster\/australis-i01-designspec-mainwindow-default\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default.jpg\" data-orig-size=\"1200,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Australis tabs\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Mmmmm&amp;#8230;that&amp;#8217;s the stuff.&lt;\/p&gt;\n\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default-1024x682.jpg\" class=\"size-medium wp-image-2337\" alt=\"An Australis tabs mockup\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default-300x200.jpg\" width=\"300\" height=\"200\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default-300x200.jpg 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default-1024x682.jpg 1024w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Australis-i01-DesignSpec-MainWindow-Default.jpg 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2337\" class=\"wp-caption-text\">Mmmmm&#8230;that&#8217;s the stuff.<\/p><\/div>\n<p>That&#8217;s what I&#8217;m talking about, right there.<\/p>\n<p>These curvy-tabs are already available for Windows in <a href=\"ftp:\/\/ftp.mozilla.org\/pub\/mozilla.org\/firefox\/nightly\/latest-ux\/\">the UX Nightly builds<\/a>, and I&#8217;ve been using them for a few weeks. <em>And they feel great.<\/em> It&#8217;s actually painful to go back to the boxy, noisy, square tabs in the current default theme. Using the old boxy tabs feels like I&#8217;ve gone back in time &#8211; and not in a cool way.<\/p>\n<p>Even Chrome&#8217;s 45\u00b0 angle tabs feel just a little too machine-like and impersonal in comparison, in my opinion.<\/p>\n<div id=\"attachment_2338\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2338\" data-attachment-id=\"2338\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/02\/12\/making-australis-tab-animations-faster\/screen-shot-2013-02-12-at-10-05-29-pm\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM.png\" data-orig-size=\"840,142\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Google Chrome tabs\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Chrome&amp;#8217;s 45\u00b0 tabs&lt;\/p&gt;\n\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM.png\" class=\"size-medium wp-image-2338\" alt=\"A screenshot of Google Chrome's tabstrip on OSX\" src=\"http:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM-300x50.png\" width=\"300\" height=\"50\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM-300x50.png 300w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/02\/Screen-Shot-2013-02-12-at-10.05.29-PM.png 840w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-2338\" class=\"wp-caption-text\">Chrome&#8217;s 45\u00b0 tabs<\/p><\/div>\n<p>Having a more fluid and minimal tab strip in Firefox is great, but it&#8217;s only great <em>if it performs well. <\/em>Fluid and fast is the name of the game, and that&#8217;s what Matt and I were looking at; we were trying to find ways of speeding up tab opening and closing animations.<\/p>\n<p>We&#8217;ve been working with the Performance Team on this, and we&#8217;ve been gathering some really interesting data. Probably the most interesting stuff is when we make a change that we <em>expect <\/em>to improve performance, and it doesn&#8217;t deliver. Or, even worse, it causes performance to be <em>poorer. <\/em>That&#8217;s usually a very surprising result.<\/p>\n<p>We ran into such a result late last week, when we tried changing how we put a gradient on top of the selected and hovered tabs. We had originally been using the CSS <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/CSS\/linear-gradient\">linear-gradient<\/a> function, and the Graphics Team told us that using a tiled <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/CSS\/background-image\">background-image<\/a> with some opacity (like a PNG) would improve performance.<\/p>\n<p>Well, we generated our gradient as a PNG, tossed it in, and did our measurements. Lo and behold, performance worsened somewhat, and we&#8217;re still not exactly sure why. <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=839660\">I&#8217;ve filed a bug on this<\/a>, and I&#8217;m hoping we can get it resolved soon. Switching to PNGs for gradients was supposed to be an easy win, and the Graphics Team was pretty surprised by our result.<\/p>\n<p>Matt and I tried a bunch of different ideas to speed up tab animations, and slowly but surely, the needle started to move in our favour. We&#8217;re getting close to matching the performance of the current square tabs, but we&#8217;re going to see if we can push it over the edge and bank ourselves an overall performance win.<\/p>\n<p>Fluid is good, but fluid and fast is the best. We&#8217;re getting there.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Firefox desktop team gathered in Toronto a few weeks back to hack together, and to discuss how we&#8217;re going to tackle 2013. I can tell you right now, it&#8217;s going to be a fantastic year for Firefox. Asa Dotzler has a great high-level write-up of some of the stuff we talked about, but I [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[874,861],"tags":[1041,1043,125,35,1044,1042],"class_list":["post-2335","post","type-post","status-publish","format-standard","hentry","category-firefox-mozilla-2","category-mozilla-2","tag-australis","tag-curvy","tag-firefox","tag-mozilla","tag-performance","tag-tabs"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-BF","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=2335"}],"version-history":[{"count":7,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2335\/revisions"}],"predecessor-version":[{"id":2344,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2335\/revisions\/2344"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}