-
Notifications
You must be signed in to change notification settings - Fork 100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improving the calculation of image sizes attributes #760
Comments
I've updated the description on this issue to better outline the scope of this project and a high-level roadmap of tasks to be worked on related to this effort, which I plan to convert into standalone issues. As we begin work on improving the default |
UpdateI've updated the description to start to better prioritize the existing issues for improving the Currently, we have all work related to the improved |
For classic themesWhen we implement the accurate sizes for classic theme we can use POC - https://github.com/Automattic/jetpack/blob/99baf6dfba29881377085a9ed375f611bfe60ac1/projects/packages/image-cdn/src/class-image-cdn.php#L1039-L1061 add_filter( 'wp_calculate_image_sizes', 'filter_sizes', 1, 2 ); // Early so themes can still easily filter.
function filter_sizes( $sizes, $size ) {
if ( wp_is_block_theme() ) {
return $sizes;
}
if ( ! doing_filter( 'the_content' ) ) {
return $sizes;
}
$content_width = ( isset( $GLOBALS['content_width'] ) && is_numeric( $GLOBALS['content_width'] ) )
? $GLOBALS['content_width']
: false;
if ( ! $content_width ) {
$content_width = 1000; // Jetpack use these number ,we can update it.
}
if ( ( is_array( $size ) && $size[0] < $content_width ) ) {
return $sizes;
}
return sprintf( '(max-width: %1$dpx) 100vw, %1$dpx', $content_width );
} |
Overview
Originally introduced in WordPress 4.4, at the time WordPress had almost no way of knowing the intended layout of an image and therefore only came with a reasonable default value, intended to be modified by theme developers.
Since that time, enhancements to WordPress have been made, including the implementation of a declarative way for themes to control layout and alignments with
theme.json
, which provides the ability to more accurately predict the layout width of images before CSS is applied.Paired with the addition of ”auto sizes” for lazy-loaded images to the HTML specification, we can now improve the sizes attribute authored by WordPress to provide much more accurate layout information.
Project Overview
Goals
layout.contentSize
andlayout.wideSize
properties fromtheme.json
in the default sizes attribute for images to improve accuracy.theme.json
.Nice to have
Non-goals
sizes
attribute needs to be 100% accurate at all viewport sizes for a theme.srcset
attribute to provide more granular sources for clients to request at different viewport widths.Roadmap
This project is broken into the following two epics, with milestones for each epic describing major objectives that could be published as part of a plugin release version. This roadmap will be updated over time.
Improving the sizes calculation
This epic is broken into logical milestones to validate the use of theme.json data in the API before proposing needed enhancements to that API, and then rolling out enhancements to classic themes in order to support the largest number of sites.
sizes
algorithm #1187sizes
values #1251sizes
for left/right/center alignment #1289sizes
values #1240wp_calculate_image_sizes
to Reflect Changes in sizes attribute #1381Implement auto-sizes for lazy loaded images
This epic outlines the phases of development planned to implement the auto-sizes spec in WordPress.
Update the implementation based on changes to the spec as it is being implemented by browsers (related issue)not applicable.The text was updated successfully, but these errors were encountered: