DEV Community

Alexis Clarembeau
Alexis Clarembeau

Posted on

How are responsive websites doing in 2024?

Overview

By 2024, mobile devices will account for over half of all internet traffic. A laptop or desktop computer is no longer a necessary tool for many people, who are increasingly using smartphones and tablets to explore the web. The internet is now mobile-first, whether it's for productivity, social media, or e-commerce. Because of this change, responsive web design is essential to making sure that websites work and look good on a variety of screens and devices.

We know it can be costly and time-consuming to develop for numerous platforms, particularly when creating native mobile apps. It takes several codebases, specialized teams, and continuous platform maintenance to develop distinct apps for iOS, Android, and the web. Businesses incur much higher expenses as a result, and feature rollouts are slowed down. Complexity is increased by the difficulty developers still have maintaining platform-specific adaptations.

There are a number of ways to make multi-platform programming less complicated. Code reuse across platforms is made possible by hybrid frameworks such as Flutter, React Native, and Progressive Web Apps (PWAs). Nevertheless, these solutions frequently have drawbacks.

In today's post we'll talk about responsive websites as a potential solution for building multi-platform applications.

Responsive websites

A responsive website is one that is made to dynamically change its functionality, content, and layout according on the platform, screen size, and orientation of the user. Without requiring separate versions of the website, a responsive website guarantees that the material is designed for the optimal viewing experience on every device, whether a user is accessing it from a desktop, laptop, tablet, or smartphone.

When you use responsive web design, you only need to write and manage a single codebase that functions across desktop, tablet, and mobile devices. As opposed to creating distinct apps for iOS, Android, and the web, this lowers the complexity and development costs.

How to implement it?

To implement a responsive website, you need to use different css techniques such as flexible layouts (like grids), scalable images, and media queries in CSS to adjust the site's design based on the device's screen size. By defining breakpoints, you can change the layout and styling of elements as the screen gets smaller or larger. For example, you can switch from a multi-column desktop layout to a single-column mobile layout, ensuring a seamless user experience across all devices. Here's an example of using a media query to handle a mobile breakpoint:

/* Desktop styles */
.container {
  display: flex;
  padding: 20px;
}

/* Mobile breakpoint */
@media (max-width: 768px) {
  .container {
    display: block;
    padding: 10px;
  }
}
Enter fullscreen mode Exit fullscreen mode

The layout in this example changes from a block layout on smaller devices to a flexbox layout on larger ones. This improves the content's mobile friendliness without requiring a complete redesign.

Bonus: CSS may not need drastic changes

It is frequently not necessary to dramatically alter the layout of a well-designed responsive website for mobile devices. You can easily make your website responsive to mobile screens by changing the layout to a one-column format and making minor adjustments to the sizes and paddings. Certain parts can be made mobile-friendly if needed, but the fundamental codebase stays the same, cutting down on redundancy.

Challenges

The evolution of responsive websites

With new capabilities like Grid, Flexbox, and advanced media queries being nearly fully supported by contemporary browsers, CSS has seen substantial development. Additionally, JavaScript support has improved significantly, acting consistently in the majority of browsers. To assist designers in managing mobile devices with dynamic screen heights (like those with notches or on-screen keyboards), new units like dvh (Dynamic Viewport Height) are being developed.

/* Example using dvh unit */
.header {
  height: 100dvh; /* Adjusts based on available viewport height */
}
Enter fullscreen mode Exit fullscreen mode

Even with these developments, creating completely responsive, mobile-friendly websites remains difficult. Using Service Workers to develop offline-first web apps can be challenging and prone to mistakes. Furthermore, despite its improvements, Safari on iOS still lags behind other browsers in terms of consistency and support, and several issues are still being reported. Additionally, developers may need to address additional edge circumstances brought about by users on outdated devices or browsers.

Real-world example: Our application

As an example, we want to show our application: Touchlead, a marketing automation software.
To achieve mobile support, we built our web application using Tailwind CSS.
We created mobile-friendly layouts easily, using utility classes like md:flex-col to adjust for mobile breakpoints. For example, on desktop, we use a horizontal flex layout, and on mobile, we switch to a column layout, all with minimal code changes.

<div class="flex flex-col md:flex-row p-4">
  <div class="flex-1">Content 1</div>
  <div class="flex-1">Content 2</div>
</div>
Enter fullscreen mode Exit fullscreen mode

This strategy has allowed us to keep our codebase consistent while guaranteeing a fantastic desktop and mobile user experience.

Conclusion

Let's tell us what you think about responsivity in website design in 2024.
Do you use it to build your sites and applications, or, do you consider the challenges are too high?
Your opinions and experiences about responsive web design would be greatly appreciated.
Have you encountered difficulties when creating content for many platforms?
Which remedies have you discovered to work best? Tell us what you think!

Top comments (0)