Do you set breakpoints by device sizes or by where the layout actually breaks?
On this page
Set breakpoints where the layout actually breaks, not at named device sizes. Chasing the standard phone, tablet, and desktop widths is a losing game, because the device landscape keeps shifting, new screen sizes appear, the popular ones change, and any fixed list you target is out of date the moment you ship it. The durable practice is to let the content decide: as you widen or narrow the viewport, watch for the point where the layout starts to strain, where a line gets too long to read, a grid leaves awkward gaps, or a navigation crowds itself, and put a breakpoint exactly there. Design to the content’s breaking points, and the layout stays right across devices you never specifically planned for, including ones that do not exist yet.
The reasoning is that a breakpoint exists to fix a problem, and the problem is a property of the layout, not the device. When you anchor breakpoints to device widths, you are guessing that the layout happens to break at those widths, and it usually does not, so you end up with a design that looks fine on the three reference screens and falls apart on everything in between. When you anchor breakpoints to the layout’s own strain points, every breakpoint is doing real work, because you placed it precisely where something was about to go wrong. The first method optimizes for a snapshot of today’s hardware; the second optimizes for the content, which is the thing that actually has to read well at every width.
Picture a three-column card grid. Targeting devices, you might add breakpoints at a typical tablet width and a typical phone width and call it done. But if you instead drag the browser narrower and just watch, you will see the cards squeeze until the text inside them gets cramped well before you reach any named tablet size, which is where the layout truly wants to drop to two columns, and then strain again at a width that has nothing to do with a standard phone, which is where it wants to drop to one. The content told you exactly where to break, and those points rarely line up with the device list, which is why device-driven breakpoints so often leave the grid looking wrong at the in-between sizes real visitors actually use.
One place the rule bends: device-class thinking is not useless, it just belongs at the start as a sanity check rather than as the rule. It is worth confirming your content-driven layout still behaves at the rough ranges where most traffic clusters, common small, medium, and large viewports, so you do not accidentally ship a design that strains right where most people sit. But that is verification after the fact, not the method for placing breakpoints. The points themselves come from where the layout breaks; the device ranges are only a check that you have not missed a heavily used width.
When you build a responsive layout, stop reaching for the standard device widths and start resizing the viewport slowly, watching for the moment the content strains, and place a breakpoint there. Let the layout’s own breaking points set your breakpoints, then sanity-check against the ranges where your traffic clusters, and your design will hold up across devices long after today’s screen sizes are forgotten.