Which approach is better for mobile: responsive or adaptive design?
If you build websites, you've heard the terms thrown around: responsive design, adaptive design, sometimes even "mobile-first." But when you're actually writing CSS and HTML, the choice matters. I've seen projects go both ways, and I've got a clear opinion: responsive design wins for the vast majority of sites. Let me show you why.
What each approach actually is
Responsive design uses one fluid layout that reacts to the viewport. You rely on fluid grids, flexible images, and media queries. The core idea is that the same HTML and CSS serve every device, and elements scale up or down using relative units like percentages, fr, em/rem, and vh/vw. Google's mobile-first indexing uses the mobile version of your content for ranking, so having a single responsive site is the simplest way to keep that consistent.
Adaptive design serves different layouts based on the detected device or viewport size. You typically have multiple static layouts (say, one for mobile, one for tablet, one for desktop) and deliver the most appropriate one. That means more HTML and CSS to maintain, and you're guessing which breakpoints matter. The old approach of targeting specific devices is brittle—new devices come out all the time.
Here's the key: responsive design is the recommended configuration for mobile from Google, and it's the easiest to implement and maintain. Adaptive design requires more work and more code, and it's harder to keep consistent across the ever-growing range of screen sizes.
The three criteria that decide it
Let's compare them on the three things that matter most: breakpoints, performance, and accessibility.
| Criterion | Responsive | Adaptive |
|---|---|---|
| Breakpoints | Fluid, based on content needs | Fixed, based on device guesses |
| Performance | One set of assets, easier to optimize | Multiple asset sets, more overhead |
| Accessibility | Inherently flexible, works with zoom | Can break if device detection fails |
On breakpoints, responsive design doesn't force you to target specific devices. You add breakpoints when the content demands them—common reference values are around 375px, 768px, 1024px, and 1440px, but you don't have to hit those exactly. Adaptive design locks you into a few predefined widths, and if a new device falls outside them, you're stuck.
On performance, responsive sites typically load faster because you're not shipping multiple versions of your layout. You still need to optimize images, but you can use modern formats and the srcset attribute to serve the right size without duplicating entire layouts. Adaptive design often duplicates CSS and sometimes even HTML, which bloats the page.
On accessibility, responsive design wins big. Because it's fluid, content reflows naturally when users zoom in to 200%—which is a WCAG 2.1 requirement (SC 1.4.4 Resize Text). Adaptive layouts can break if the user's device is misidentified, leaving content cut off or requiring horizontal scrolling.
Who should use which?
If you're building a marketing site, a portfolio, a blog, or an e-commerce store, responsive is the way to go. It's the default for good reason.
If you're building a large-scale web app with completely different workflows on mobile vs. desktop—like a complex dashboard—you might consider adaptive. But even then, modern CSS container queries let components respond to their container size, not just the viewport. That means you can build a single component that adapts whether it sits in a sidebar or a wide column. Container queries are Baseline Widely available since February 2023, so you can use them today.
Here's a quick list of when to lean responsive:
- Most business and content sites
- When you want to minimize maintenance
- When you care about SEO (Google prefers responsive)
- When you need to meet accessibility standards
What I'd actually do
I'd go responsive, every time, unless you have a very specific reason not to. Start with a mobile-first approach—build for small screens first, then enhance with media queries as the viewport grows. Use fluid grids and flexible images, and set img { max-width: 100%; height: auto; } to prevent overflow.
Make sure your HTML is semantic—use header, nav, main, section, article, and footer so screen readers can navigate. And don't forget the viewport meta tag: <meta name="viewport" content="width=device-width, initial-scale=1.0">.
For typography, use clamp() for fluid type, like font-size: clamp(1rem, 2.5vw, 2rem). And never use viewport units alone for font sizing—it prevents zooming. Combine them with fixed units.
Performance-wise, optimize images with modern formats. Lossy WebP is 25-35% smaller than JPEG, and AVIF is about 50% smaller than JPEG, though you should provide fallbacks via <picture>. Set width and height on images to prevent layout shift.
Accessibility isn't optional—95.9% of home pages have WCAG failures (WebAIM Million). Low contrast text is the most common issue, affecting 83.9% of sites. Use sufficient contrast—at least 4.5:1 for normal text, 3:1 for large text. And make sure touch targets are at least 24x24 CSS pixels (WCAG 2.2), but aim for 44x44 as Apple recommends.
In short, responsive design is simpler, more flexible, and better for accessibility and SEO. Adaptive design is a legacy approach that adds complexity without real benefit for most projects. Start with responsive, and use modern CSS like container queries to handle edge cases. Your users—and your future self—will thank you.
Sources
- MDN Web Docs - https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/CSS_layout/Responsive_Design
- Google Search Central - https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing
- W3C WCAG 2.1 Understanding Resize Text - https://www.w3.org/WAI/WCAG21/Understanding/resize-text.html
- MDN Web Docs (@container) - https://developer.mozilla.org/en-US/docs/Web/CSS/@container
- WebAIM Million - https://webaim.org/projects/million/
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!