The `Image` component renders an image for the Storefront API's [Image object](https://shopify.dev/api/storefront/reference/common-objects/image) by using the `data` prop. You can [customize this component](https://shopify.dev/api/hydrogen/components#customizing-hydrogen-components) using passthrough props. Images default to being responsive automatically (`width: 100%, height: auto`), and expect an `aspectRatio` prop, which ensures your image doesn't create any layout shift. For fixed-size images, you can set `width` to an exact value, and a `srcSet` with 1x, 2x, and 3x DPI variants will automatically be generated for you.
import {Image} from '@shopify/hydrogen-react';
// An example query
const IMAGE_QUERY = `#graphql
query {
product {
featuredImage {
altText
url
height
width
}
}
}
`;
export default function ProductImage({product}) {
if (!product.featuredImage) {
return null;
}
return (
<Image
data={product.featuredImage}
sizes="(min-width: 45em) 50vw, 100vw"
aspectRatio="4/5"
/>
);
}
import React from 'react';
import {Image} from '@shopify/hydrogen-react';
import type {Product} from '@shopify/hydrogen-react/storefront-api-types';
// An example query
const IMAGE_QUERY = `#graphql
query {
product {
featuredImage {
altText
url
height
width
}
}
}
`;
export default function ProductImage({product}: {product: Product}) {
if (!product.featuredImage) {
return null;
}
return (
<Image
data={product.featuredImage}
sizes="(min-width: 45em) 50vw, 100vw"
aspectRatio="4/5"
/>
);
}
The aspect ratio of the image, in the format of `width/height`.
The crop position of the image.
Data mapping to the [Storefront API `Image`](https://shopify.dev/docs/api/storefront/2024-10/objects/Image) object. Must be an Image object.
A function that returns a URL string for an image.
An optional prop you can use to change the default srcSet generation behaviour
'center' | 'top' | 'bottom' | 'left' | 'right'
params: LoaderParams
export type Loader = (params: LoaderParams) => string;
The URL param that controls the cropping region
The URL param that controls height
The base URL of the image
The URL param that controls width
The increment by which to increase for each size, in pixels
The number of sizes to generate
The size used for placeholder fallback images
The smallest image size