Images | Yext Hitchhikers Platform

Images from Content

Images stored in the Content are optimized for web experiences. When you upload a photo, Yext automatically uploads it to a CDN so it can be served lightning fast.

Furthermore, the Content will automatically resize images and convert them to the most efficient format (likely webp) so that your website is optimized for SEO and page speed.

Refer to our Image Storing and Serving reference doc for more information on how this works.


Image Component

The best way to display images in Pages is to use the <Image /> component. This React component handles a lot of the tricky pieces of HTML images for you. Specifically, it will:

  • Automatically pull the right-sized image
  • Pass
  • Automatically block space to prevent Cumulative Layout Shift

Here is a simple example of the image component:

import { Image } from "@yext/pages-components"

const template = ({ document } ) > {
  return <div>
    <Image image={document.logo} />
  </div>
}

The only required field on the Image component is the image property. The image needs to be a field from the Content of type image.

Props

Prop Type Default Details
className? string null Override the className on the underlying img
image Image field from Content
width? Number null The absolute width of the image. Only applies if the layout is fixed
height? Number null The absolute height of the image. Only applies if the layout is fixed
aspectRatio? Number null The aspect ratio of the image. Only applies if the layout is aspect
layout? "intrinsic" / "fixed" / "aspect" / "fill" "intrinsic" See below
placeholder? React Component null Pass through React component that is displayed when the image is loading
imgOverrides? Object null Pass through of any props that are on the native HTML img tag. If you override src or srcsets you will probably break it…
style? CSS Object null Pass through to style the image


Layout Property

intrinsic

By default, an image will scale down to fit the width of the container but will not exceed the absolute size of the image. So if the image is 300x400 but the container has a width of 1000px the image will be 300x400.

fixed

This layout will show the image in a fixed size. The width or height must be passed in. If both the width and the height are passed in and the aspect ratio doesn’t match the aspect ratio of the image, the image will be centered. This can be adjusted using the objectFit and objectPosition props of the style prop.

aspect

This layout will show the image in a fixed aspect ratio. You must pass in aspectRatio in order to use this layout. The aspectRatio is a number so for a 2x1 ratio pass in 2.0.

fill

This layout will fill the image to 100% of the container width always. This means the image could exceed the intrinsic width of the underlying image resulting in low image quality.


Examples

Here are some example uses:

{/* Fixed 300px wide image */}
<Image image={document.logo} layout="fixed" width={300}/>

{/* Fixed image */}
<Image image={document.logo} layout="fixed" width={300} height={20}/>

{/* Full Width */}
<Image image={document.logo} layout="fill"/>

{/* Square Image */}
<Image image={document.logo} layout="aspect" aspectRatio={1}/>