Common breakpoints for media queries on a responsive site
When deciding on breakpoints for your media queries, consider these realities:
- There are hundreds of different screen sizes across thousands of different devices.
- The future will bring new screen sizes.
- Apple, Samsung, Microsoft, LG, Nokia and any other device manufacturer can, at any time, change the screen size of their popular models.
With so many viewport possibilities, matching breakpoints to specific devices doesn't sound like an efficient strategy. Just keeping up with what's popular, what's new, and what's changed will be a never-ending task.
A better approach may be to set breakpoints based on content and layout.
With this approach your site uses its natural breakpoints to adapt to all viewport sizes, rather than artificial breakpoints targeting currently common screen sizes.
This method is so simple and easy it may be hard to believe:
- Run your website on a desktop or laptop.
- As you narrow the browser window, notice how the website responds.
- When you reach the point where your layout is no longer perfect, that's your first breakpoint.
- Adjust your site for that screen size (which may have no relation to any device).
- Keep narrowing the browser window.
- When you hit the next layout problem, that's your second breakpoint.
- ... and so on and so forth.
Of course, if you're designing mobile-first, then the process goes in reverse: Start with a narrow screen and work your way out.
With natural breakpoints you no longer need to focus on a giant universe of viewport sizes because your site will adapt to any device, both now and in the future.
According to one developer, this approach brings breakpoints full-circle to their original intent:
I'm not sure how we ever came up with the phrase "device-specific breakpoints" anyhow... As I've understood it, the term "breakpoint" was always a reference to where the content or layout would "break" (i.e. appear flawed) and thus you'd need to apply a media query at that point. But I guess that's just semantics, I just always thought it was common sense to refer to breakpoints in the context of content or layout.
~ Louis Lazaris, ImpressiveWebs
source: https://responsivedesign.is/articles/why-you-dont-need-device-specific-breakpoints#comment-1685967450
More information (external sites):
- Why You Don't Need Device Specific Breakpoints
- Setting Breakpoints in Responsive Design
- Google Developers: How to choose breakpoints
- The Goldilocks Approach to Responsive Design
- Viewport Sizes (a list of hundreds of devices and viewport sizes)
- Media Queries for Standard Devices (a list of media queries targeting popular devices)
- This is a pretty useful guide for mobile screen sizes.
- Great guide for stats on screen resolutions
- Google Analytics data on resolutions can be valuable as well, if you have access to it.
Also, I would definitely recommend using device-width
for your mobile sizes, unless you want users to see your mobile styles when they resize their browser window on a non-mobile device. width
is the width of the viewport, and device-width
is the current resolution of the device.
Also, I think I have read that some mobile devices don't behave as expected (with @media).
You are correct. Many devices will not give you the width
or device-width
that you expect, especially when switching between landscape and portrait (they will often give the landscape width when in portrait). Device auto-zooming can also throw a wrench into things. Using the viewport meta tag can help with many of these issues. (More info on that here)