April 2026 was a landmark month for CSS browser interoperability. Chrome 147 shipped border-shape for non-rectangular borders and scoped element view transitions via element.startViewTransition(). Firefox 150 completed cross-engine scroll-driven animation range control with animation-range-start, animation-range-end, and the animation-range shorthand. The CSS contrast-color() function reached Baseline. Looking ahead, Chrome 148 previews named-only container queries, Firefox 151 previews container style queries, and Safari 26.5 previews :open pseudo-class support.
Safari Technology Preview 242 added CSS Values Level 5 attr() function support and font-synthesis-style oblique-only, while fixing anchor-positioning bugs for elements anchored to children of sticky-positioned boxes, view-timeline-inset serialization, and the :in-range/:out-of-range pseudo-classes on readonly attribute changes. On the animation side, a detailed tutorial showed how to drive variable font axes (wght, letter-spacing) purely with CSS scroll-driven animations using animation-timeline — and critically, that overflow: clip must be used instead of overflow: hidden to avoid breaking scroll-container timeline resolution.
Kevin Powell demonstrated replacing media query magic-pixel breakpoints with container queries and the ch unit, making breakpoints content-driven and typography-aware (90ch fires at roughly 30 characters per column). The CSS Property Type Validator gained stricter @property validation, cross-file @import tracking for design-token codebases, and a --registry-only CI mode. A discussion of HTML web components versus custom-attribute MutationObserver patterns revisited why WebKit rejected the is= attribute and makes the case for composition over inheritance in element enhancement.