{"id":2526,"date":"2024-06-04T09:51:00","date_gmt":"2024-06-04T15:51:00","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=2526"},"modified":"2024-06-04T09:51:01","modified_gmt":"2024-06-04T15:51:01","slug":"deciding-on-using-a-browser-feature-via-baseline","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/deciding-on-using-a-browser-feature-via-baseline\/","title":{"rendered":"Deciding on Using a Browser Feature via Baseline"},"content":{"rendered":"\n<p>Google has this little widget called <a href=\"https:\/\/web.dev\/baseline\">Baseline<\/a>. Here&#8217;s a screenshot example: <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"131\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-03-at-4.04.40%E2%80%AFPM.png?resize=1024%2C131&#038;ssl=1\" alt=\"\" class=\"wp-image-2527\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-03-at-4.04.40%E2%80%AFPM.png?resize=1024%2C131&amp;ssl=1 1024w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-03-at-4.04.40%E2%80%AFPM.png?resize=300%2C38&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-03-at-4.04.40%E2%80%AFPM.png?resize=768%2C98&amp;ssl=1 768w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-03-at-4.04.40%E2%80%AFPM.png?w=1110&amp;ssl=1 1110w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>The idea is for it to accompany a web platform feature so you can have a sense of what browsers support it. Web developers are rightfully skeptical of new web tech, wanting to know when they can <em>actually<\/em> use a feature, so this is helpful. <\/p>\n\n\n\n<p>But there is crucial information missing here. Developers don&#8217;t decide to use a feature <em>only<\/em> based on browser support, but also:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Based on if that feature could be considered a progressive enhancement<\/li>\n\n\n\n<li>Based on if that feature has a polyfill<\/li>\n<\/ol>\n\n\n\n<!--more-->\n\n\n\n<p>Jeremy Keith brought this up and has a great point.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Not all browser features work the same way. For features that work as progressive enhancements you don\u2019t need to wait for them to be widely available.<\/p>\n<\/blockquote>\n\n\n\n<p>For example, if you&#8217;re looking at the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/View_Transitions_API\">View Transitions API<\/a>, you&#8217;ll see:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"268\" src=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-04-at-8.26.53%E2%80%AFAM.png?resize=794%2C268&#038;ssl=1\" alt=\"\" class=\"wp-image-2554\" style=\"width:449px;height:auto\" srcset=\"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-04-at-8.26.53%E2%80%AFAM.png?w=794&amp;ssl=1 794w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-04-at-8.26.53%E2%80%AFAM.png?resize=300%2C101&amp;ssl=1 300w, https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/Screenshot-2024-06-04-at-8.26.53%E2%80%AFAM.png?resize=768%2C259&amp;ssl=1 768w\" sizes=\"auto, (max-width: 794px) 100vw, 794px\" \/><\/figure>\n\n\n\n<p>And perhaps go <em>awww bummer I can&#8217;t use it! <\/em>But that would be wrong. You can use it. The API is designed such that you can write code that will use it if it&#8217;s available or not if it&#8217;s not. It&#8217;s really not a big deal.<\/p>\n\n\n\n<p>That&#8217;s a beautiful part of progressive enhancement, as Jeremy says:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>&#8230; there\u2019s a real irony in a common misunderstanding around progressive enhancement: some people seem to think it\u2019s about\u00a0<em>not<\/em>\u00a0being able to use advanced browser features. In reality it\u2019s the opposite. Progressive enhancement allows you to use advanced browser features even before they\u2019re widely supported.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Google has this little widget called Baseline. Here&#8217;s a screenshot example: The idea is for it to accompany a web platform feature so you can have a sense of what browsers support it. Web developers are rightfully skeptical of new web tech, wanting to know when they can actually use a feature, so this is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2555,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29],"tags":[73,139,101],"class_list":["post-2526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-baseline","tag-progressive-enhancement","tag-view-transitions"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2024\/06\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvam9iNjc5LTA4NS12LWwxNjd4enEwLmpwZw.webp?fit=1024%2C1024&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=2526"}],"version-history":[{"count":2,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2526\/revisions"}],"predecessor-version":[{"id":2556,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/2526\/revisions\/2556"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/2555"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=2526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=2526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=2526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}