From af867f3910ecd8fc04a5337f591d84f03192e3fa Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Fri, 15 Nov 2024 13:29:52 +0000 Subject: [PATCH] feat: experimental responsive images (#12377) * chore: changeset * feat: add experimental responsive images config option (#12378) * feat: add experimental responsive images config option * Apply suggestions from code review Co-authored-by: Sarah Rainsberger * Update config types * Move config into `images` * Move jsdocs --------- Co-authored-by: Sarah Rainsberger * feat: add responsive image component (#12381) * feat: add experimental responsive images config option * Apply suggestions from code review Co-authored-by: Sarah Rainsberger * Update config types * Move config into `images` * Move jsdocs * wip: responsive image component * Improve srcset logic * Improve fixture * Lock * Update styling * Fix style prop handling * Update test (there's an extra style for images now) * Safely access the src props * Remove unused export * Handle priority images * Consolidate styles * Update tests * Comment * Refactor srcset * Avoid dupes of original image * Calculate missing dimensions * Bugfixes * Add tests * Fix test * Correct order * Lint * Fix fspath * Update test * Fix test * Conditional component per flag * Fix class concatenation * Remove logger * Rename helper * Add comments * Format * Fix markdoc tests * Add test for style tag --------- Co-authored-by: Sarah Rainsberger * feat: add crop support to image services (#12414) * wip: add crop support to image services * Add tests * Strip crop attributes * Don't upscale * Format * Get build working properly * Changes from review * Fix jsdoc * feat: add responsive support to picture component (#12423) * feat: add responsive support to picture component * Add picture tests * Fix test * Implement own define vars * Share logic * Prevent extra astro-* class * Use dataset scoping * Revert unit test * Revert "Fix test" This reverts commit f9ec6e2938ff291037234d56f8eec76a93be0c0d. * Changes from review * docs: add docs for responsive images (#12429) * docs: add responsive images flag docs * docs: adds jsdoc for image components * chore: updates from review * Fix jsdoc * Changes from review * Add breakpoints option * typo --------- Co-authored-by: Sarah Rainsberger --- .changeset/proud-terms-swim.md | 5 + packages/astro/client.d.ts | 4 +- packages/astro/components/Image.astro | 29 +- packages/astro/components/Picture.astro | 39 +- packages/astro/components/image.css | 17 + packages/astro/src/assets/consts.ts | 10 +- packages/astro/src/assets/internal.ts | 102 ++- packages/astro/src/assets/layout.ts | 118 ++++ packages/astro/src/assets/services/service.ts | 118 ++-- packages/astro/src/assets/services/sharp.ts | 42 +- packages/astro/src/assets/types.ts | 59 ++ .../astro/src/assets/utils/imageAttributes.ts | 49 ++ .../astro/src/assets/vite-plugin-assets.ts | 4 +- packages/astro/src/core/config/schema.ts | 24 +- .../astro/src/runtime/server/render/util.ts | 3 +- packages/astro/src/types/public/config.ts | 165 +++++ .../test/content-collections-render.test.js | 10 +- packages/astro/test/core-image-layout.test.js | 579 ++++++++++++++++++ .../astro/test/core-image-service.test.js | 206 +++++++ .../core-image-layout/astro.config.mjs | 12 + .../fixtures/core-image-layout/package.json | 8 + .../core-image-layout/src/assets/penguin.jpg | Bin 0 -> 258734 bytes .../core-image-layout/src/assets/walrus.jpg | Bin 0 -> 46343 bytes .../core-image-layout/src/pages/both.astro | 19 + .../core-image-layout/src/pages/build.astro | 66 ++ .../core-image-layout/src/pages/fit.astro | 35 ++ .../core-image-layout/src/pages/index.astro | 56 ++ .../core-image-layout/src/pages/picture.astro | 63 ++ .../core-image-layout/src/pages/remote.astro | 25 + .../fixtures/core-image-layout/tsconfig.json | 11 + packages/astro/test/ssr-assets.test.js | 2 +- .../astro/test/test-remote-image-service.js | 26 + .../units/dev/collections-renderentry.test.js | 8 +- .../markdoc/test/image-assets.test.js | 4 +- .../markdoc/test/propagated-assets.test.js | 12 +- .../mdx/test/css-head-mdx.test.js | 12 +- .../integrations/mdx/test/mdx-math.test.js | 4 +- pnpm-lock.yaml | 6 + 38 files changed, 1845 insertions(+), 107 deletions(-) create mode 100644 .changeset/proud-terms-swim.md create mode 100644 packages/astro/components/image.css create mode 100644 packages/astro/src/assets/layout.ts create mode 100644 packages/astro/src/assets/utils/imageAttributes.ts create mode 100644 packages/astro/test/core-image-layout.test.js create mode 100644 packages/astro/test/core-image-service.test.js create mode 100644 packages/astro/test/fixtures/core-image-layout/astro.config.mjs create mode 100644 packages/astro/test/fixtures/core-image-layout/package.json create mode 100644 packages/astro/test/fixtures/core-image-layout/src/assets/penguin.jpg create mode 100644 packages/astro/test/fixtures/core-image-layout/src/assets/walrus.jpg create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/both.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/build.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/fit.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/index.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/picture.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/src/pages/remote.astro create mode 100644 packages/astro/test/fixtures/core-image-layout/tsconfig.json create mode 100644 packages/astro/test/test-remote-image-service.js diff --git a/.changeset/proud-terms-swim.md b/.changeset/proud-terms-swim.md new file mode 100644 index 000000000000..e33b3d1aff2b --- /dev/null +++ b/.changeset/proud-terms-swim.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Adds experimental reponsive image support diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index 19e10694f082..a2e4cf0eb9be 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -47,7 +47,9 @@ declare module 'astro:assets' { getImage: ( options: import('./dist/assets/types.js').UnresolvedImageTransform, ) => Promise; - imageConfig: import('./dist/types/public/config.js').AstroConfig['image']; + imageConfig: import('./dist/types/public/config.js').AstroConfig['image'] & { + experimentalResponsiveImages: boolean; + }; getConfiguredImageService: typeof import('./dist/assets/index.js').getConfiguredImageService; inferRemoteSize: typeof import('./dist/assets/utils/index.js').inferRemoteSize; Image: typeof import('./components/Image.astro').default; diff --git a/packages/astro/components/Image.astro b/packages/astro/components/Image.astro index 4e55f5608b8e..6e7a83751689 100644 --- a/packages/astro/components/Image.astro +++ b/packages/astro/components/Image.astro @@ -1,7 +1,10 @@ --- -import { type LocalImageProps, type RemoteImageProps, getImage } from 'astro:assets'; +import { type LocalImageProps, type RemoteImageProps, getImage, imageConfig } from 'astro:assets'; +import type { UnresolvedImageTransform } from '../dist/assets/types'; +import { applyResponsiveAttributes } from '../dist/assets/utils/imageAttributes.js'; import { AstroError, AstroErrorData } from '../dist/core/errors/index.js'; import type { HTMLAttributes } from '../types'; +import './image.css'; // The TypeScript diagnostic for JSX props uses the last member of the union to suggest props, so it would be better for // LocalImageProps to be last. Unfortunately, when we do this the error messages that remote images get are complete nonsense @@ -23,7 +26,17 @@ if (typeof props.height === 'string') { props.height = parseInt(props.height); } -const image = await getImage(props); +const layout = props.layout ?? imageConfig.experimentalLayout ?? 'none'; +const useResponsive = imageConfig.experimentalResponsiveImages && layout !== 'none'; + +if (useResponsive) { + // Apply defaults from imageConfig if not provided + props.layout ??= imageConfig.experimentalLayout; + props.fit ??= imageConfig.experimentalObjectFit ?? 'cover'; + props.position ??= imageConfig.experimentalObjectPosition ?? 'center'; +} + +const image = await getImage(props as UnresolvedImageTransform); const additionalAttributes: HTMLAttributes<'img'> = {}; if (image.srcSet.values.length > 0) { @@ -33,6 +46,16 @@ if (image.srcSet.values.length > 0) { if (import.meta.env.DEV) { additionalAttributes['data-image-component'] = 'true'; } + +const attributes = useResponsive + ? applyResponsiveAttributes({ + layout, + image, + props, + additionalAttributes, + }) + : { ...additionalAttributes, ...image.attributes }; --- - +{/* Applying class outside of the spread prevents it from applying unnecessary astro-* classes */} + diff --git a/packages/astro/components/Picture.astro b/packages/astro/components/Picture.astro index 73459db04f37..5d03823790d3 100644 --- a/packages/astro/components/Picture.astro +++ b/packages/astro/components/Picture.astro @@ -1,10 +1,16 @@ --- -import { type LocalImageProps, type RemoteImageProps, getImage } from 'astro:assets'; +import { type LocalImageProps, type RemoteImageProps, getImage, imageConfig } from 'astro:assets'; import * as mime from 'mrmime'; +import { applyResponsiveAttributes } from '../dist/assets/utils/imageAttributes'; import { isESMImportedImage, resolveSrc } from '../dist/assets/utils/imageKind'; import { AstroError, AstroErrorData } from '../dist/core/errors/index.js'; -import type { GetImageResult, ImageOutputFormat } from '../dist/types/public/index.js'; +import type { + GetImageResult, + ImageOutputFormat, + UnresolvedImageTransform, +} from '../dist/types/public/index.js'; import type { HTMLAttributes } from '../types'; +import './image.css'; type Props = (LocalImageProps | RemoteImageProps) & { formats?: ImageOutputFormat[]; @@ -37,6 +43,17 @@ if (scopedStyleClass) { pictureAttributes.class = scopedStyleClass; } } + +const layout = props.layout ?? imageConfig.experimentalLayout ?? 'none'; +const useResponsive = imageConfig.experimentalResponsiveImages && layout !== 'none'; + +if (useResponsive) { + // Apply defaults from imageConfig if not provided + props.layout ??= imageConfig.experimentalLayout; + props.fit ??= imageConfig.experimentalObjectFit ?? 'cover'; + props.position ??= imageConfig.experimentalObjectPosition ?? 'center'; +} + for (const key in props) { if (key.startsWith('data-astro-cid')) { pictureAttributes[key] = props[key]; @@ -53,7 +70,7 @@ const optimizedImages: GetImageResult[] = await Promise.all( format: format, widths: props.widths, densities: props.densities, - }), + } as UnresolvedImageTransform), ), ); @@ -71,7 +88,7 @@ const fallbackImage = await getImage({ format: resultFallbackFormat, widths: props.widths, densities: props.densities, -}); +} as UnresolvedImageTransform); const imgAdditionalAttributes: HTMLAttributes<'img'> = {}; const sourceAdditionalAttributes: HTMLAttributes<'source'> = {}; @@ -85,6 +102,15 @@ if (fallbackImage.srcSet.values.length > 0) { imgAdditionalAttributes.srcset = fallbackImage.srcSet.attribute; } +const attributes = useResponsive + ? applyResponsiveAttributes({ + layout, + image: fallbackImage, + props, + additionalAttributes: imgAdditionalAttributes, + }) + : { ...imgAdditionalAttributes, ...fallbackImage.attributes }; + if (import.meta.env.DEV) { imgAdditionalAttributes['data-image-component'] = 'true'; } @@ -94,7 +120,7 @@ if (import.meta.env.DEV) { { Object.entries(optimizedImages).map(([_, image]) => { const srcsetAttribute = - props.densities || (!props.densities && !props.widths) + props.densities || (!props.densities && !props.widths && !useResponsive) ? `${image.src}${image.srcSet.values.length > 0 ? ', ' + image.srcSet.attribute : ''}` : image.srcSet.attribute; return ( @@ -106,5 +132,6 @@ if (import.meta.env.DEV) { ); }) } - + {/* Applying class outside of the spread prevents it from applying unnecessary astro-* classes */} + diff --git a/packages/astro/components/image.css b/packages/astro/components/image.css new file mode 100644 index 000000000000..d748ba7d5d4f --- /dev/null +++ b/packages/astro/components/image.css @@ -0,0 +1,17 @@ +[data-astro-image] { + width: 100%; + height: auto; + object-fit: var(--fit); + object-position: var(--pos); + aspect-ratio: var(--w) / var(--h); +} +/* Styles for responsive layout */ +[data-astro-image='responsive'] { + max-width: calc(var(--w) * 1px); + max-height: calc(var(--h) * 1px); +} +/* Styles for fixed layout */ +[data-astro-image='fixed'] { + width: calc(var(--w) * 1px); + height: calc(var(--h) * 1px); +} diff --git a/packages/astro/src/assets/consts.ts b/packages/astro/src/assets/consts.ts index 15f9fe46fb24..5fae641ae462 100644 --- a/packages/astro/src/assets/consts.ts +++ b/packages/astro/src/assets/consts.ts @@ -26,4 +26,12 @@ export const VALID_SUPPORTED_FORMATS = [ ] as const; export const DEFAULT_OUTPUT_FORMAT = 'webp' as const; export const VALID_OUTPUT_FORMATS = ['avif', 'png', 'webp', 'jpeg', 'jpg', 'svg'] as const; -export const DEFAULT_HASH_PROPS = ['src', 'width', 'height', 'format', 'quality']; +export const DEFAULT_HASH_PROPS = [ + 'src', + 'width', + 'height', + 'format', + 'quality', + 'fit', + 'position', +]; diff --git a/packages/astro/src/assets/internal.ts b/packages/astro/src/assets/internal.ts index 07584c4e5f3f..3363a5648d3d 100644 --- a/packages/astro/src/assets/internal.ts +++ b/packages/astro/src/assets/internal.ts @@ -2,6 +2,12 @@ import { isRemotePath } from '@astrojs/internal-helpers/path'; import { AstroError, AstroErrorData } from '../core/errors/index.js'; import type { AstroConfig } from '../types/public/config.js'; import { DEFAULT_HASH_PROPS } from './consts.js'; +import { + DEFAULT_RESOLUTIONS, + LIMITED_RESOLUTIONS, + getSizesAttribute, + getWidths, +} from './layout.js'; import { type ImageService, isLocalService } from './services/service.js'; import { type GetImageResult, @@ -32,9 +38,13 @@ export async function getConfiguredImageService(): Promise { return globalThis.astroAsset.imageService; } +type ImageConfig = AstroConfig['image'] & { + experimentalResponsiveImages: boolean; +}; + export async function getImage( options: UnresolvedImageTransform, - imageConfig: AstroConfig['image'], + imageConfig: ImageConfig, ): Promise { if (!options || typeof options !== 'object') { throw new AstroError({ @@ -65,6 +75,10 @@ export async function getImage( src: await resolveSrc(options.src), }; + let originalWidth: number | undefined; + let originalHeight: number | undefined; + let originalFormat: string | undefined; + // Infer size for remote images if inferSize is true if ( options.inferSize && @@ -74,6 +88,9 @@ export async function getImage( const result = await inferRemoteSize(resolvedOptions.src); // Directly probe the image URL resolvedOptions.width ??= result.width; resolvedOptions.height ??= result.height; + originalWidth = result.width; + originalHeight = result.height; + originalFormat = result.format; delete resolvedOptions.inferSize; // Delete so it doesn't end up in the attributes } @@ -88,8 +105,53 @@ export async function getImage( (resolvedOptions.src.clone ?? resolvedOptions.src) : resolvedOptions.src; + if (isESMImportedImage(clonedSrc)) { + originalWidth = clonedSrc.width; + originalHeight = clonedSrc.height; + originalFormat = clonedSrc.format; + } + + if (originalWidth && originalHeight) { + // Calculate any missing dimensions from the aspect ratio, if available + const aspectRatio = originalWidth / originalHeight; + if (resolvedOptions.height && !resolvedOptions.width) { + resolvedOptions.width = Math.round(resolvedOptions.height * aspectRatio); + } else if (resolvedOptions.width && !resolvedOptions.height) { + resolvedOptions.height = Math.round(resolvedOptions.width / aspectRatio); + } else if (!resolvedOptions.width && !resolvedOptions.height) { + resolvedOptions.width = originalWidth; + resolvedOptions.height = originalHeight; + } + } resolvedOptions.src = clonedSrc; + const layout = options.layout ?? imageConfig.experimentalLayout; + + if (imageConfig.experimentalResponsiveImages && layout) { + resolvedOptions.widths ||= getWidths({ + width: resolvedOptions.width, + layout, + originalWidth, + breakpoints: imageConfig.experimentalBreakpoints?.length + ? imageConfig.experimentalBreakpoints + : isLocalService(service) + ? LIMITED_RESOLUTIONS + : DEFAULT_RESOLUTIONS, + }); + resolvedOptions.sizes ||= getSizesAttribute({ width: resolvedOptions.width, layout }); + + if (resolvedOptions.priority) { + resolvedOptions.loading ??= 'eager'; + resolvedOptions.decoding ??= 'sync'; + resolvedOptions.fetchpriority ??= 'high'; + } else { + resolvedOptions.loading ??= 'lazy'; + resolvedOptions.decoding ??= 'async'; + resolvedOptions.fetchpriority ??= 'auto'; + } + delete resolvedOptions.priority; + } + const validatedOptions = service.validateOptions ? await service.validateOptions(resolvedOptions, imageConfig) : resolvedOptions; @@ -100,13 +162,23 @@ export async function getImage( : []; let imageURL = await service.getURL(validatedOptions, imageConfig); + + const matchesOriginal = (transform: ImageTransform) => + transform.width === originalWidth && + transform.height === originalHeight && + transform.format === originalFormat; + let srcSets: SrcSetValue[] = await Promise.all( - srcSetTransforms.map(async (srcSet) => ({ - transform: srcSet.transform, - url: await service.getURL(srcSet.transform, imageConfig), - descriptor: srcSet.descriptor, - attributes: srcSet.attributes, - })), + srcSetTransforms.map(async (srcSet) => { + return { + transform: srcSet.transform, + url: matchesOriginal(srcSet.transform) + ? imageURL + : await service.getURL(srcSet.transform, imageConfig), + descriptor: srcSet.descriptor, + attributes: srcSet.attributes, + }; + }), ); if ( @@ -120,12 +192,16 @@ export async function getImage( propsToHash, originalFilePath, ); - srcSets = srcSetTransforms.map((srcSet) => ({ - transform: srcSet.transform, - url: globalThis.astroAsset.addStaticImage!(srcSet.transform, propsToHash, originalFilePath), - descriptor: srcSet.descriptor, - attributes: srcSet.attributes, - })); + srcSets = srcSetTransforms.map((srcSet) => { + return { + transform: srcSet.transform, + url: matchesOriginal(srcSet.transform) + ? imageURL + : globalThis.astroAsset.addStaticImage!(srcSet.transform, propsToHash, originalFilePath), + descriptor: srcSet.descriptor, + attributes: srcSet.attributes, + }; + }); } return { diff --git a/packages/astro/src/assets/layout.ts b/packages/astro/src/assets/layout.ts new file mode 100644 index 000000000000..adc117f39967 --- /dev/null +++ b/packages/astro/src/assets/layout.ts @@ -0,0 +1,118 @@ +import type { ImageLayout } from './types.js'; + +// Common screen widths. These will be filtered according to the image size and layout +export const DEFAULT_RESOLUTIONS = [ + 640, // older and lower-end phones + 750, // iPhone 6-8 + 828, // iPhone XR/11 + 960, // older horizontal phones + 1080, // iPhone 6-8 Plus + 1280, // 720p + 1668, // Various iPads + 1920, // 1080p + 2048, // QXGA + 2560, // WQXGA + 3200, // QHD+ + 3840, // 4K + 4480, // 4.5K + 5120, // 5K + 6016, // 6K +]; + +// A more limited set of screen widths, for statically generated images +export const LIMITED_RESOLUTIONS = [ + 640, // older and lower-end phones + 750, // iPhone 6-8 + 828, // iPhone XR/11 + 1080, // iPhone 6-8 Plus + 1280, // 720p + 1668, // Various iPads + 2048, // QXGA + 2560, // WQXGA +]; + +/** + * Gets the breakpoints for an image, based on the layout and width + * + * The rules are as follows: + * + * - For full-width layout we return all breakpoints smaller than the original image width + * - For fixed layout we return 1x and 2x the requested width, unless the original image is smaller than that. + * - For responsive layout we return all breakpoints smaller than 2x the requested width, unless the original image is smaller than that. + */ +export const getWidths = ({ + width, + layout, + breakpoints = DEFAULT_RESOLUTIONS, + originalWidth, +}: { + width?: number; + layout: ImageLayout; + breakpoints?: Array; + originalWidth?: number; +}): Array => { + const smallerThanOriginal = (w: number) => !originalWidth || w <= originalWidth; + + // For full-width layout we return all breakpoints smaller than the original image width + if (layout === 'full-width') { + return breakpoints.filter(smallerThanOriginal); + } + // For other layouts we need a width to generate breakpoints. If no width is provided, we return an empty array + if (!width) { + return []; + } + const doubleWidth = width * 2; + // For fixed layout we want to return the 1x and 2x widths. We only do this if the original image is large enough to do this though. + const maxSize = originalWidth ? Math.min(doubleWidth, originalWidth) : doubleWidth; + if (layout === 'fixed') { + return originalWidth && width > originalWidth ? [originalWidth] : [width, maxSize]; + } + + // For responsive layout we want to return all breakpoints smaller than 2x requested width. + if (layout === 'responsive') { + return ( + [ + // Always include the image at 1x and 2x the specified width + width, + doubleWidth, + ...breakpoints, + ] + // Filter out any resolutions that are larger than the double-resolution image or source image + .filter((w) => w <= maxSize) + // Sort the resolutions in ascending order + .sort((a, b) => a - b) + ); + } + + return []; +}; + +/** + * Gets the `sizes` attribute for an image, based on the layout and width + */ +export const getSizesAttribute = ({ + width, + layout, +}: { width?: number; layout?: ImageLayout }): string | undefined => { + if (!width || !layout) { + return undefined; + } + switch (layout) { + // If screen is wider than the max size then image width is the max size, + // otherwise it's the width of the screen + case `responsive`: + return `(min-width: ${width}px) ${width}px, 100vw`; + + // Image is always the same width, whatever the size of the screen + case `fixed`: + return `${width}px`; + + // Image is always the width of the screen + case `full-width`: + return `100vw`; + + case 'none': + default: + return undefined; + } +}; diff --git a/packages/astro/src/assets/services/service.ts b/packages/astro/src/assets/services/service.ts index e22bada898e4..d84ec1728e8e 100644 --- a/packages/astro/src/assets/services/service.ts +++ b/packages/astro/src/assets/services/service.ts @@ -2,7 +2,12 @@ import { AstroError, AstroErrorData } from '../../core/errors/index.js'; import { isRemotePath, joinPaths } from '../../core/path.js'; import type { AstroConfig } from '../../types/public/config.js'; import { DEFAULT_HASH_PROPS, DEFAULT_OUTPUT_FORMAT, VALID_SUPPORTED_FORMATS } from '../consts.js'; -import type { ImageOutputFormat, ImageTransform, UnresolvedSrcSetValue } from '../types.js'; +import type { + ImageFit, + ImageOutputFormat, + ImageTransform, + UnresolvedSrcSetValue, +} from '../types.js'; import { isESMImportedImage } from '../utils/imageKind.js'; import { isRemoteAllowed } from '../utils/remotePattern.js'; @@ -116,8 +121,12 @@ export type BaseServiceTransform = { height?: number; format: string; quality?: string | null; + fit?: ImageFit; + position?: string; }; +const sortNumeric = (a: number, b: number) => a - b; + /** * Basic local service using the included `_image` endpoint. * This service intentionally does not implement `transform`. @@ -219,14 +228,32 @@ export const baseService: Omit = { // Sometimes users will pass number generated from division, which can result in floating point numbers if (options.width) options.width = Math.round(options.width); if (options.height) options.height = Math.round(options.height); - + if (options.layout && options.width && options.height) { + options.fit ??= 'cover'; + delete options.layout; + } + if (options.fit === 'none') { + delete options.fit; + } return options; }, getHTMLAttributes(options) { const { targetWidth, targetHeight } = getTargetDimensions(options); - const { src, width, height, format, quality, densities, widths, formats, ...attributes } = - options; - + const { + src, + width, + height, + format, + quality, + densities, + widths, + formats, + layout, + priority, + fit, + position, + ...attributes + } = options; return { ...attributes, width: targetWidth, @@ -235,12 +262,14 @@ export const baseService: Omit = { decoding: attributes.decoding ?? 'async', }; }, - getSrcSet(options) { - const srcSet: UnresolvedSrcSetValue[] = []; - const { targetWidth } = getTargetDimensions(options); + getSrcSet(options): Array { + const { targetWidth, targetHeight } = getTargetDimensions(options); + const aspectRatio = targetWidth / targetHeight; const { widths, densities } = options; const targetFormat = options.format ?? DEFAULT_OUTPUT_FORMAT; + let transformedWidths = (widths ?? []).sort(sortNumeric); + // For remote images, we don't know the original image's dimensions, so we cannot know the maximum width // It is ultimately the user's responsibility to make sure they don't request images larger than the original let imageWidth = options.width; @@ -250,8 +279,18 @@ export const baseService: Omit = { if (isESMImportedImage(options.src)) { imageWidth = options.src.width; maxWidth = imageWidth; + + // We've already sorted the widths, so we'll remove any that are larger than the original image's width + if (transformedWidths.length > 0 && transformedWidths.at(-1)! > maxWidth) { + transformedWidths = transformedWidths.filter((width) => width <= maxWidth); + // If we've had to remove some widths, we'll add the maximum width back in + transformedWidths.push(maxWidth); + } } + // Dedupe the widths + transformedWidths = Array.from(new Set(transformedWidths)); + // Since `widths` and `densities` ultimately control the width and height of the image, // we don't want the dimensions the user specified, we'll create those ourselves. const { @@ -261,7 +300,10 @@ export const baseService: Omit = { } = options; // Collect widths to generate from specified densities or widths - const allWidths: { maxTargetWidth: number; descriptor: `${number}x` | `${number}w` }[] = []; + let allWidths: Array<{ + width: number; + descriptor: `${number}x` | `${number}w`; + }> = []; if (densities) { // Densities can either be specified as numbers, or descriptors (ex: '1x'), we'll convert them all to numbers const densityValues = densities.map((density) => { @@ -274,51 +316,31 @@ export const baseService: Omit = { // Calculate the widths for each density, rounding to avoid floats. const densityWidths = densityValues - .sort() + .sort(sortNumeric) .map((density) => Math.round(targetWidth * density)); - allWidths.push( - ...densityWidths.map((width, index) => ({ - maxTargetWidth: Math.min(width, maxWidth), - descriptor: `${densityValues[index]}x` as const, - })), - ); - } else if (widths) { - allWidths.push( - ...widths.map((width) => ({ - maxTargetWidth: Math.min(width, maxWidth), - descriptor: `${width}w` as const, - })), - ); + allWidths = densityWidths.map((width, index) => ({ + width, + descriptor: `${densityValues[index]}x`, + })); + } else if (transformedWidths.length > 0) { + allWidths = transformedWidths.map((width) => ({ + width, + descriptor: `${width}w`, + })); } - // Caution: The logic below is a bit tricky, as we need to make sure we don't generate the same image multiple times - // When making changes, make sure to test with different combinations of local/remote images widths, densities, and dimensions etc. - for (const { maxTargetWidth, descriptor } of allWidths) { - const srcSetTransform: ImageTransform = { ...transformWithoutDimensions }; - - // Only set the width if it's different from the original image's width, to avoid generating the same image multiple times - if (maxTargetWidth !== imageWidth) { - srcSetTransform.width = maxTargetWidth; - } else { - // If the width is the same as the original image's width, and we have both dimensions, it probably means - // it's a remote image, so we'll use the user's specified dimensions to avoid recreating the original image unnecessarily - if (options.width && options.height) { - srcSetTransform.width = options.width; - srcSetTransform.height = options.height; - } - } - - srcSet.push({ - transform: srcSetTransform, + return allWidths.map(({ width, descriptor }) => { + const height = Math.round(width / aspectRatio); + const transform = { ...transformWithoutDimensions, width, height }; + return { + transform, descriptor, attributes: { type: `image/${targetFormat}`, }, - }); - } - - return srcSet; + }; + }); }, getURL(options, imageConfig) { const searchParams = new URLSearchParams(); @@ -337,6 +359,8 @@ export const baseService: Omit = { h: 'height', q: 'quality', f: 'format', + fit: 'fit', + position: 'position', }; Object.entries(params).forEach(([param, key]) => { @@ -359,6 +383,8 @@ export const baseService: Omit = { height: params.has('h') ? parseInt(params.get('h')!) : undefined, format: params.get('f') as ImageOutputFormat, quality: params.get('q'), + fit: params.get('fit') as ImageFit, + position: params.get('position') ?? undefined, }; return transform; diff --git a/packages/astro/src/assets/services/sharp.ts b/packages/astro/src/assets/services/sharp.ts index c9df4c269ac6..bbae39eb093a 100644 --- a/packages/astro/src/assets/services/sharp.ts +++ b/packages/astro/src/assets/services/sharp.ts @@ -1,6 +1,6 @@ -import type { FormatEnum, SharpOptions } from 'sharp'; +import type { FitEnum, FormatEnum, SharpOptions } from 'sharp'; import { AstroError, AstroErrorData } from '../../core/errors/index.js'; -import type { ImageOutputFormat, ImageQualityPreset } from '../types.js'; +import type { ImageFit, ImageOutputFormat, ImageQualityPreset } from '../types.js'; import { type BaseServiceTransform, type LocalImageService, @@ -38,6 +38,16 @@ async function loadSharp() { return sharpImport; } +const fitMap: Record = { + fill: 'fill', + contain: 'inside', + cover: 'cover', + none: 'outside', + 'scale-down': 'inside', + outside: 'outside', + inside: 'inside', +}; + const sharpService: LocalImageService = { validateOptions: baseService.validateOptions, getURL: baseService.getURL, @@ -46,7 +56,6 @@ const sharpService: LocalImageService = { getSrcSet: baseService.getSrcSet, async transform(inputBuffer, transformOptions, config) { if (!sharp) sharp = await loadSharp(); - const transform: BaseServiceTransform = transformOptions as BaseServiceTransform; // Return SVGs as-is @@ -62,11 +71,30 @@ const sharpService: LocalImageService = { // always call rotate to adjust for EXIF data orientation result.rotate(); - // Never resize using both width and height at the same time, prioritizing width. - if (transform.height && !transform.width) { - result.resize({ height: Math.round(transform.height) }); + // If `fit` isn't set then use old behavior: + // - Do not use both width and height for resizing, and prioritize width over height + // - Allow enlarging images + + const withoutEnlargement = Boolean(transform.fit); + if (transform.width && transform.height && transform.fit) { + const fit: keyof FitEnum = fitMap[transform.fit] ?? 'inside'; + result.resize({ + width: Math.round(transform.width), + height: Math.round(transform.height), + fit, + position: transform.position, + withoutEnlargement, + }); + } else if (transform.height && !transform.width) { + result.resize({ + height: Math.round(transform.height), + withoutEnlargement, + }); } else if (transform.width) { - result.resize({ width: Math.round(transform.width) }); + result.resize({ + width: Math.round(transform.width), + withoutEnlargement, + }); } if (transform.format) { diff --git a/packages/astro/src/assets/types.ts b/packages/astro/src/assets/types.ts index 8bf7a5959380..ac6df6799158 100644 --- a/packages/astro/src/assets/types.ts +++ b/packages/astro/src/assets/types.ts @@ -6,6 +6,8 @@ export type ImageQualityPreset = 'low' | 'mid' | 'high' | 'max' | (string & {}); export type ImageQuality = ImageQualityPreset | number; export type ImageInputFormat = (typeof VALID_INPUT_FORMATS)[number]; export type ImageOutputFormat = (typeof VALID_OUTPUT_FORMATS)[number] | (string & {}); +export type ImageLayout = 'responsive' | 'fixed' | 'full-width' | 'none'; +export type ImageFit = 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' | (string & {}); export type AssetsGlobalStaticImagesList = Map< string, @@ -86,6 +88,8 @@ export type ImageTransform = { height?: number | undefined; quality?: ImageQuality | undefined; format?: ImageOutputFormat | undefined; + fit?: ImageFit | undefined; + position?: string | undefined; [key: string]: any; }; @@ -155,6 +159,58 @@ type ImageSharedProps = T & { quality?: ImageQuality; } & ( | { + /** + * The layout type for responsive images. Requires the `experimental.responsiveImages` flag to be enabled in the Astro config. + * + * Allowed values are `responsive`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`. + * + * - `responsive` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions. + * - `fixed` - The image will maintain its original dimensions. + * - `full-width` - The image will scale to fit the container, maintaining its aspect ratio, even if that means the image will exceed its original dimensions. + * + * **Example**: + * ```astro + * ... + * ``` + */ + + layout?: ImageLayout; + + /** + * Defines how the image should be cropped if the aspect ratio is changed. Requires the `experimental.responsiveImages` flag to be enabled in the Astro config. + * + * Default is `cover`. Allowed values are `fill`, `contain`, `cover`, `none` or `scale-down`. These behave like the equivalent CSS `object-fit` values. Other values may be passed if supported by the image service. + * + * **Example**: + * ```astro + * ... + * ``` + */ + + fit?: ImageFit; + + /** + * Defines the position of the image when cropping. Requires the `experimental.responsiveImages` flag to be enabled in the Astro config. + * + * The value is a string that specifies the position of the image, which matches the CSS `object-position` property. Other values may be passed if supported by the image service. + * + * **Example**: + * ```astro + * ... + * ``` + */ + + position?: string; + /** + * If true, the image will be loaded with a higher priority. This can be useful for images that are visible above the fold. There should usually be only one image with `priority` set to `true` per page. + * All other images will be lazy-loaded according to when they are in the viewport. + * **Example**: + * ```astro + * ... + * ``` + */ + priority?: boolean; + /** * A list of widths to generate images for. The value of this property will be used to assign the `srcset` property on the final `img` element. * @@ -171,6 +227,9 @@ type ImageSharedProps = T & { */ densities?: (number | `${number}x`)[]; widths?: never; + layout?: never; + fit?: never; + position?: never; } ); diff --git a/packages/astro/src/assets/utils/imageAttributes.ts b/packages/astro/src/assets/utils/imageAttributes.ts new file mode 100644 index 000000000000..1b17e11b6320 --- /dev/null +++ b/packages/astro/src/assets/utils/imageAttributes.ts @@ -0,0 +1,49 @@ +import { toStyleString } from '../../runtime/server/render/util.js'; +import type { AstroConfig } from '../../types/public/config.js'; +import type { GetImageResult, ImageLayout, LocalImageProps, RemoteImageProps } from '../types.js'; + +export function addCSSVarsToStyle( + vars: Record, + styles?: string | Record, +) { + const cssVars = Object.entries(vars) + .filter(([_, value]) => value !== undefined && value !== false) + .map(([key, value]) => `--${key}: ${value};`) + .join(' '); + + if (!styles) { + return cssVars; + } + const style = typeof styles === 'string' ? styles : toStyleString(styles); + + return `${cssVars} ${style}`; +} + +const cssFitValues = ['fill', 'contain', 'cover', 'scale-down']; + +export function applyResponsiveAttributes< + T extends LocalImageProps | RemoteImageProps, +>({ + layout, + image, + props, + additionalAttributes, +}: { + layout: Exclude; + image: GetImageResult; + additionalAttributes: Record; + props: T; +}) { + const attributes = { ...additionalAttributes, ...image.attributes }; + attributes.style = addCSSVarsToStyle( + { + w: image.attributes.width ?? props.width ?? image.options.width, + h: image.attributes.height ?? props.height ?? image.options.height, + fit: cssFitValues.includes(props.fit ?? '') && props.fit, + pos: props.position, + }, + attributes.style, + ); + attributes['data-astro-image'] = layout; + return attributes; +} diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index 037fae725a97..8214ce6657f6 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -115,14 +115,14 @@ export default function assets({ settings }: { settings: AstroSettings }): vite. }, load(id) { if (id === resolvedVirtualModuleId) { - return ` + return /* ts */ ` export { getConfiguredImageService, isLocalService } from "astro/assets"; import { getImage as getImageInternal } from "astro/assets"; export { default as Image } from "astro/components/Image.astro"; export { default as Picture } from "astro/components/Picture.astro"; export { inferRemoteSize } from "astro/assets/utils/inferRemoteSize.js"; - export const imageConfig = ${JSON.stringify(settings.config.image)}; + export const imageConfig = ${JSON.stringify({ ...settings.config.image, experimentalResponsiveImages: settings.config.experimental.responsiveImages })}; // This is used by the @astrojs/node integration to locate images. // It's unused on other platforms, but on some platforms like Netlify (and presumably also Vercel) // new URL("dist/...") is interpreted by the bundler as a signal to include that directory diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 48af43339c96..67228cb0976c 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -95,6 +95,7 @@ export const ASTRO_CONFIG_DEFAULTS = { experimental: { clientPrerender: false, contentIntellisense: false, + responsiveImages: false, }, } satisfies AstroUserConfig & { server: { open: boolean } }; @@ -284,6 +285,10 @@ export const AstroConfigSchema = z.object({ }), ) .default([]), + experimentalLayout: z.enum(['responsive', 'fixed', 'full-width', 'none']).optional(), + experimentalObjectFit: z.string().optional(), + experimentalObjectPosition: z.string().optional(), + experimentalBreakpoints: z.array(z.number()).optional(), }) .default(ASTRO_CONFIG_DEFAULTS.image), devToolbar: z @@ -525,6 +530,10 @@ export const AstroConfigSchema = z.object({ .boolean() .optional() .default(ASTRO_CONFIG_DEFAULTS.experimental.contentIntellisense), + responsiveImages: z + .boolean() + .optional() + .default(ASTRO_CONFIG_DEFAULTS.experimental.responsiveImages), }) .strict( `Invalid or outdated experimental feature.\nCheck for incorrect spelling or outdated Astro version.\nSee https://docs.astro.build/en/reference/configuration-reference/#experimental-flags for a list of all current experiments.`, @@ -688,7 +697,7 @@ export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { 'The value of `outDir` must not point to a path within the folder set as `publicDir`, this will cause an infinite loop', }) .superRefine((configuration, ctx) => { - const { site, i18n, output } = configuration; + const { site, i18n, output, image, experimental } = configuration; const hasDomains = i18n?.domains ? Object.keys(i18n.domains).length > 0 : false; if (hasDomains) { if (!site) { @@ -705,6 +714,19 @@ export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { }); } } + if ( + !experimental.responsiveImages && + (image.experimentalLayout || + image.experimentalObjectFit || + image.experimentalObjectPosition || + image.experimentalBreakpoints) + ) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: + 'The `experimentalLayout`, `experimentalObjectFit`, `experimentalObjectPosition` and `experimentalBreakpoints` options are only available when `experimental.responsiveImages` is enabled.', + }); + } }); return AstroConfigRelativeSchema; diff --git a/packages/astro/src/runtime/server/render/util.ts b/packages/astro/src/runtime/server/render/util.ts index 45c0345e507d..9c771a0de02b 100644 --- a/packages/astro/src/runtime/server/render/util.ts +++ b/packages/astro/src/runtime/server/render/util.ts @@ -28,7 +28,8 @@ export const toAttributeString = (value: any, shouldEscape = true) => const kebab = (k: string) => k.toLowerCase() === k ? k : k.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`); -const toStyleString = (obj: Record) => + +export const toStyleString = (obj: Record) => Object.entries(obj) .filter(([_, v]) => (typeof v === 'string' && v.trim()) || typeof v === 'number') .map(([k, v]) => { diff --git a/packages/astro/src/types/public/config.ts b/packages/astro/src/types/public/config.ts index 1f8318726b19..47d6d2860285 100644 --- a/packages/astro/src/types/public/config.ts +++ b/packages/astro/src/types/public/config.ts @@ -6,6 +6,7 @@ import type { ShikiConfig, } from '@astrojs/markdown-remark'; import type { UserConfig as OriginalViteUserConfig, SSROptions as ViteSSROptions } from 'vite'; +import type { ImageFit, ImageLayout } from '../../assets/types.js'; import type { RemotePattern } from '../../assets/utils/remotePattern.js'; import type { AssetsPrefix } from '../../core/app/types.js'; import type { AstroConfigType } from '../../core/config/schema.js'; @@ -1070,6 +1071,51 @@ export interface ViteUserConfig extends OriginalViteUserConfig { */ remotePatterns?: Partial[]; + + /** + * @docs + * @name image.experimentalLayout + * @type {ImageLayout} + * @default `undefined` + * @description + * The default layout type for responsive images. Can be overridden by the `layout` prop on the image component. + * Requires the `experimental.responsiveImages` flag to be enabled. + * - `responsive` - The image will scale to fit the container, maintaining its aspect ratio, but will not exceed the specified dimensions. + * - `fixed` - The image will maintain its original dimensions. + * - `full-width` - The image will scale to fit the container, maintaining its aspect ratio. + */ + experimentalLayout?: ImageLayout | undefined; + /** + * @docs + * @name image.experimentalObjectFit + * @type {ImageFit} + * @default `"cover"` + * @description + * The default object-fit value for responsive images. Can be overridden by the `fit` prop on the image component. + * Requires the `experimental.responsiveImages` flag to be enabled. + */ + experimentalObjectFit?: ImageFit; + /** + * @docs + * @name image.experimentalObjectPosition + * @type {string} + * @default `"center"` + * @description + * The default object-position value for responsive images. Can be overridden by the `position` prop on the image component. + * Requires the `experimental.responsiveImages` flag to be enabled. + */ + experimentalObjectPosition?: string; + /** + * @docs + * @name image.experimentalBreakpoints + * @type {number[]} + * @default `[640, 750, 828, 1080, 1280, 1668, 2048, 2560] | [640, 750, 828, 960, 1080, 1280, 1668, 1920, 2048, 2560, 3200, 3840, 4480, 5120, 6016]` + * @description + * The breakpoints used to generate responsive images. Requires the `experimental.responsiveImages` flag to be enabled. The full list is not normally used, + * but is filtered according to the source and output size. The defaults used depend on whether a local or remote image service is used. For remote services + * the more comprehensive list is used, because only the required sizes are generated. For local services, the list is shorter to reduce the number of images generated. + */ + experimentalBreakpoints?: number[]; }; /** @@ -1699,6 +1745,125 @@ export interface ViteUserConfig extends OriginalViteUserConfig { * To use this feature with the Astro VS Code extension, you must also enable the `astro.content-intellisense` option in your VS Code settings. For editors using the Astro language server directly, pass the `contentIntellisense: true` initialization parameter to enable this feature. */ contentIntellisense?: boolean; + + /** + * @docs + * @name experimental.responsiveImages + * @type {boolean} + * @default `undefined` + * @version 5.0.0 + * @description + * + * Enables automatic responsive images in your project. + * + * ```js title=astro.config.mjs + * { + * experimental: { + * responsiveImages: true, + * }, + * } + * ``` + * + * When enabled, you can pass a `layout` props to any `` or `` component to create a responsive image. When a layout is set, images have automatically generated `srcset` and `sizes` attributes based on the image's dimensions and the layout type. Images with `responsive` and `full-width` layouts will have styles applied to ensure they resize according to their container. + * + * ```astro title=MyComponent.astro + * --- + * import { Image, Picture } from 'astro:assets'; + * import myImage from '../assets/my_image.png'; + * --- + * A description of my image. + * + * ``` + * This `` component will generate the following HTML output: + * ```html title=Output + * + * A description of my image + * ``` + * + * The following styles are applied to ensure the images resize correctly: + * + * ```css title="Responsive Image Styles" + * [data-astro-image] { + * width: 100%; + * height: auto; + * object-fit: var(--fit); + * object-position: var(--pos); + * aspect-ratio: var(--w) / var(--h) + * } + * + * [data-astro-image=responsive] { + * max-width: calc(var(--w) * 1px); + * max-height: calc(var(--h) * 1px) + * } + * + * [data-astro-image=fixed] { + * width: calc(var(--w) * 1px); + * height: calc(var(--h) * 1px) + * } + * ``` + * You can enable responsive images for all `` and `` components by setting `image.experimentalLayout` with a default value. This can be overridden by the `layout` prop on each component. + * + * **Example:** + * ```js title=astro.config.mjs + * { + * image: { + * // Used for all `` and `` components unless overridden + * experimentalLayout: 'responsive', + * }, + * experimental: { + * responsiveImages: true, + * }, + * } + * ``` + * + * ```astro title=MyComponent.astro + * --- + * import { Image } from 'astro:assets'; + * import myImage from '../assets/my_image.png'; + * --- + * + * This will use responsive layout + * + * This will use full-width layout + * + * This will disable responsive images + * ``` + * + * #### Responsive image properties + * + * These are additional properties available to the `` and `` components when responsive images are enabled: + * + * - `layout`: The layout type for the image. Can be `responsive`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`. + * - `fit`: Defines how the image should be cropped if the aspect ratio is changed. Values match those of CSS `object-fit`. Defaults to `cover`, or the value of `image.experimentalObjectFit` if set. + * - `position`: Defines the position of the image crop if the aspect ratio is changed. Values match those of CSS `object-position`. Defaults to `center`, or the value of `image.experimentalObjectPosition` if set. + * - `priority`: If set, eagerly loads the image. Otherwise images will be lazy-loaded. Use this for your largest above-the-fold image. Defaults to `false`. + * + * The following `` component properties should not be used with responsive images as these are automatically generated: + * + * - `densities` + * - `widths` + * - `sizes` + */ + + responsiveImages?: boolean; }; } diff --git a/packages/astro/test/content-collections-render.test.js b/packages/astro/test/content-collections-render.test.js index 31ed04a15ae5..972e4313a537 100644 --- a/packages/astro/test/content-collections-render.test.js +++ b/packages/astro/test/content-collections-render.test.js @@ -26,7 +26,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Includes styles - assert.equal($('link[rel=stylesheet]').length, 1); + assert.equal($('link[rel=stylesheet]').length, 2); }); it('Excludes CSS for non-rendered entries', async () => { @@ -34,7 +34,7 @@ describe('Content Collections - render()', () => { const $ = cheerio.load(html); // Excludes styles - assert.equal($('link[rel=stylesheet]').length, 0); + assert.equal($('link[rel=stylesheet]').length, 1); }); it('De-duplicates CSS used both in layout and directly in target page', async () => { @@ -110,7 +110,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Includes styles - assert.equal($('link[rel=stylesheet]').length, 1); + assert.equal($('link[rel=stylesheet]').length, 2); }); it('Exclude CSS for non-rendered entries', async () => { @@ -121,7 +121,7 @@ describe('Content Collections - render()', () => { const $ = cheerio.load(html); // Includes styles - assert.equal($('link[rel=stylesheet]').length, 0); + assert.equal($('link[rel=stylesheet]').length, 1); }); it('De-duplicates CSS used both in layout and directly in target page', async () => { @@ -202,7 +202,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Includes styles - assert.equal($('head > style').length, 1); + assert.equal($('head > style').length, 2); assert.ok($('head > style').text().includes("font-family: 'Comic Sans MS'")); }); diff --git a/packages/astro/test/core-image-layout.test.js b/packages/astro/test/core-image-layout.test.js new file mode 100644 index 000000000000..8cbcb8b20fda --- /dev/null +++ b/packages/astro/test/core-image-layout.test.js @@ -0,0 +1,579 @@ +import assert from 'node:assert/strict'; +import { Writable } from 'node:stream'; +import { after, before, describe, it } from 'node:test'; +import * as cheerio from 'cheerio'; +import parseSrcset from 'parse-srcset'; +import { Logger } from '../dist/core/logger/core.js'; +import { testImageService } from './test-image-service.js'; +import { testRemoteImageService } from './test-remote-image-service.js'; +import { loadFixture } from './test-utils.js'; + +describe('astro:image:layout', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + describe('local image service', () => { + /** @type {import('./test-utils').DevServer} */ + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-layout/', + image: { + service: testImageService({ foo: 'bar' }), + domains: ['avatars.githubusercontent.com'], + }, + }); + + devServer = await fixture.startDevServer({}); + }); + + after(async () => { + await devServer.stop(); + }); + + describe('basics', () => { + let $; + before(async () => { + let res = await fixture.fetch('/'); + let html = await res.text(); + $ = cheerio.load(html); + }); + + it('Adds the tag', () => { + let $img = $('#local img'); + assert.equal($img.length, 1); + assert.equal($img.attr('src').startsWith('/_image'), true); + }); + + it('includes lazy loading attributes', () => { + let $img = $('#local img'); + assert.equal($img.attr('loading'), 'lazy'); + assert.equal($img.attr('decoding'), 'async'); + assert.equal($img.attr('fetchpriority'), 'auto'); + }); + + it('includes priority loading attributes', () => { + let $img = $('#local-priority img'); + assert.equal($img.attr('loading'), 'eager'); + assert.equal($img.attr('decoding'), 'sync'); + assert.equal($img.attr('fetchpriority'), 'high'); + }); + + it('has width and height - no dimensions set', () => { + let $img = $('#local img'); + assert.equal($img.attr('width'), '2316'); + assert.equal($img.attr('height'), '1544'); + }); + + it('has proper width and height - only width', () => { + let $img = $('#local-width img'); + assert.equal($img.attr('width'), '350'); + assert.equal($img.attr('height'), '233'); + }); + + it('has proper width and height - only height', () => { + let $img = $('#local-height img'); + assert.equal($img.attr('width'), '300'); + assert.equal($img.attr('height'), '200'); + }); + + it('has proper width and height - has both width and height', () => { + let $img = $('#local-both img'); + assert.equal($img.attr('width'), '300'); + assert.equal($img.attr('height'), '400'); + }); + + it('sets the style', () => { + let $img = $('#local-both img'); + assert.match($img.attr('style'), /--w: 300/); + assert.match($img.attr('style'), /--h: 400/); + assert.equal($img.data('astro-image'), 'responsive'); + }); + + it('sets the style when no dimensions set', () => { + let $img = $('#local img'); + assert.match($img.attr('style'), /--w: 2316/); + assert.match($img.attr('style'), /--h: 1544/); + assert.equal($img.data('astro-image'), 'responsive'); + }); + + it('sets style for fixed image', () => { + let $img = $('#local-fixed img'); + assert.match($img.attr('style'), /--w: 800/); + assert.match($img.attr('style'), /--h: 600/); + assert.equal($img.data('astro-image'), 'fixed'); + }); + + it('sets style for full-width image', () => { + let $img = $('#local-full-width img'); + assert.equal($img.data('astro-image'), 'full-width'); + }); + + it('passes in a parent class', () => { + let $img = $('#local-class img'); + assert.match($img.attr('class'), /green/); + }); + + it('passes in a parent style', () => { + let $img = $('#local-style img'); + assert.match($img.attr('style'), /border: 2px red solid/); + }); + + it('passes in a parent style as an object', () => { + let $img = $('#local-style-object img'); + assert.match($img.attr('style'), /border:2px red solid/); + }); + + it('injects a style tag', () => { + const style = $('style').text(); + assert.match(style, /\[data-astro-image\]/); + }); + }); + + describe('srcsets', () => { + let $; + before(async () => { + let res = await fixture.fetch('/'); + let html = await res.text(); + $ = cheerio.load(html); + }); + + it('has srcset', () => { + let $img = $('#local img'); + assert.ok($img.attr('srcset')); + const srcset = parseSrcset($img.attr('srcset')); + assert.equal(srcset.length, 8); + assert.equal(srcset[0].url.startsWith('/_image'), true); + const widths = srcset.map((x) => x.w); + assert.deepEqual(widths, [640, 750, 828, 1080, 1280, 1668, 2048, 2316]); + }); + + it('constrained - has max of 2x requested size', () => { + let $img = $('#local-constrained img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.equal(widths.at(-1), 1600); + }); + + it('constrained - just has 1x and 2x when smaller than min breakpoint', () => { + let $img = $('#local-both img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [300, 600]); + }); + + it('fixed - has just 1x and 2x', () => { + let $img = $('#local-fixed img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [800, 1600]); + }); + + it('full-width: has all breakpoints below image size, ignoring dimensions', () => { + let $img = $('#local-full-width img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [640, 750, 828, 1080, 1280, 1668, 2048]); + }); + }); + + describe('generated URLs', () => { + let $; + before(async () => { + let res = await fixture.fetch('/fit'); + let html = await res.text(); + $ = cheerio.load(html); + }); + it('generates width and height in image URLs when both are provided', () => { + let $img = $('#local-both img'); + const aspectRatio = 300 / 400; + const srcset = parseSrcset($img.attr('srcset')); + for (const { url } of srcset) { + const params = new URL(url, 'https://example.com').searchParams; + const width = parseInt(params.get('w')); + const height = parseInt(params.get('h')); + assert.equal(width / height, aspectRatio); + } + }); + + it('does not pass through fit and position', async () => { + const fit = $('#fit-cover img'); + assert.ok(!fit.attr('fit')); + const position = $('#position img'); + assert.ok(!position.attr('position')); + }); + + it('sets a default fit of "cover" when no fit is provided', () => { + let $img = $('#fit-default img'); + const srcset = parseSrcset($img.attr('srcset')); + for (const { url } of srcset) { + const params = new URL(url, 'https://example.com').searchParams; + assert.equal(params.get('fit'), 'cover'); + } + }); + + it('sets a fit of "contain" when fit="contain" is provided', () => { + let $img = $('#fit-contain img'); + const srcset = parseSrcset($img.attr('srcset')); + for (const { url } of srcset) { + const params = new URL(url, 'https://example.com').searchParams; + assert.equal(params.get('fit'), 'contain'); + } + }); + + it('sets no fit when fit="none" is provided', () => { + let $img = $('#fit-none img'); + const srcset = parseSrcset($img.attr('srcset')); + for (const { url } of srcset) { + const params = new URL(url, 'https://example.com').searchParams; + assert.ok(!params.has('fit')); + } + }); + }); + + describe('remote images', () => { + describe('srcset', () => { + let $; + before(async () => { + let res = await fixture.fetch('/remote'); + let html = await res.text(); + $ = cheerio.load(html); + }); + it('has srcset', () => { + let $img = $('#constrained img'); + assert.ok($img.attr('srcset')); + const srcset = parseSrcset($img.attr('srcset')); + const widths = srcset.map((x) => x.w); + assert.deepEqual(widths, [640, 750, 800, 828, 1080, 1280, 1600]); + }); + + it('constrained - has max of 2x requested size', () => { + let $img = $('#constrained img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.equal(widths.at(-1), 1600); + }); + + it('constrained - just has 1x and 2x when smaller than min breakpoint', () => { + let $img = $('#small img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [300, 600]); + }); + + it('fixed - has just 1x and 2x', () => { + let $img = $('#fixed img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [800, 1600]); + }); + + it('full-width: has all breakpoints', () => { + let $img = $('#full-width img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [640, 750, 828, 1080, 1280, 1668, 2048, 2560]); + }); + }); + }); + + describe('picture component', () => { + /** Original image dimensions */ + const originalWidth = 2316; + const originalHeight = 1544; + + /** @type {import("cheerio").CheerioAPI} */ + let $; + before(async () => { + let res = await fixture.fetch('/picture'); + let html = await res.text(); + $ = cheerio.load(html); + }); + + describe('basics', () => { + it('creates picture and img elements', () => { + let $picture = $('#picture-density-2-format picture'); + let $img = $('#picture-density-2-format img'); + assert.equal($picture.length, 1); + assert.equal($img.length, 1); + }); + + it('includes source elements for each format', () => { + let $sources = $('#picture-density-2-format source'); + assert.equal($sources.length, 2); // avif and webp formats + + const types = $sources.map((_, el) => $(el).attr('type')).get(); + assert.deepEqual(types.sort(), ['image/avif', 'image/webp']); + }); + + it('generates responsive srcset matching layout breakpoints', () => { + let $source = $('#picture-density-2-format source').first(); + const srcset = parseSrcset($source.attr('srcset')); + + const widths = srcset.map((s) => s.w); + assert.deepEqual(widths, [640, 750, 828, 1080, 1158, 1280, 1668, 2048, 2316]); + }); + + it('has proper width and height attributes', () => { + let $img = $('#picture-density-2-format img'); + // Width is set to half of original in the component + const expectedWidth = Math.round(originalWidth / 2); + const expectedHeight = Math.round(originalHeight / 2); + + assert.equal($img.attr('width'), expectedWidth.toString()); + assert.equal($img.attr('height'), expectedHeight.toString()); + }); + }); + + describe('responsive variants', () => { + it('constrained - has max of 2x requested size', () => { + let $source = $('#picture-constrained source').first(); + const widths = parseSrcset($source.attr('srcset')).map((s) => s.w); + assert.equal(widths.at(-1), 1600); // Max should be 2x the 800px width + + let $img = $('#picture-constrained img'); + const aspectRatio = originalWidth / originalHeight; + assert.equal($img.attr('width'), '800'); + assert.equal($img.attr('height'), Math.round(800 / aspectRatio).toString()); + }); + + it('constrained - just has 1x and 2x when smaller than min breakpoint', () => { + let $source = $('#picture-both source').first(); + const widths = parseSrcset($source.attr('srcset')).map((s) => s.w); + assert.deepEqual(widths, [300, 600]); // Just 1x and 2x for small images + + let $img = $('#picture-both img'); + assert.equal($img.attr('width'), '300'); + assert.equal($img.attr('height'), '400'); + }); + + it('fixed - has just 1x and 2x', () => { + let $source = $('#picture-fixed source').first(); + const widths = parseSrcset($source.attr('srcset')).map((s) => s.w); + assert.deepEqual(widths, [400, 800]); // Fixed layout only needs 1x and 2x + + let $img = $('#picture-fixed img'); + assert.equal($img.attr('width'), '400'); + assert.equal($img.attr('height'), '300'); + }); + + it('full-width: has all breakpoints below image size', () => { + let $source = $('#picture-full-width source').first(); + const widths = parseSrcset($source.attr('srcset')).map((s) => s.w); + assert.deepEqual(widths, [640, 750, 828, 1080, 1280, 1668, 2048]); + }); + }); + + describe('fallback format', () => { + it('uses specified fallback format', () => { + let $img = $('#picture-fallback img'); + const imageURL = new URL($img.attr('src'), 'http://localhost'); + assert.equal(imageURL.searchParams.get('f'), 'jpeg'); + }); + + it('does not add fallbackFormat as an attribute', () => { + let $img = $('#picture-fallback img'); + assert.equal($img.attr('fallbackformat'), undefined); + }); + + it('maintains original aspect ratio', () => { + let $img = $('#picture-fallback img'); + const width = parseInt($img.attr('width')); + const height = parseInt($img.attr('height')); + const imageAspectRatio = width / height; + const originalAspectRatio = originalWidth / originalHeight; + + // Allow for small rounding differences + assert.ok(Math.abs(imageAspectRatio - originalAspectRatio) < 0.01); + }); + }); + + describe('attributes', () => { + it('applies class to img element', () => { + let $img = $('#picture-attributes img'); + assert.ok($img.attr('class').includes('img-comp')); + }); + + it('applies pictureAttributes to picture element', () => { + let $picture = $('#picture-attributes picture'); + assert.ok($picture.attr('class').includes('picture-comp')); + }); + + it('adds inline style attributes', () => { + let $img = $('#picture-attributes img'); + const style = $img.attr('style'); + assert.match(style, /--w:/); + assert.match(style, /--h:/); + }); + + it('passing in style as an object', () => { + let $img = $('#picture-style-object img'); + const style = $img.attr('style'); + assert.match(style, /border:2px red solid/); + }); + + it('passing in style as a string', () => { + let $img = $('#picture-style img'); + const style = $img.attr('style'); + assert.match(style, /border: 2px red solid/); + }); + }); + + describe('MIME types', () => { + it('creates source elements with correct MIME types', () => { + const $sources = $('#picture-mime-types source'); + const types = $sources.map((_, el) => $(el).attr('type')).get(); + + // Should have all specified formats in correct MIME type format + const expectedTypes = [ + // Included twice because we pass jpg and jpeg + 'image/jpeg', + 'image/jpeg', + 'image/png', + 'image/avif', + 'image/webp', + ]; + + assert.deepEqual(types.sort(), expectedTypes.sort()); + }); + + it('uses valid MIME type format', () => { + const $sources = $('#picture-mime-types source'); + const validMimeTypes = [ + 'image/webp', + 'image/jpeg', + 'image/avif', + 'image/png', + 'image/gif', + 'image/svg+xml', + ]; + + $sources.each((_, source) => { + const type = $(source).attr('type'); + assert.ok( + validMimeTypes.includes(type), + `Expected type attribute value to be a valid MIME type: ${type}`, + ); + }); + }); + }); + }); + }); + + describe('remote image service', () => { + /** @type {import('./test-utils').DevServer} */ + let devServer; + /** @type {Array<{ type: any, level: 'error', message: string; }>} */ + let logs = []; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-layout/', + image: { + service: testRemoteImageService({ foo: 'bar' }), + domains: ['images.unsplash.com'], + }, + }); + + devServer = await fixture.startDevServer({ + logger: new Logger({ + level: 'error', + dest: new Writable({ + objectMode: true, + write(event, _, callback) { + logs.push(event); + callback(); + }, + }), + }), + }); + }); + + after(async () => { + await devServer.stop(); + }); + + describe('srcsets', () => { + let $; + before(async () => { + let res = await fixture.fetch('/'); + let html = await res.text(); + $ = cheerio.load(html); + }); + + it('has full srcset', () => { + let $img = $('#local img'); + assert.ok($img.attr('srcset')); + const srcset = parseSrcset($img.attr('srcset')); + assert.equal(srcset.length, 10); + assert.equal(srcset[0].url.startsWith('/_image'), true); + const widths = srcset.map((x) => x.w); + assert.deepEqual(widths, [640, 750, 828, 960, 1080, 1280, 1668, 1920, 2048, 2316]); + }); + + it('constrained - has max of 2x requested size', () => { + let $img = $('#local-constrained img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.equal(widths.at(-1), 1600); + }); + + it('constrained - just has 1x and 2x when smaller than min breakpoint', () => { + let $img = $('#local-both img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [300, 600]); + }); + + it('fixed - has just 1x and 2x', () => { + let $img = $('#local-fixed img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [800, 1600]); + }); + + it('full-width: has all breakpoints below image size, ignoring dimensions', () => { + let $img = $('#local-full-width img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [640, 750, 828, 960, 1080, 1280, 1668, 1920, 2048]); + }); + }); + + describe('remote', () => { + describe('srcset', () => { + let $; + before(async () => { + let res = await fixture.fetch('/remote'); + let html = await res.text(); + $ = cheerio.load(html); + }); + it('has srcset', () => { + let $img = $('#constrained img'); + assert.ok($img.attr('srcset')); + const srcset = parseSrcset($img.attr('srcset')); + assert.equal(srcset.length, 8); + assert.equal(srcset[0].url.startsWith('/_image'), true); + const widths = srcset.map((x) => x.w); + assert.deepEqual(widths, [640, 750, 800, 828, 960, 1080, 1280, 1600]); + }); + + it('constrained - has max of 2x requested size', () => { + let $img = $('#constrained img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.equal(widths.at(-1), 1600); + }); + + it('constrained - just has 1x and 2x when smaller than min breakpoint', () => { + let $img = $('#small img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [300, 600]); + }); + + it('fixed - has just 1x and 2x', () => { + let $img = $('#fixed img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual(widths, [800, 1600]); + }); + + it('full-width: has all breakpoints', () => { + let $img = $('#full-width img'); + const widths = parseSrcset($img.attr('srcset')).map((x) => x.w); + assert.deepEqual( + widths, + [640, 750, 828, 960, 1080, 1280, 1668, 1920, 2048, 2560, 3200, 3840, 4480, 5120, 6016], + ); + }); + }); + }); + }); +}); diff --git a/packages/astro/test/core-image-service.test.js b/packages/astro/test/core-image-service.test.js new file mode 100644 index 000000000000..0c75ed484f69 --- /dev/null +++ b/packages/astro/test/core-image-service.test.js @@ -0,0 +1,206 @@ +import assert from 'node:assert/strict'; +import { after, before, describe, it } from 'node:test'; +import { removeDir } from '@astrojs/internal-helpers/fs'; +import * as cheerio from 'cheerio'; +import { lookup as probe } from '../dist/assets/utils/vendor/image-size/lookup.js'; +import { loadFixture } from './test-utils.js'; + +async function getImageDimensionsFromFixture(fixture, path) { + /** @type { Response } */ + const res = await fixture.fetch(path instanceof URL ? path.pathname + path.search : path); + const buffer = await res.arrayBuffer(); + const { width, height } = await probe(new Uint8Array(buffer)); + return { width, height }; +} + +async function getImageDimensionsFromLocalFile(fixture, path) { + const buffer = await fixture.readFile(path, null); + const { width, height } = await probe(new Uint8Array(buffer)); + return { width, height }; +} + +describe('astro image service', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + describe('dev image service', () => { + /** @type {import('./test-utils').DevServer} */ + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-layout/', + image: { + domains: ['unsplash.com'], + }, + }); + + devServer = await fixture.startDevServer({}); + }); + + after(async () => { + await devServer.stop(); + }); + + describe('generated images', () => { + let $; + let src; + before(async () => { + const res = await fixture.fetch('/fit'); + const html = await res.text(); + $ = cheerio.load(html); + let $img = $('#local-both img'); + src = new URL($img.attr('src'), 'http://localhost').href; + }); + + it('generates correct width and height when both are provided', async () => { + const url = new URL(src); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 300); + assert.equal(height, 400); + }); + + it('generates correct height when only width is provided', async () => { + const url = new URL(src); + url.searchParams.delete('h'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('generates correct width when only height is provided', async () => { + const url = new URL(src); + url.searchParams.delete('w'); + url.searchParams.set('h', '400'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 600); + assert.equal(height, 400); + }); + + it('preserves aspect ratio when fit=inside', async () => { + const url = new URL(src); + url.searchParams.set('fit', 'inside'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('preserves aspect ratio when fit=contain', async () => { + const url = new URL(src); + url.searchParams.set('fit', 'contain'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('preserves aspect ratio when fit=outside', async () => { + const url = new URL(src); + url.searchParams.set('fit', 'outside'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 600); + assert.equal(height, 400); + }); + const originalWidth = 2316; + const originalHeight = 1544; + it('does not upscale image if requested size is larger than original', async () => { + const url = new URL(src); + url.searchParams.set('w', '3000'); + url.searchParams.set('h', '2000'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, originalWidth); + assert.equal(height, originalHeight); + }); + + // To match old behavior, we should upscale if the requested size is larger than the original + it('does upscale image if requested size is larger than original and fit is unset', async () => { + const url = new URL(src); + url.searchParams.set('w', '3000'); + url.searchParams.set('h', '2000'); + url.searchParams.delete('fit'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, 3000); + assert.equal(height, 2000); + }); + + // To match old behavior, we should upscale if the requested size is larger than the original + it('does not upscale is only one dimension is provided and fit is set', async () => { + const url = new URL(src); + url.searchParams.set('w', '3000'); + url.searchParams.delete('h'); + url.searchParams.set('fit', 'cover'); + const { width, height } = await getImageDimensionsFromFixture(fixture, url); + assert.equal(width, originalWidth); + assert.equal(height, originalHeight); + }); + }); + }); + + describe('build image service', () => { + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-layout/', + }); + removeDir(new URL('./fixtures/core-image-ssg/node_modules/.astro', import.meta.url)); + + await fixture.build(); + }); + + describe('generated images', () => { + let $; + before(async () => { + const html = await fixture.readFile('/build/index.html'); + $ = cheerio.load(html); + }); + + it('generates correct width and height when both are provided', async () => { + const path = $('.both img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 300); + assert.equal(height, 400); + }); + + it('generates correct height when only width is provided', async () => { + const path = $('.width-only img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('generates correct width when only height is provided', async () => { + const path = $('.height-only img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 600); + assert.equal(height, 400); + }); + + it('preserves aspect ratio when fit=inside', async () => { + const path = $('.fit-inside img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('preserves aspect ratio when fit=contain', async () => { + const path = $('.fit-contain img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 300); + assert.equal(height, 200); + }); + + it('preserves aspect ratio when fit=outside', async () => { + const path = $('.fit-outside img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, 600); + assert.equal(height, 400); + }); + const originalWidth = 2316; + const originalHeight = 1544; + it('does not upscale image if requested size is larger than original', async () => { + const path = $('.too-large img').attr('src'); + const { width, height } = await getImageDimensionsFromLocalFile(fixture, path); + assert.equal(width, originalWidth); + assert.equal(height, originalHeight); + }); + }); + }); +}); diff --git a/packages/astro/test/fixtures/core-image-layout/astro.config.mjs b/packages/astro/test/fixtures/core-image-layout/astro.config.mjs new file mode 100644 index 000000000000..b32208e5f67a --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/astro.config.mjs @@ -0,0 +1,12 @@ +// @ts-check +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + image: { + experimentalLayout: 'responsive', + }, + + experimental: { + responsiveImages: true + }, +}); diff --git a/packages/astro/test/fixtures/core-image-layout/package.json b/packages/astro/test/fixtures/core-image-layout/package.json new file mode 100644 index 000000000000..ce5b0f966de4 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/core-image-layout", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/core-image-layout/src/assets/penguin.jpg b/packages/astro/test/fixtures/core-image-layout/src/assets/penguin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..73f0ee316c01c36f4dadf6040330e7215686a390 GIT binary patch literal 258734 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�MflliNete2Eav<1 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�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 z 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 O-d3+gs~(H5BmdcZWZ3!u literal 0 HcmV?d00001 diff --git a/packages/astro/test/fixtures/core-image-layout/src/assets/walrus.jpg b/packages/astro/test/fixtures/core-image-layout/src/assets/walrus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6479e9212665d8faa224e2dd64ba192dddd2a4fe GIT binary patch literal 46343 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 z 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 M?2O!)mGXc8*|P2~xBvhE literal 0 HcmV?d00001 diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/both.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/both.astro new file mode 100644 index 000000000000..b729b6a195e0 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/both.astro @@ -0,0 +1,19 @@ +--- +import { Image, Picture } from "astro:assets"; +import penguin from "../assets/penguin.jpg"; +import walrus from "../assets/walrus.jpg"; +--- + + +
+ a penguin +
+
+ +
+ + diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/build.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/build.astro new file mode 100644 index 000000000000..a4a0cc9083da --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/build.astro @@ -0,0 +1,66 @@ +--- +import { Image } from "astro:assets"; +import penguin from "../assets/penguin.jpg"; +--- + +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/fit.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/fit.astro new file mode 100644 index 000000000000..442f4ffb0e17 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/fit.astro @@ -0,0 +1,35 @@ +--- +import { Image } from "astro:assets"; +import penguin from "../assets/penguin.jpg"; +--- + +
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
+
+ a penguin +
diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/index.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/index.astro new file mode 100644 index 000000000000..7fe5b5626e17 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/index.astro @@ -0,0 +1,56 @@ +--- +import { Image, Picture } from "astro:assets"; +import penguin from "../assets/penguin.jpg"; +--- + + +
+ a penguin +
+
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ + diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/picture.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/picture.astro new file mode 100644 index 000000000000..88d0310ef7a3 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/picture.astro @@ -0,0 +1,63 @@ +--- +import { Picture } from "astro:assets"; +import myImage from "../assets/penguin.jpg"; +--- + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + diff --git a/packages/astro/test/fixtures/core-image-layout/src/pages/remote.astro b/packages/astro/test/fixtures/core-image-layout/src/pages/remote.astro new file mode 100644 index 000000000000..60aa916c818e --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/src/pages/remote.astro @@ -0,0 +1,25 @@ +--- +import { Image, Picture } from "astro:assets"; + +const penguin = "https://images.unsplash.com/photo-1670392957807-b0504fc5160a?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" + +--- + + + +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ +
+ a penguin +
+ diff --git a/packages/astro/test/fixtures/core-image-layout/tsconfig.json b/packages/astro/test/fixtures/core-image-layout/tsconfig.json new file mode 100644 index 000000000000..c193287fccd6 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-layout/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "astro/tsconfigs/base", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "~/assets/*": ["src/assets/*"] + }, + }, + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +} diff --git a/packages/astro/test/ssr-assets.test.js b/packages/astro/test/ssr-assets.test.js index d56ad1686b32..d11fc8673d6c 100644 --- a/packages/astro/test/ssr-assets.test.js +++ b/packages/astro/test/ssr-assets.test.js @@ -22,7 +22,7 @@ describe('SSR Assets', () => { const app = await fixture.loadTestAdapterApp(); /** @type {Set} */ const assets = app.manifest.assets; - assert.equal(assets.size, 1); + assert.equal(assets.size, 2); assert.equal(Array.from(assets)[0].endsWith('.css'), true); }); }); diff --git a/packages/astro/test/test-remote-image-service.js b/packages/astro/test/test-remote-image-service.js new file mode 100644 index 000000000000..2534b4085ec5 --- /dev/null +++ b/packages/astro/test/test-remote-image-service.js @@ -0,0 +1,26 @@ +import { fileURLToPath } from 'node:url'; +import { baseService } from '../dist/assets/services/service.js'; + +/** + * stub remote image service + * @param {{ foo?: string }} [config] + */ +export function testRemoteImageService(config = {}) { + return { + entrypoint: fileURLToPath(import.meta.url), + config, + }; +} + +/** @type {import("../dist/types/public/index.js").LocalImageService} */ +export default { + ...baseService, + propertiesToHash: [...baseService.propertiesToHash, 'data-custom'], + getHTMLAttributes(options, serviceConfig) { + options['data-service'] = 'my-custom-service'; + if (serviceConfig.service.config.foo) { + options['data-service-config'] = serviceConfig.service.config.foo; + } + return baseService.getHTMLAttributes(options); + }, +}; diff --git a/packages/astro/test/units/dev/collections-renderentry.test.js b/packages/astro/test/units/dev/collections-renderentry.test.js index 5af4a1b1d105..42e11c2a224f 100644 --- a/packages/astro/test/units/dev/collections-renderentry.test.js +++ b/packages/astro/test/units/dev/collections-renderentry.test.js @@ -101,7 +101,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Rendered the styles - assert.equal($('style').length, 1); + assert.equal($('style').length, 2); }, ); }); @@ -158,7 +158,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Rendered the styles - assert.equal($('style').length, 1); + assert.equal($('style').length, 2); }, ); }); @@ -225,7 +225,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Rendered the styles - assert.equal($('style').length, 1); + assert.equal($('style').length, 2); }, ); }); @@ -291,7 +291,7 @@ describe('Content Collections - render()', () => { assert.equal($('ul li').length, 3); // Rendered the styles - assert.equal($('style').length, 1); + assert.equal($('style').length, 2); }, ); }); diff --git a/packages/integrations/markdoc/test/image-assets.test.js b/packages/integrations/markdoc/test/image-assets.test.js index 0f98af4f1677..793bf1be6de2 100644 --- a/packages/integrations/markdoc/test/image-assets.test.js +++ b/packages/integrations/markdoc/test/image-assets.test.js @@ -38,7 +38,7 @@ describe('Markdoc - Image assets', () => { const { document } = parseHTML(html); assert.match( document.querySelector('#relative > img')?.src, - /\/_image\?href=.*%2Fsrc%2Fassets%2Frelative%2Foar.jpg%3ForigWidth%3D420%26origHeight%3D630%26origFormat%3Djpg&f=webp/, + /\/_image\?href=.*%2Fsrc%2Fassets%2Frelative%2Foar.jpg%3ForigWidth%3D420%26origHeight%3D630%26origFormat%3Djpg&w=420&h=630&f=webp/, ); }); @@ -48,7 +48,7 @@ describe('Markdoc - Image assets', () => { const { document } = parseHTML(html); assert.match( document.querySelector('#alias > img')?.src, - /\/_image\?href=.*%2Fsrc%2Fassets%2Falias%2Fcityscape.jpg%3ForigWidth%3D420%26origHeight%3D280%26origFormat%3Djpg&f=webp/, + /\/_image\?href=.*%2Fsrc%2Fassets%2Falias%2Fcityscape.jpg%3ForigWidth%3D420%26origHeight%3D280%26origFormat%3Djpg&w=420&h=280&f=webp/, ); }); diff --git a/packages/integrations/markdoc/test/propagated-assets.test.js b/packages/integrations/markdoc/test/propagated-assets.test.js index a0768448f1d9..5fe7369ceb52 100644 --- a/packages/integrations/markdoc/test/propagated-assets.test.js +++ b/packages/integrations/markdoc/test/propagated-assets.test.js @@ -45,12 +45,12 @@ describe('Markdoc - propagated assets', () => { let styleContents; if (mode === 'dev') { const styles = stylesDocument.querySelectorAll('style'); - assert.equal(styles.length, 1); - styleContents = styles[0].textContent; + assert.equal(styles.length, 2); + styleContents = styles[1].textContent; } else { const links = stylesDocument.querySelectorAll('link[rel="stylesheet"]'); - assert.equal(links.length, 1); - styleContents = await fixture.readFile(links[0].href); + assert.equal(links.length, 2); + styleContents = await fixture.readFile(links[1].href); } assert.equal(styleContents.includes('--color-base-purple: 269, 79%;'), true); }); @@ -58,10 +58,10 @@ describe('Markdoc - propagated assets', () => { it('[fails] Does not bleed styles to other page', async () => { if (mode === 'dev') { const styles = scriptsDocument.querySelectorAll('style'); - assert.equal(styles.length, 0); + assert.equal(styles.length, 1); } else { const links = scriptsDocument.querySelectorAll('link[rel="stylesheet"]'); - assert.equal(links.length, 0); + assert.equal(links.length, 1); } }); }); diff --git a/packages/integrations/mdx/test/css-head-mdx.test.js b/packages/integrations/mdx/test/css-head-mdx.test.js index 96ee7c9001b3..d55e2f52ac4e 100644 --- a/packages/integrations/mdx/test/css-head-mdx.test.js +++ b/packages/integrations/mdx/test/css-head-mdx.test.js @@ -28,7 +28,7 @@ describe('Head injection w/ MDX', () => { const { document } = parseHTML(html); const links = document.querySelectorAll('head link[rel=stylesheet]'); - assert.equal(links.length, 1); + assert.equal(links.length, 2); const scripts = document.querySelectorAll('script[type=module]'); assert.equal(scripts.length, 1); @@ -39,7 +39,7 @@ describe('Head injection w/ MDX', () => { const { document } = parseHTML(html); const links = document.querySelectorAll('head link[rel=stylesheet]'); - assert.equal(links.length, 1); + assert.equal(links.length, 2); }); it('injects content from a component using Content#render()', async () => { @@ -47,7 +47,7 @@ describe('Head injection w/ MDX', () => { const { document } = parseHTML(html); const links = document.querySelectorAll('head link[rel=stylesheet]'); - assert.equal(links.length, 1); + assert.equal(links.length, 2); const scripts = document.querySelectorAll('script[type=module]'); assert.equal(scripts.length, 1); @@ -67,7 +67,7 @@ describe('Head injection w/ MDX', () => { const $ = cheerio.load(html); const headLinks = $('head link[rel=stylesheet]'); - assert.equal(headLinks.length, 1); + assert.equal(headLinks.length, 2); const bodyLinks = $('body link[rel=stylesheet]'); assert.equal(bodyLinks.length, 0); @@ -79,7 +79,7 @@ describe('Head injection w/ MDX', () => { const $ = cheerio.load(html); const headLinks = $('head link[rel=stylesheet]'); - assert.equal(headLinks.length, 1); + assert.equal(headLinks.length, 2); const bodyLinks = $('body link[rel=stylesheet]'); assert.equal(bodyLinks.length, 0); @@ -92,7 +92,7 @@ describe('Head injection w/ MDX', () => { const $ = cheerio.load(html); const headLinks = $('head link[rel=stylesheet]'); - assert.equal(headLinks.length, 1); + assert.equal(headLinks.length, 2); const bodyLinks = $('body link[rel=stylesheet]'); assert.equal(bodyLinks.length, 0); diff --git a/packages/integrations/mdx/test/mdx-math.test.js b/packages/integrations/mdx/test/mdx-math.test.js index 5352eca68c8b..a68c5cbe745c 100644 --- a/packages/integrations/mdx/test/mdx-math.test.js +++ b/packages/integrations/mdx/test/mdx-math.test.js @@ -28,7 +28,7 @@ describe('MDX math', () => { const mjxContainer = document.querySelector('mjx-container[jax="SVG"]'); assert.notEqual(mjxContainer, null); - const mjxStyle = document.querySelector('style').innerHTML; + const mjxStyle = document.querySelectorAll('style')[1].innerHTML; assert.equal( mjxStyle.includes('mjx-container[jax="SVG"]'), true, @@ -62,7 +62,7 @@ describe('MDX math', () => { const mjxContainer = document.querySelector('mjx-container[jax="CHTML"]'); assert.notEqual(mjxContainer, null); - const mjxStyle = document.querySelector('style').innerHTML; + const mjxStyle = document.querySelectorAll('style')[1].innerHTML; assert.equal( mjxStyle.includes('mjx-container[jax="CHTML"]'), true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bae575df25a4..dfe8af20346a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2719,6 +2719,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/core-image-layout: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/core-image-remark-imgattr: dependencies: astro: