css

  • Fragments, and the wrapper div that stops being required

    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…

  • Teleport, and the modal that no longer fights z-index

    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…

  • Pattern categories, and an inserter editors can navigate

    Eleven patterns dropped into the default categories are eleven things an editor scrolls past, and the inserter is the only place they exist. Removing the core patterns is…

  • Block patterns, and the page an editor can build

    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…

  • Lazy loading arrived in the browser

    One attribute replaces an IntersectionObserver and a library — and applying it to everything makes the Largest Contentful Paint worse rather than better.

  • A grid with minmax and no media queries

    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…

  • loading=lazy, and the images it must not be on

    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…

  • Width and height are required again, and CLS is why

    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…

  • CSS custom properties, read and written from JavaScript

    A theme value duplicated in a stylesheet and in a JavaScript constant is two sources of truth, and custom properties are readable and writable from both. The trim()…

  • Blade components and the partial that had eleven parameters

    An @include with eleven variables and no way to know which are required. A partial is a file rather than a contract, and 7.0 makes the constructor the…