A 38-second dev server start on a machine with nothing else to do. Native ESM changes the feedback loop, and running two build tools has a specific cost.
Native lazy loading covers images and iframes. Anything else that should happen when an element becomes visible still needs the observer — and it is the right tool.…
Vue 2 required a single root element, so every component that logically returned two siblings had a wrapper div whose only purpose was satisfying the compiler. The dt…
A modal rendered inside a component is inside that component’s stacking context, so a parent with overflow: hidden or a transform clips it and no z-index helps. The…
Eleven custom blocks that exist to produce one layout. 5.5 added patterns, which is the feature the blocks were being used for — and it needs no build…
5.5 adds loading=”lazy” to images in content automatically, which is a good default and is wrong for the first image on the page. Lazy-loading the hero image delays…
One attribute replaces an IntersectionObserver and a library — and applying it to everything makes the Largest Contentful Paint worse rather than better.
A responsive card grid was a set of breakpoints each restating the column count, which is four rules describing one intention. The min(16rem, 100%) is the part usually…
Deferring offscreen images used to mean an IntersectionObserver, a data attribute and a library. It is now an attribute the browser understands. Applying it to every image with…
Dropping the width and height attributes was correct advice for a decade of responsive design, and it is what makes a page jump while it loads. Browsers now…