Blog>
Snippets

Enabling Responsive Images with srcSet in Next.js

Use the srcSet attribute in the Image component to serve different image sizes at various breakpoints, optimizing for devices with different screen sizes.
import Image from 'next/image';

// The Image component from Next.js with srcSet
function ResponsiveImageComponent() {
  return (
    <Image
      src='/path/to/image.jpg' // The base image path
      alt='Descriptive text for the image'
      width={800} // The width of the image (in pixels)
      height={600} // The height of the image (in pixels)
      srcSet={
        'path/to/image-320w.jpg 320w, ' +
        'path/to/image-480w.jpg 480w, ' +
        'path/to/image-800w.jpg 800w' // Define the different image sources along with their widths
      }
      sizes={
        '(max-width: 320px) 280px, ' +
        '(max-width: 480px) 440px, ' +
        '800px' // Define the size of the displayed image based on viewport width
      }
      layout='responsive' // Ensure the image scales correctly to the dimensions of its parent container
    />
  );
}
This code snippet imports the Image component from Next.js and creates a functional component called ResponsiveImageComponent. Inside, it renders an Image with srcSet and sizes attributes defined, which allow for serving different image sizes at various viewport widths for responsive design. The layout attribute is set to 'responsive' to ensure proper scaling of the image.