Skip to main content

Course Progress

Loading...

Mobile-First Approach to Responsive Design

Duration: 30 minutes
Module 1: CSS Layout & Responsive Design

Learning Objectives

  • Create responsive layouts
  • Design for multiple devices
  • Use modern CSS techniques
  • Build flexible designs

Understanding the Mobile-First Approach

The mobile-first approach is both a design philosophy and a practical development methodology where you begin by designing for the smallest screen and then progressively enhance the experience as the screen size increases. This stands in contrast to the traditional desktop-first approach, where designs start with full-sized desktop layouts and are then modified to fit smaller screens.

Think of mobile-first design like building a house: You start with the essential foundation and structure (mobile), and then add additional rooms, features, and decorative elements (tablet, desktop) as more space becomes available. Everything must work in the smallest version, with larger versions adding enhancements rather than critical functionality.

                    graph LR
                    A[Mobile Design] -->|Enhance| B[Tablet Design]
                    B -->|Enhance| C[Desktop Design]
                    style A fill:#f9d5e5,stroke:#333,stroke-width:2px
                    style B fill:#eeac99,stroke:#333,stroke-width:2px
                    style C fill:#e06377,stroke:#333,stroke-width:2px
                

The Evolution of Mobile-First Design

Desktop-Only Era (Early Web)

In the early days of the web, sites were designed exclusively for desktop computers with fixed-width layouts (typically 960px wide). Mobile devices were an afterthought, if considered at all.

Separate Mobile Sites (Mid-2000s)

As smartphones emerged, companies created separate mobile websites (often with "m." subdomains) that were completely different from their desktop sites. This meant maintaining two separate codebases and experiences.

Responsive Web Design Emerges (2010)

Ethan Marcotte introduced responsive web design, using fluid grids, flexible images, and media queries to create websites that adapted to different screen sizes. However, many still designed desktop-first and then adapted for mobile.

Mobile-First Philosophy (2011)

Luke Wroblewski coined the term "Mobile First," advocating for designing for mobile devices first. This was partially in response to the explosive growth of mobile web usage and the constraints of mobile devices.

Mobile Surpasses Desktop (2016-Present)

Mobile traffic surpassed desktop traffic, making mobile-first design not just good practice but essential. Today, search engines like Google use mobile-first indexing, prioritizing the mobile version of websites for ranking.

                    timeline
                        title Evolution of Mobile-First Design
                        1995 : Desktop-only web designs
                        2007 : iPhone launch transforms mobile web
                        2010 : Responsive Web Design introduced
                        2011 : "Mobile First" concept coined
                        2016 : Mobile traffic exceeds desktop
                        2018 : Google implements mobile-first indexing
                        2025 : Mobile continues to dominate web access
                

Why Choose Mobile-First?

Performance Benefits

Mobile devices typically have less processing power and potentially slower internet connections. Starting with the bare essentials and progressively adding complexity ensures a fast, efficient experience for all users.

Think of it like packing for a camping trip versus staying at a hotel. For camping, you only bring absolute essentials due to limited space (mobile). For a hotel stay, you can bring additional comfort items (desktop).

Forces Content Prioritization

The limited screen space of mobile devices requires you to focus on what's truly important. This constraint leads to better content hierarchy and more focused user experiences across all devices.

Imagine writing a tweet versus writing an essay. The character limitation of a tweet forces you to distill your message to its most essential elements, making every word count.

Progressive Enhancement

Starting with a baseline that works on all devices and then enhancing for more capable devices ensures that everyone gets at least a functional experience, regardless of their device capabilities.

It's like a car's features: All cars have the basic function of transportation (mobile), but higher-end models add increasingly sophisticated features (tablet, desktop) while maintaining the core functionality.

Future-Friendly Approach

As new devices with different screen sizes continue to emerge, a mobile-first approach makes your design more adaptable to future technologies and screen sizes that don't yet exist.

Compare it to building flexible furniture: A modular sofa can be reconfigured to fit different room sizes, while a fixed-size sectional might not fit in your next home.

User Expectations

With most web traffic now coming from mobile devices, users expect fast, mobile-optimized experiences. Mobile-first design matches these expectations.

It's similar to how we now expect most businesses to accept digital payments rather than just cash—consumer behavior has shifted, and businesses must adapt.

SEO Advantages

Search engines like Google now use mobile-first indexing, meaning they primarily use the mobile version of a site for ranking and indexing. A mobile-first approach aligns with these indexing priorities.

This is like preparing for an important evaluation based on known criteria. Since we know what factors will be judged most heavily, we can prioritize those areas.

The Suitcase Analogy

The difference between mobile-first and desktop-first approaches can be understood through packing for a trip:

Desktop-First (Traditional Approach)

You start with a large suitcase and pack everything you might possibly want. When you realize you need to use a smaller bag instead, you must remove items and make difficult decisions about what to leave behind. Often, you'll make suboptimal choices because you're already attached to everything you originally packed.

Mobile-First (Modern Approach)

You start with a small backpack and carefully choose only the most essential items. If you later discover you can bring a larger suitcase, you can thoughtfully add more items that enhance your trip, but your essentials are already covered.

Content Desktop → Tablet → Mobile (Reduction) Content Mobile → Tablet → Desktop (Enhancement) Removing Features Adding Enhancements

Implementing Mobile-First in CSS

The most fundamental aspect of mobile-first development is how you structure your CSS. Instead of starting with desktop styles and overriding them for smaller screens, you start with mobile styles and enhance them for larger screens.

Desktop-First CSS

Uses max-width media queries to apply styles for progressively smaller screens.

/* Default styles for desktop */
.container {
  display: flex;
  justify-content: space-between;
}

.sidebar {
  width: 30%;
}

.main-content {
  width: 65%;
}

/* Tablet styles */
@media (max-width: 992px) {
  .container {
    flex-wrap: wrap;
  }
  
  .sidebar,
  .main-content {
    width: 100%;
  }
}

/* Mobile styles */
@media (max-width: 576px) {
  .container {
    padding: 10px;
  }
}

Mobile-First CSS

Uses min-width media queries to apply styles for progressively larger screens.

/* Default styles for mobile */
.container {
  padding: 10px;
}

.sidebar,
.main-content {
  width: 100%;
}

/* Tablet styles */
@media (min-width: 576px) {
  .container {
    padding: 20px;
  }
}

/* Desktop styles */
@media (min-width: 992px) {
  .container {
    display: flex;
    justify-content: space-between;
  }
  
  .sidebar {
    width: 30%;
  }
  
  .main-content {
    width: 65%;
  }
}

Key Principles of Mobile-First CSS

  • Base styles are for mobile: Write your default CSS for the smallest screens without any media queries.
  • Use min-width queries: Apply media queries with min-width to enhance for larger screens.
  • Progressive enhancement: Add features and complexity as screen size increases.
  • Maintain a logical flow: Keep your CSS organized from mobile to desktop, not mixed.

Practical Examples of Mobile-First Design

Example 1: Navigation Menu

A responsive navigation menu is one of the most common elements that requires different approaches across device sizes.

HTML

<nav class="site-nav">
  <div class="brand">Company Name</div>
  <button class="menu-toggle" aria-label="Toggle menu">☰</button>
  <ul class="nav-menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">Products</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">About Us</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
</nav>

Mobile-First CSS

/* Base (Mobile) Styles */
.site-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  background-color: #f8f9fa;
}

.brand {
  font-size: 1.5rem;
  font-weight: bold;
}

.menu-toggle {
  display: block; /* Visible on mobile */
  background: none;
  border: 1px solid #ddd;
  padding: 0.5rem;
  font-size: 1.25rem;
  cursor: pointer;
}

.nav-menu {
  width: 100%; /* Full width on mobile */
  padding: 0;
  margin: 1rem 0 0 0;
  list-style: none;
  display: none; /* Hidden by default */
}

.nav-menu.active {
  display: block; /* Show when active */
}

.nav-menu li {
  margin-bottom: 0.5rem;
}

.nav-menu a {
  display: block;
  padding: 0.5rem 0;
  text-decoration: none;
  color: #333;
}

/* Tablet and Desktop Enhancements */
@media (min-width: 768px) {
  .menu-toggle {
    display: none; /* Hide toggle on larger screens */
  }
  
  .nav-menu {
    display: flex; /* Always visible as a row */
    width: auto; /* Auto width */
    margin-top: 0; /* Remove margin */
  }
  
  .nav-menu li {
    margin: 0 0 0 1.5rem; /* Margin between items */
  }
}

JavaScript for Toggle

document.querySelector('.menu-toggle').addEventListener('click', function() {
  document.querySelector('.nav-menu').classList.toggle('active');
});

This example demonstrates:

  • Mobile design first: Menu starts as a vertical list with a toggle button
  • Progressive enhancement: On larger screens, the menu transforms into a horizontal navigation bar
  • Feature adaptation: The hamburger toggle is only visible/necessary on mobile
Company Home Products Services About Us Contact

Mobile View

Company Home Products Services About

Desktop View

Example 2: Product Grid Layout

A product grid that adapts from a single column on mobile to multiple columns on larger screens.

HTML

<div class="product-grid">
  <div class="product-card">
    <img src="product1.jpg" alt="Product 1">
    <h3>Product Name</h3>
    <p class="price">$19.99</p>
    <button class="add-to-cart">Add to Cart</button>
  </div>
  <!-- More product cards... -->
</div>

Mobile-First CSS

/* Base (Mobile) Styles */
.product-grid {
  display: grid;
  grid-template-columns: 1fr; /* Single column on mobile */
  gap: 1rem;
  padding: 1rem;
}

.product-card {
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
}

.product-card img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 4px;
  margin-bottom: 0.75rem;
}

.product-card h3 {
  margin: 0 0 0.5rem 0;
  font-size: 1.1rem;
}

.price {
  font-weight: bold;
  color: #e63946;
  margin-bottom: 0.75rem;
}

.add-to-cart {
  margin-top: auto; /* Push to bottom */
  padding: 0.5rem;
  background-color: #1d3557;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

/* Tablet Enhancement */
@media (min-width: 576px) {
  .product-grid {
    grid-template-columns: repeat(2, 1fr); /* 2 columns on tablet */
  }
}

/* Desktop Enhancement */
@media (min-width: 992px) {
  .product-grid {
    grid-template-columns: repeat(3, 1fr); /* 3 columns on smaller desktops */
    gap: 1.5rem;
    padding: 1.5rem;
  }
  
  .product-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  .product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  }
}

/* Large Desktop Enhancement */
@media (min-width: 1200px) {
  .product-grid {
    grid-template-columns: repeat(4, 1fr); /* 4 columns on large desktops */
    max-width: 1400px;
    margin: 0 auto;
  }
}

This example demonstrates:

  • Starting with a single column layout for mobile devices
  • Progressively increasing the number of columns as screen size increases
  • Adding hover effects only on desktop where hover is available
  • Setting a maximum width and centering the grid on very large screens
                        graph TD
                        A[Mobile: 1 Column] -->|min-width: 576px| B[Tablet: 2 Columns]
                        B -->|min-width: 992px| C[Desktop: 3 Columns + Hover Effects]
                        C -->|min-width: 1200px| D[Large Desktop: 4 Columns + Max Width]
                        style A fill:#f9d5e5,stroke:#333,stroke-width:1px
                        style B fill:#eeac99,stroke:#333,stroke-width:1px
                        style C fill:#e06377,stroke:#333,stroke-width:1px
                        style D fill:#c83349,stroke:#333,stroke-width:1px
                    

Example 3: Mobile-First Typography

Typography that scales appropriately across different device sizes.

Mobile-First CSS

/* Base (Mobile) Styles */
html {
  font-size: 16px; /* Base font size */
}

body {
  font-family: 'Segoe UI', system-ui, sans-serif;
  line-height: 1.5;
  color: #333;
}

h1 {
  font-size: 1.75rem; /* 28px on mobile */
  line-height: 1.2;
  margin-bottom: 1rem;
}

h2 {
  font-size: 1.375rem; /* 22px on mobile */
  line-height: 1.3;
  margin-bottom: 0.75rem;
}

h3 {
  font-size: 1.125rem; /* 18px on mobile */
  line-height: 1.4;
  margin-bottom: 0.5rem;
}

p {
  margin-bottom: 1rem;
}

/* Tablet Enhancement */
@media (min-width: 768px) {
  html {
    font-size: 17px; /* Slightly larger base font */
  }
  
  h1 {
    font-size: 2rem; /* 34px on tablet */
  }
  
  h2 {
    font-size: 1.5rem; /* 25.5px on tablet */
  }
}

/* Desktop Enhancement */
@media (min-width: 992px) {
  html {
    font-size: 18px; /* Larger base font */
  }
  
  h1 {
    font-size: 2.5rem; /* 45px on desktop */
    margin-bottom: 1.5rem;
  }
  
  h2 {
    font-size: 1.75rem; /* 31.5px on desktop */
    margin-bottom: 1rem;
  }
  
  h3 {
    font-size: 1.25rem; /* 22.5px on desktop */
    margin-bottom: 0.75rem;
  }
}

This example demonstrates:

  • Starting with smaller, more compact typography for mobile devices
  • Gradually increasing font sizes as screen size increases
  • Using relative units (rem) based on the root font size for consistent scaling
  • Adjusting both font sizes and spacing as screen size increases

Modern Alternative: Fluid Typography

Instead of using discrete breakpoints, you can use CSS clamp() for smoother scaling between sizes:

/* Fluid Typography with clamp() */
h1 {
  font-size: clamp(1.75rem, 1rem + 3vw, 2.5rem);
  /* Minimum: 1.75rem (mobile)
     Scales based on viewport width
     Maximum: 2.5rem (desktop) */
}

h2 {
  font-size: clamp(1.375rem, 1rem + 1.5vw, 1.75rem);
}

p {
  font-size: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
  line-height: 1.5;
}

Mobile-First Best Practices

Start with Content Strategy

Before writing a single line of code, identify what content is most important to your users. Mobile-first design forces content prioritization, so determine your content hierarchy first.

Practical Tip: Create content priority lists for each major page or component, ranking elements from most to least important. This will guide your mobile layout decisions.

Embrace Progressive Enhancement

Design for the lowest common denominator first (mobile), then enhance the experience as screen real estate and device capabilities increase.

Practical Tip: For each component, ask "What's the simplest version that provides full functionality?" Then consider what enhancements make sense as screen size increases.

Use Relative Units

Prefer relative units like rem, em, and percentages over fixed pixel values. This creates more flexible layouts that adapt better to different screen sizes and user font preferences.

Practical Tip: Set a base font size on the html element (e.g., 16px) and define other font sizes and spacing in rem units relative to this base.

Optimize Images for Mobile

Images often account for the majority of a page's download size. Optimize images for mobile viewing first, and consider using responsive image techniques.

<!-- Responsive images with srcset and sizes -->
<img src="small.jpg" 
     srcset="small.jpg 600w, 
             medium.jpg 1200w, 
             large.jpg 1800w" 
     sizes="(max-width: 600px) 100vw, 
            (max-width: 1200px) 50vw, 
            33vw"
     alt="Product image">

Test on Real Devices

Browser developer tools are helpful, but nothing beats testing on actual mobile devices with different screen sizes, resolutions, and capabilities.

Practical Tip: Maintain a small collection of test devices representing different sizes and operating systems. If physical devices aren't available, services like BrowserStack can help.

Consider Touch Targets

Touch interfaces need larger hit areas than mouse-based interfaces. Ensure buttons, links, and other interactive elements are large enough to be easily tapped with a finger.

Practical Tip: Interactive elements should be at least 44×44 pixels in size with adequate spacing between them (Apple's recommendation). Use padding to increase the tap target without necessarily increasing the visual size.

Avoid Large Fixed-Width Elements

Elements with fixed widths larger than the mobile viewport will cause horizontal scrolling, breaking the responsive layout.

Practical Tip: Use max-width: 100% on potentially problematic elements like images, tables, and embedded content to ensure they never exceed their container width.

Use Feature Queries Where Appropriate

Some CSS features might not be available on all devices. Use @supports to provide appropriate fallbacks while still using advanced features where supported.

/* Base styles for all browsers */
.gallery {
  display: flex;
  flex-wrap: wrap;
}

/* Enhanced layout for browsers that support grid */
@supports (display: grid) {
  .gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
  }
}

Common Mobile-First Design Patterns

Stacked to Multi-Column Layout

Content blocks stack vertically on mobile and arrange into multiple columns on larger screens.

/* Mobile: Stacked */
.features {
  display: flex;
  flex-direction: column;
}

.feature {
  margin-bottom: 1.5rem;
}

/* Desktop: Side-by-side */
@media (min-width: 768px) {
  .features {
    flex-direction: row;
    justify-content: space-between;
  }
  
  .feature {
    width: 30%;
    margin-bottom: 0;
  }
}

Collapsed to Expanded Navigation

Navigation collapses into a hamburger menu on mobile and expands into a horizontal menu on desktop.

This pattern was demonstrated in Example 1 above.

Show/Hide Content

Some content is hidden or collapsed on mobile to save space but visible on larger screens.

/* Hidden on mobile */
.sidebar-content {
  display: none;
}

/* Visible on desktop */
@media (min-width: 992px) {
  .sidebar-content {
    display: block;
  }
}

Tabs to Accordion

Content arranged in tabs on desktop transforms into an accordion on mobile to save vertical space.

Section 1 + Section 2 + Section 3 +

Mobile: Accordion

Section 1 Section 2 Section 3 Content for Section 1

Desktop: Tabs

Priority+ Navigation

Shows the most important navigation items on mobile and progressively reveals more as screen size increases.

Home Shop More

Mobile: Priority Items + More

Home Shop Products Services About Contact

Desktop: All Items Visible

Mobile-First Case Study: E-commerce Product Page

Let's consider how a mobile-first approach would handle a complex e-commerce product page with multiple components:

Product Gallery

  • Mobile: Single column swipeable gallery with thumbnails below
  • Tablet: Larger images, improved interaction
  • Desktop: Main image with thumbnails on the side, zoom functionality

Product Information

  • Mobile: Stacked sections with collapsible details
  • Tablet: More information visible without expanding
  • Desktop: Side-by-side layout with product gallery

Add to Cart Section

  • Mobile: Sticky bar at bottom for quick access
  • Tablet: Prominent area within the layout
  • Desktop: Integrated with product information

Related Products

  • Mobile: Horizontal scrolling carousel with 1-2 visible items
  • Tablet: Grid with 3 columns
  • Desktop: Grid with 4-5 columns

Implementation Approach

  1. Start with content prioritization: Determine the most critical information for mobile users (likely product images, price, key features, and "add to cart")
  2. Design the mobile layout first: Focusing on a vertical flow with clear hierarchy
  3. Add tablet enhancements: Improve the layout with more horizontal arrangements and reveal more content
  4. Finalize desktop enhancements: Create a rich, full-featured experience with optimal use of the available space
  5. Test across devices: Ensure a seamless, consistent experience across the device spectrum
                    flowchart TB
                    A[Start: Content Prioritization] --> B[Mobile Design
Base Styles] B --> C[Tablet Enhancement
First Media Query] C --> D[Desktop Enhancement
Second Media Query] D --> E[Large Desktop Enhancement
Optional Third Media Query] subgraph workflow [Mobile-First Workflow] A B C D E end style workflow fill:#f5f5f5,stroke:#333,stroke-width:1px

Mobile-First Responsive Images

Images are often the largest elements on a page in terms of file size. A mobile-first approach to images is critical for performance.

Basic Responsive Images

At minimum, you should ensure images scale properly within their containers:

img {
  max-width: 100%;
  height: auto;
}

This ensures images never overflow their containers and maintain their aspect ratio when scaled.

Resolution Switching with srcset

To serve different sized images based on device needs:

<img src="small.jpg" 
     srcset="small.jpg 600w, 
             medium.jpg 1200w, 
             large.jpg 1800w" 
     alt="Responsive image">

This tells the browser which image files are available and their intrinsic widths. The browser can then choose the most appropriate image based on the device's screen size and pixel density.

Art Direction with picture

When you need to show different cropped or compositions of images on different screen sizes:

<picture>
  <source media="(min-width: 992px)" srcset="desktop.jpg">
  <source media="(min-width: 576px)" srcset="tablet.jpg">
  <img src="mobile.jpg" alt="Product image">
</picture>

This allows you to not just serve different sizes but completely different images optimized for each device context—for example, a landscape crop on desktop but a portrait crop on mobile.

New Image Formats with type

Modern image formats like WebP and AVIF offer better compression but aren't supported in all browsers. You can provide fallbacks:

<picture>
  <source type="image/avif" srcset="image.avif">
  <source type="image/webp" srcset="image.webp">
  <img src="image.jpg" alt="Product image">
</picture>

Mobile-First Image Best Practices

Tools for Mobile-First Development

Chrome DevTools Device Mode

Press F12 in Chrome and click the "Toggle device toolbar" button to simulate various device sizes and test your responsive designs.

Features include device presets, responsive mode with resizable viewport, network throttling to simulate slower connections, and device pixel ratio simulation.

CSS Frameworks with Mobile-First Approach

Online Testing Tools

Performance Testing

Common Challenges and Solutions

Challenge: Complex Tables on Mobile

Tables with many columns don't fit well on narrow mobile screens.

Solutions:

  • Horizontal scrolling: Contain the table in a scrollable container
  • Stacked layout: Restructure tables as card-like vertical layouts on mobile
  • Priority columns: Show only the most important columns on mobile
/* Basic responsive table with horizontal scroll */
.table-container {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
}

Challenge: Navigation for Deep Site Hierarchies

Sites with complex navigation structures face challenges on mobile screens.

Solutions:

  • Progressive disclosure: Use collapsible menus that reveal submenus when needed
  • Off-canvas navigation: Slide in menus from off-screen
  • Priority+ navigation: Show only key links with a "more" option for additional items

Challenge: Performance on Slower Mobile Networks

Mobile users may have slower internet connections than desktop users.

Solutions:

  • Optimize images: Use appropriate sizes and formats for mobile
  • Defer non-critical resources: Load less important assets after critical content
  • Implement lazy loading: Only load images as they enter the viewport
  • Minimize HTTP requests: Combine files where appropriate

Challenge: Input Methods and Form Elements

Touch interfaces have different interaction patterns than mouse-based interfaces.

Solutions:

  • Larger touch targets: Make interactive elements at least 44×44px
  • Appropriate input types: Use type="email", type="tel", etc., to trigger appropriate virtual keyboards
  • Custom form controls: Replace hard-to-use native controls with mobile-friendly alternatives
/* Mobile-friendly button */
.button {
  display: inline-block;
  min-height: 44px;
  min-width: 44px;
  padding: 12px 20px;
  font-size: 16px; /* Minimum 16px to prevent zoom on iOS */
}

Practice Exercises

Exercise 1: Convert a Desktop-First Layout to Mobile-First

Take this desktop-first CSS and convert it to a mobile-first approach:

/* Desktop-first code to convert */
.container {
  width: 1200px;
  margin: 0 auto;
  display: flex;
}

.main-content {
  width: 70%;
  padding: 20px;
}

.sidebar {
  width: 30%;
  padding: 20px;
  background-color: #f0f0f0;
}

@media (max-width: 992px) {
  .container {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }
  
  .main-content,
  .sidebar {
    width: 100%;
  }
}

Exercise 2: Create a Mobile-First Card Component

Design a "team member" card that:

Exercise 3: Build a Mobile-First Navigation

Create a site navigation that:

Conclusion

The mobile-first approach to web design and development has evolved from a novel concept to an industry standard. By beginning with the constraints of mobile devices and progressively enhancing the experience for larger screens, we create websites that are:

Remember that mobile-first is both a practical coding technique (using min-width media queries) and a design philosophy that recognizes the importance of mobile users. As you continue developing responsive websites, always ask yourself, "How will this work on the smallest screen first?" before considering larger viewports.

In our next session, we'll explore CSS frameworks like Bootstrap that implement mobile-first principles to help streamline your responsive development workflow.

Additional Resources