{"id":272173,"date":"2025-03-09T05:32:12","date_gmt":"2025-03-09T05:32:12","guid":{"rendered":"https:\/\/michigandigitalnews.com\/index.php\/2025\/03\/09\/design-with-widget-canonical-layouts\/"},"modified":"2025-06-25T17:09:11","modified_gmt":"2025-06-25T17:09:11","slug":"design-with-widget-canonical-layouts","status":"publish","type":"post","link":"https:\/\/michigandigitalnews.com\/index.php\/2025\/03\/09\/design-with-widget-canonical-layouts\/","title":{"rendered":"Design with Widget Canonical Layouts"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div>\n<meta content=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiH_mnRGKAFuMgW_5hFFweQnpabQQSEVHlnTdQtDLouhoeJ0YF87-IJTVIg00TGC9dGpq36pUteNZBuh8idyXIkU16-1lxNmCncfoy64XO3uNiaKxu8oXh3Ne-tNIWiiW5jNif6E-L5yFV16bWM-NMl4T_N-qMTe5bYzjGWb5zAUVbZ6xjV5Wr32elJj1U\/s1600\/Android-Widgets-Spotlight-Week-Overview.png\" name=\"twitter:image\"\/><br \/>\n<img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiH_mnRGKAFuMgW_5hFFweQnpabQQSEVHlnTdQtDLouhoeJ0YF87-IJTVIg00TGC9dGpq36pUteNZBuh8idyXIkU16-1lxNmCncfoy64XO3uNiaKxu8oXh3Ne-tNIWiiW5jNif6E-L5yFV16bWM-NMl4T_N-qMTe5bYzjGWb5zAUVbZ6xjV5Wr32elJj1U\/s1600\/Android-Widgets-Spotlight-Week-Overview.png\" style=\"display: none;\"\/><\/p>\n<p><em>Posted by Summers Pitman \u2013 Developer Relations Engineer, and Ivy Knight \u2013 Senior Design Advocate<\/em><\/p>\n<p><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgHcT1IGB5MJdGipEzF3jwxF0fwpQJ5POe2Ff-FItWGX5xBurAW6BOa95Hu9rEEnpLzdQTY_p_WzktmtXeN3rdZF9_TfrSY5mphaZgLsWmHJZ7LyJCJq6NEUw26HX1hJob8rFxsN7rDuBRn2pY_KNHlrP3glBYNTEbbVFMRWyeqXpCcHYaHx7wInBwycNM\/s1600\/Widgets-Spotlight-Week-Banner.png\"><img decoding=\"async\" border=\"0\" data-original-height=\"800\" data-original-width=\"100%\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgHcT1IGB5MJdGipEzF3jwxF0fwpQJ5POe2Ff-FItWGX5xBurAW6BOa95Hu9rEEnpLzdQTY_p_WzktmtXeN3rdZF9_TfrSY5mphaZgLsWmHJZ7LyJCJq6NEUw26HX1hJob8rFxsN7rDuBRn2pY_KNHlrP3glBYNTEbbVFMRWyeqXpCcHYaHx7wInBwycNM\/s1600\/Widgets-Spotlight-Week-Banner.png\"\/><\/a><\/p>\n<p>Widgets can bring more productive, delightful and customized experiences to users&#8217; home screens, but they can be tricky to design to ensure a high quality focused experience. In this blog post, we\u2019ll cover how easy <a href=\"https:\/\/developer.android.com\/design\/ui\/mobile\/guides\/widgets\/layouts\" target=\"_blank\" rel=\"noopener\">Widget Canonical Layouts<\/a> can make this process.<\/p>\n<p>But, what is a Canonical Layout? It is a common layout pattern that works for various screen sizes. You can use them as a starting point, ready-to-use compositions that help layouts adapt for common use cases and screen sizes. Widgets also provide <a href=\"https:\/\/developer.android.com\/design\/ui\/mobile\/guides\/widgets\/layouts\" target=\"_blank\" rel=\"noopener\">Canonical Layouts<\/a> to get started crafting higher quality widgets.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img decoding=\"async\" alt=\"Widget Canonical Layouts\" border=\"0\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjWJ9a0C9pbn2x0tepbYWUp4wr6mnCH7aLEGtx9UZxQNrz_Jc4anOi8EzNzmLtm5XLVJJmpWm9F_GNx4dviQmZmk0jROR-lvTpV0MAYw_BDsaqboTaIbi8SWqWtHAZ4OGAOMcFC5ufGSqhJ-CdmHSa1X_gZrekK8XVUM-l_3y4mPjlKLxdPafpTcRNVDgU\/s1600\/image8.png\" width=\"100%\"\/><\/div>\n<p><\/image><\/p>\n<p>The Widget Canonical Layouts Figma makes previewing your widget content in multiple breakpoints and layout types. Join me in our <a href=\"https:\/\/goo.gle\/widget-canonical\" target=\"_blank\" rel=\"noopener\">Figma design resource<\/a> to explore how they can simplify designing a widget for one of our sample apps, JetNews.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img fetchpriority=\"high\" decoding=\"async\" alt=\"Three side-by-side examples of Widget Canonical Layouts in Figma being used to design a widget for JetNews\" border=\"0\" height=\"360\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEh_N76s3YYMqmFl2gBuM34_77t7xC9NnBB2LAO4y1UWYT-H7Ymf3KlkQ80lNThn4lTjxuBJJUZjHFhxqHbWM7U3S4e6h4ODUiD7ZysOaDtD4het_6g3WD4YLGk8qj95qjBhBjkY0yovMkLBVguhgQqPa-g6yLZhap9iBQMpqApzW-Ph4jvghpCivnxBH88\/w640-h360\/image6.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<h3> 1. Content to adapt<\/h3>\n<p><a href=\"https:\/\/github.com\/android\/compose-samples\/tree\/main\/JetNews\" target=\"_blank\" rel=\"noopener\">Jetnews<\/a> is a sample news reading app, built with Jetpack Compose. With the experience in mind, the primary user journey is reading articles.<\/p>\n<ul>\n<ul>\n<li>A widget should be glanceable, so displaying a full article would not be a good use case.<\/li>\n<li>Since they are timely news articles, surfacing newer content could be more productive for users.<\/li>\n<li>We\u2019ll want to give a condensed version of each article similar to the app home feed.<\/li>\n<li>The addition of a bookmark action would allow the user to save and read later in the full app experience.<\/li>\n<\/ul>\n<\/ul>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjrM-PwAeKCNI1MheCmQvahKeVkmq9-ex2JYKzZAaolM6GIRgKJvh-tAvkhcovqOOCwyXYibqeaLwRvueEjAz53oK7vrFKqRA2IU_zCG-CJtUDIh5x1ghBT7rRtGmw_hNF0effy6Vyw7oC_8M-la8r5sEzzUz__3vpy4D5wIkqnkZr7YBfmO-UykWalJ9I\/w640-h362\/image11.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<h3> 2. Choosing a Canonical Layout<\/h3>\n<p>With our content and user journey established, we\u2019ll take a glance at which canonical layouts would make sense.<\/p>\n<p>We want to show at least a few new articles with a headline, truncated description, and possible thumbnail. Which brings us to the Image + Text Grid layout and maybe the list layout.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEimMpKXlFJKo6FTDvH4fo8CXpAojgnjsMPrxuicHpf4cZUMQl1Kg6SE1R-s0crHM4-ZX5CjrAvtdRfhH2N_NXdtJgZqkiMQggXihvyavgkmTH-KKhFTe-GMXIbGurjRu941g5vXC515Ng9hgYmuvyk_9immyn4BN0LiwlJQWsfwA8q28LYfep1Js8D7n48\/s1600\/image10.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<p>Within our new Figma Widget Canonical Layout preview, we can add in some mock content to check out how these layouts will look in various sizes.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhDPJ3bP3bTI0zpa3oW-pxGbARKayPfpINe_fNbzSTttiAhfMgrpkpht_w9wqgiHTrMf2hgbvkU5oPhhNYYJgOUMUCUVQGLY-S3cEt_fMen6laLQDZlAr_bDXbVzj_QUvh-xyJt4JfG30M7K830Dr1Xzf3n1TNdc2nWdkq3XfjuHA3zUpZl6oNl9rNZzeU\/s1600\/image4.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Moving example of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjNU3Ce2AMiJn87WV2NBXUrO-NL9wItShBrlPwfmWj6LGqhdDRoMp9CAFEk193MtDi1G2DA_zcDRpbIxfedmyo01yG0sU_ahWtNQnQaUWW7_vFdt6OJssbO6Q9Et1Hl87JHTlanV86vsKiO3jz8BOxYcF-kh2ZdEdI1XGu8RfYmoU4R-Thbt8i9UZnDY7Y\/s1600\/image9.gif\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<h3> 3. Adapting to breakpoint sizes<\/h3>\n<p>Now that we\u2019ve previewed our content in both the grid and list layouts, we don\u2019t have to choose between just one! <\/p>\n<p>The grid layout better displays our content for larger sizes, where we have some more room to take advantage of multiple columns and a larger thumbnail image. While the list is working nicely for smaller sizes, giving a one column layout with a smaller thumbnail. <\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiJ26zFTgsrh4yzd844QLt_0HN7RqC8_7yZuUBN4fuufYtiKWW15Ol7sL8O9OQMS82GTKYtAYb_Llai0LKhpiYNu8k74jhhEwgz5-RdFAAkMFLMTQgUd0-LWFY2c5tG9yvHY95qc48rtYi1JdnAu8r1-BIiJmlB0rIFi2RO9Mqi5vd6GAYM5RafVGG-wuw\/s1600\/image1.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<p>But we can adapt even further to allow the user to have more resizing flexibility and anticipate different OEM grid sizing. For JetNews, we decided on an additional extra small layout to accommodate a smaller grid size and vertical height while still using the List layout. For this size I decided to remove the thumbnail all together to give the title and action space.<\/p>\n<p>Consider these in-between design tweaks as needed (between any of the breakpoints), that can be applied as general rules in your widget designs.<\/p>\n<p>Here are a few guidelines to borrow:<\/p>\n<ul>\n<ul>\n<li>Establish a content hierarchy on what to hide as the widget shrinks.<\/li>\n<li>Use a type scale so the type scales consistently.<\/li>\n<li>Create some parameters for image scaling with aspect ratios and cropping techniques.<\/li>\n<li>Use component presentation changes. For example, the title bar\u2019s FAB can be reduced to a standard icon.<\/li>\n<\/ul>\n<\/ul>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgDdzSaPfVZlkolrIj32YMpw-7-KT_vJzCRapXVJBKim8PeeJ2Lu_wZOZJPpHyAXVbC2ESNNxMgXcSwrp_kBn8BSRrbLnF-LRx5fC8utgMZqyWBu2s_yOzR6NjEt3ymABU2ePBtGtixCD-a_zuVThiVU-bi7jNu_HsGfPvkRFxG6qbUO_5FoUnYfE2ANRM\/s1600\/image5.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<p>Last, I\u2019ll swap the app icon, round up all the breakpoint sizes, and provide an option with brand colors.<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Examples of using Widget Canonical Layouts in Figma to design a widget for JetNews\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjRSjdmW5wabnr58awzECj7hyphenhyphen2jin1ANBVS_08A0eiHQX5uOeubZ1IyWmMC25bTiL5l4T6B0-GNrNYd75ZLFh8IWHlSiwLUbh5JnOK9pRamE-wV4asx10rqp7jVEO_8-gAFqQm3lQodNW6fBfq1IzPMhlZsKqSgVYetssfkhmlpSpB1B12n31MV0vt081U\/s1600\/image3.png\" width=\"640\"\/><\/div>\n<p><\/image><\/p>\n<p>These are ready to send over to dev! Tune in for the code along to check out how to implement the final widget.<\/p>\n<h3>Go try it out and explore more widgets<\/h3>\n<p>You can find the <a href=\"https:\/\/goo.gle\/widget-canonical\" target=\"_blank\" rel=\"noopener\">Widget Canonical Layouts<\/a> at our new Figma Community Page: <a href=\"http:\/\/figma.com\/@androiddesign\" target=\"_blank\" rel=\"noopener\">figma.com\/@androiddesign<\/a>. Stay tuned for more Android Figma resources.<\/p>\n<p>Check out the official Android documentation for detailed information and best practices <a href=\"https:\/\/developer.android.com\/design\/ui\/widget\" target=\"_blank\" rel=\"noopener\">Widgets on Android<\/a> and more on <a href=\"https:\/\/developer.android.com\/design\/ui\/mobile\/guides\/widgets\/widget_quality_guide\" target=\"_blank\" rel=\"noopener\">Widget Quality Tiers<\/a>, and join us for the rest of <a href=\"https:\/\/android-developers.googleblog.com\/2025\/03\/spotlight-week-widgets.html\" target=\"_blank\" rel=\"noopener\">Widget Spotlight week<\/a>!<\/p>\n<p><image><\/p>\n<div style=\"text-align: center;\"><img decoding=\"async\" alt=\"Android Banner\" border=\"0\" height=\"362\" id=\"imgCaption\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiSnRR5_j1s14Qu6eiOth_tGlTh0crRYqQDVfq8dXwGhWJRqVSB7fr4jsNkki4SyehKKjtsafnAsZRHu5ctjJWn1gzVIVtSlehevIKilVD_w7qIpCTK34RITdBioB49FhYryT0lPKYJ0ARD5HH6yJ_sNMQvxwE9bfok0sSVRE7hupQGbLBO7-hRvyYUECQ\/s1600\/image2.png\" width=\"100%\"\/><\/div>\n<p><\/image><\/p>\n<p><i>This blog post is part of our series: <b>Spotlight Week on Widgets<\/b>, where we provide resources\u2014blog posts, videos, sample code, and more\u2014all designed to help you design and create widgets. You can <a href=\"https:\/\/android-developers.googleblog.com\/2025\/03\/spotlight-week-widgets.html\" target=\"_blank\" rel=\"noopener\">read more in the overview of Spotlight Week: Widgets<\/a>, which will be updated throughout the week.<\/i><\/p>\n<\/div>\n<p>[ad_2]<br \/>\n<br \/><a href=\"http:\/\/android-developers.googleblog.com\/2025\/03\/design-with-widget-canonical-layouts.html\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Posted by Summers Pitman \u2013 Developer Relations Engineer, and Ivy Knight \u2013 Senior Design Advocate Widgets can bring more productive, delightful and customized experiences<\/p>\n","protected":false},"author":1,"featured_media":272174,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[146],"tags":[],"_links":{"self":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts\/272173"}],"collection":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/comments?post=272173"}],"version-history":[{"count":0,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/posts\/272173\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/media\/272174"}],"wp:attachment":[{"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/media?parent=272173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/categories?post=272173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michigandigitalnews.com\/index.php\/wp-json\/wp\/v2\/tags?post=272173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}