<Image />
A standard component that generates a <img> element.
- Automatically switches between foreground mode, where elements are placed independently, and background mode, where elements are contained within a container element, based on the presence of a slot.
- Supports art direction using the
sizesattribute andsrcsetattribute of the<img>element. - Placeholder uses the
background-imageorbackground-colorof the<img>element.- Does not support animations.
Foreground mode
Section titled “Foreground mode”---import Image from 'astro-image-processor/components';---
<Image src="/src/assets/images/image.png" alt="Alt text" />Background mode
Section titled “Background mode”---import Image from 'astro-image-processor/components';---
<Image src="/src/assets/images/image.png" alt="Alt text"> <p>slot</p></Image>Properties
Section titled “Properties”Sets the image to use
- Type:
string - Required
- Remote file
- Considered a remote file if it starts with
http.
- Considered a remote file if it starts with
- Data URL
- Considered a Data URL if it starts with
data:.
- Considered a Data URL if it starts with
- Local file
- If it starts with
/@fs, replace/@fs/withfile://and process thenew URL(src).pathname. - If it starts with
/${assetsDirName}/, treat it as a root-relative path fromoutDir. - Otherwise, treat it as a root-relative path from
rootDir.
- If it starts with
- Recommended to specify as a root-relative path from the project root (
rootDir) (e.g.,/src/assets/images/image.png).- You can also specify it in the form of imported image with
src={importedImage.src}, but this is not recommended due to double caching with this integration andastro:assets.
- You can also specify it in the form of imported image with
The value of the alt attribute of the <img> element.
- Type:
string - Required
The value of the width attribute of the <img> element.
- Type:
number - When using
densities, the value is interpreted as corresponding to1x. - Note that not setting this can lead to “behavior that is technically correct but contrary to user expectations”.
height
Section titled “height”The value of the height attribute of the <img> element.
- Type:
number
densities
Section titled “densities”Sets the x descriptors used in the srcset attribute of the <img> element.
- Type:
number[] - Example:
[1, 2, 3] - If
widthis not set, the original size of the image is interpreted as the maximum scale.
widths
Section titled “widths”Sets the w descriptors used in the srcset attribute of the <img> element.
- Type:
number[] - Example:
[1000, 2000, 3000]
Sets the sizes attribute of the <img> element.
- Type:
string | (resolvedWidths: number[], resolvedDensities: number[]) => string - Default: Sets according to the
layoutas follows:fixed:${resolvedWidth}pxfillorfullWidth:100vwconstrainedorundefined:(min-width: ${resolvedWidth}px) ${resolvedWidth}px, 100vw
- Reference: sizes (MDN)
resolvedWidthswill be the final resolved variations of image widths.- Even if
densitiesis used, it will be the width value.
- Even if
resolvedWidthis the value of thewidthattribute of the<img>element.
placeholder
Section titled “placeholder”Selects the type of the placeholder.
- Type:
"blurred" | "dominantColor" | null - Default:
blurred blurred- Uses the image processed by the sharp instance specified in
blurProcessor. - The image is converted to Base64 and directly written in CSS as a Data URL.
- By default, “resized to 20px width and compressed with the lowest quality WebP” is used.
- Uses the image processed by the sharp instance specified in
dominantColor- Uses a single color.
- By default, uses the color obtained from sharp’s
stats().dominant. - If the
placeholderColorproperty is set, uses the color specified by theplaceholderColorproperty.
placeholderColor
Section titled “placeholderColor”Sets the color to use when placeholder is dominantColor.
- Type:
string - Example:
"#333","hsl(150, 30%, 60%)","var(--some-color)" - If this is not set,
sharp().stats().dominantis used. - Reference: color (MDN)
blurProcessor
Section titled “blurProcessor”Sharp instance used to generate the blurred placeholder image.
- Type:
Sharp - Default:
sharp().resize(20).webp({ quality: 1 })
upscale
Section titled “upscale”Selects how to handle image upscaling required by densities or widths.
- Type:
"never" | "always" | "original" - Default:
never never: Ignore upscaling requests.always: Upscale if required.original: Ignore upscaling requests and add the original size of the image.
layout
Section titled “layout”Selects the layout of the image.
- Type:
"constrained" | "fixed" | "fullWidth" | "fill" | null - Default:
constrained - If set to
constrainedorfixed, the CSS propertywidthof the<img>element is set to the resolved value as scoped style. - The global class
globalClassNames.layout[layout]is added to the<img>element. - The
<GlobalStyles>component applies the following styles:constrained:max-width: 100%; height: auto;fixed: N/AfullWidth:width: 100%; height: auto;fill:width: 100%; height: 100%;
- Customizable by defining your own global CSS.
- Use with
enforceAspectRatioif you want to fix the aspect ratio.
objectFit
Section titled “objectFit”Selects the CSS property object-fit for the <img> element.
- Type:
"fill" | "contain" | "cover" | "none" | "scale-down" - Apply through scoped CSS.
- If
placeholderis set toblurred, applies to the placeholder usingbackground-size.scale-downfalls back tocontain.
objectPosition
Section titled “objectPosition”Selects the CSS property object-position for the <img> element.
- Type:
string - Apply through scoped CSS.
- If
placeholderis set toblurred, applies to the placeholder usingbackground-position.
backgroundSize
Section titled “backgroundSize”Selects the CSS property background-size for the placeholder.
- Type:
"cover" | "contain" | "auto" | string | null - Reference: background-size (MDN)
- Used if
placeholderisblurred. - If
backgroundSizeis not set andobjectFitis set, the value ofobjectFitに準じた値が使用される - Apply through scoped CSS.
backgroundPosition
Section titled “backgroundPosition”Sets the CSS property background-position for the placeholder.
- Type:
string | null - Reference: background-position (MDN)
- Used if
placeholderisblurred. - If
backgroundPositionis not set andobjectPositionis set, the value according toobjectFitis used. - Both
backgroundPositionandobjectPositionare not set,50% 50%is used.- It is the default value of
object-position.
- It is the default value of
- Apply through scoped CSS.
enforceAspectRatio
Section titled “enforceAspectRatio”Applies the CSS property aspect-ratio to the <picture> and <img> elements.
- Type:
boolean - Default:
false - Sets the CSS property
aspect-ratioto${width} / ${height}based on the final resolvedwidthandheightvalues of the<img>element. - Apply through scoped CSS.
asBackground
Section titled “asBackground”Enforce background mode.
- Type:
boolean - Default:
false - If a slot exists in the component, it will always be in background mode.
preload
Section titled “preload”Generates a <link rel="preload"> for the specified image format and adds it to the <head> element.
- Type:
"jpeg" | "png" | "avif" | "webp" | "gif" - Due to CSS specifications, multiple formats cannot be specified.
processor
Section titled “processor”Sharp instance used for image editing.
- Type:
Sharp | Sharp[]
profile
Section titled “profile”Assigns an individual identifier name as a string for the image editing content.
- Type:
string
format
Section titled “format”Selects the output format.
- Type:
"jpeg" | "png" | "avif" | "webp" | "gif" - Default:
webp
formatOptions
Section titled “formatOptions”Settings for the output formats.
- Type:
{ jpeg: JpegOptions, png: PngOptions, webp: WebpOptions, avif: AvifOptions, gif: GifOptions }(sharp) - Default: sharp standard settings
tagName
Section titled “tagName”HTML tag of the container element in background mode.
- Type:
HTMLTag(Astro) - Default:
div - Automatic type completion is not provided by this value.
containerAttributes
Section titled “containerAttributes”- Type:
HTMLAttributes<"div"> | HTMLAttributes<"a"> | Record<string, unknown> - Only effective in background mode.
- Passed directly to the container element.
minAge
Section titled “minAge”Minimum cache duration for remote files (milliseconds).
- Type:
number - Overrides the specification in HTTP headers.
maxAge
Section titled “maxAge”Maximum cache duration for remote files (milliseconds).
- Type:
number - Overrides the specification in HTTP headers.
crossOrigin
Section titled “crossOrigin”Equivalent to crossorigin of the <img> element.
- Type:
"anonymous" | "use-credentials" | "" | undefined | null - Reference: crossorigin (MDN)
- If the component has a
crossoriginproperty, it takes precedence.
Others
Section titled “Others”- All properties unrelated to this integration will be passed to the
<img>element.- Accepted as
HTMLAttributes<"img">, including those specific to Astro.
- Accepted as
- Data attributes
data-astro-cid-[hash]or class.astro-[hash]generated by Astro’s scoped styles will be inherited by the<picture>and<img>elements.- In background mode, they will also be inherited by the container element.