The Cartographer's First Unmeasured Horizon: On the Fallacy of Fixed Viewports in a Fluid World

We are taught to measure everything. We obsess over Core Web Vitals, chasing a perfect score like a holy grail. We meticulously set `width` and `height` attributes on our images, we define our `contain-intrinsic-size`, we craft our layouts to be as stable as a mountain. In our quest to banish the dreaded Cumulative Layout Shift, we have become masters of the known, the quantifiable, the fixed. But in doing so, have we inadvertently built a web that is stable only for the maps we have already drawn?

The common advice is to control the unknown. To pre-define the space for every asset, to assume the viewport, to anticipate the user. This is the counsel of a cartographer who only charts lands already discovered. It creates a page that is perfectly stable for a single, idealised journey—the one we planned for. But the web is not a single, static map. It is a fluid, living landscape of countless devices, screen sizes, browser extensions, user preferences, and assistive technologies that reshape the viewport in ways we cannot possibly pre-measure.

The Uncharted Territory of the User

Our pursuit of perfect stability often leads us to impose a rigid structure, a containerised world where every element is locked into a pre-determined space. This works wonderfully until a user zooms their text to 200% for readability. It holds fast until a browser’s translate feature reflows the text into a language with longer words. It remains stable until a custom stylesheet from a user with low vision overrides our carefully calculated dimensions. In these moments, our ‘stable’ layout doesn’t adapt; it either breaks or, worse, becomes inaccessible. We traded the potential for a slight, non-jarring shift for the certainty of a broken experience for those who need flexibility the most.

True web performance isn't just about speed and lack of movement; it's about resilience. It's about building a page that can gracefully handle the unknown viewport, the unanticipated content, the human need for customization. A layout that uses fluid grids, relative units, and flexible media queries might experience more initial layout cycles as it adapts, but it ultimately creates a far more stable and inclusive experience across the infinite spectrum of real-world conditions. It is stable because it is designed to be fluid.

Perhaps the most counterintuitive truth is this: sometimes, the most performant and user-centric page is not the one with zero layout shift, but the one that shifts intentionally and gracefully to accommodate the user. Instead of fighting the fluidity of the web with ever more rigid constraints, we should embrace it. We should design systems that are inherently adaptive, that see the viewport not as a fixed canvas to be filled, but as a conversation with the person on the other side. Our goal should not be to eliminate every jitter, but to build with a material that can bend without breaking. The true measure of our craft is not in how still we can make the page, but in how well it dances for everyone.

Notes & further reading

A few pages I came back to while writing this: