
Consider using CSS to give the image's parent element space on the page, then using the objectFit property with fill, contain, or cover, along with the objectPosition property to define how the image should occupy that space. The fill layout mode allows your image to be sized by its parent element. If you are accessing images from a source without knowledge of the images' sizes, there are several things you can do: What if I don't know the size of my images? Implicitly, by using layout="fill" which causes the image to expand to fill its parent element.Explicitly, by including a width and height property.This allows the browser to reserve precisely enough space for the image before it loads.īecause next/image is designed to guarantee good performance results, it cannot be used in a way that will contribute to layout shift, and must be sized in one of three ways: The way to avoid image-based layout shifts is to always size your images. This performance problem is so annoying to users that it has its own Core Web Vital, called Cumulative Layout Shift. One of the ways that images most commonly hurt performance is through layout shift, where the image pushes other elements around on the page as it loads in. See more about priority in the next/image component documentation. import Image from 'next/image' import profilePic from './public/me.png' function Home ( ) These values are used to prevent Cumulative Layout Shift while your image is loading. Next.js will automatically determine the width and height of your image based on the imported file. The import must be static so it can be analyzed at build time. webp files: import profilePic from './public/me.png'ĭynamic await import() or require() are not supported. Now, you can define the src for your image (either local or remote). To add an image to your application, import the next/image component: import Image from 'next/image'Īlternatively, you can import next/future/image if you need a component much closer to the native element: import Image from 'next/future/image'

Asset Flexibility: On-demand image resizing, even for images stored on remote servers.Faster Page Loads: Images are only loaded when they enter the viewport, with optional blur-up placeholders.Visual Stability: Prevent Cumulative Layout Shift automatically.

