{"id":10594,"date":"2026-07-31T15:54:07","date_gmt":"2026-07-31T20:54:07","guid":{"rendered":"https:\/\/master.dev\/blog\/?p=10594"},"modified":"2026-07-31T15:54:08","modified_gmt":"2026-07-31T20:54:08","slug":"ending-responsive-images","status":"publish","type":"post","link":"https:\/\/master.dev\/blog\/ending-responsive-images\/","title":{"rendered":"Ending Responsive Images"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <code>sizes<\/code> attribute for <code>&lt;img><\/code> was maybe the hardest part. It had complicated syntax that always had to be in sync with whatever your CSS was doing. But <a href=\"https:\/\/caniuse.com\/mdn-html_elements_img_sizes_auto\"><code>sizes=\"auto\"<\/code> support<\/a> is almost ready for <a href=\"https:\/\/www.joshuapease.com\/posts\/sizes-auto\/\">prime time<\/a>. <a href=\"https:\/\/cloudfour.com\/thinks\/ending-responsive-images\/\">Jason Grigsby says we can go a step further<\/a> an remove <code>srcset<\/code> too, which is nearly just as complex, and requires having a system to produce multiple images. Jason&#8217;s thinking is that we can use newfangled Client Hints to send to the server what size image we need, it responds in kind, and we&#8217;re back to a pretty basic <code>&lt;img src=\"\" alt=\"\"><\/code> situation. Well, do lazy loading too, but you know what I mean.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The sizes attribute for &lt;img> was maybe the hardest part. It had complicated syntax that always had to be in sync with whatever your CSS was doing. But sizes=&#8221;auto&#8221; support is almost ready for prime time. Jason Grigsby says we can go a step further an remove srcset too, which is nearly just as complex, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10596,"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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[29],"tags":[523,31,133],"class_list":["post-10594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-client-hints","tag-html","tag-images"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/master.dev\/blog\/wp-content\/uploads\/2026\/07\/feature-srcset-r1-2048x1152-1.jpg?fit=2048%2C1152&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/comments?post=10594"}],"version-history":[{"count":2,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10594\/revisions"}],"predecessor-version":[{"id":10597,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/posts\/10594\/revisions\/10597"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/media\/10596"}],"wp:attachment":[{"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/media?parent=10594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/categories?post=10594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/master.dev\/blog\/wp-json\/wp\/v2\/tags?post=10594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}