[wp-trac] [WordPress Trac] #35093: Replace static with Dynamic Image Sizes for inserted images

WordPress Trac noreply at wordpress.org
Tue Dec 15 02:27:37 UTC 2015


#35093: Replace static with Dynamic Image Sizes for inserted images
----------------------------+-----------------------------
 Reporter:  mor10           |      Owner:
     Type:  enhancement     |     Status:  new
 Priority:  normal          |  Milestone:  Awaiting Review
Component:  Media           |    Version:  trunk
 Severity:  normal          |   Keywords:
  Focuses:  administration  |
----------------------------+-----------------------------
 == Proposal ==
 Change the behavior of the add image size selector from hard-coding
 `width` and `height` attributes to adding size-based classes to the
 `<img>` element to allow theme authors to define what Thumbnail, Small,
 Medium, and Large means. This creates Dynamic Image Sizes that change and
 adapt when a site owner switches from one theme to the next.

 === Practical Implementation ===
 - Create new theme feature for dynamic-images
 - When an image size is selected (eg. "medium"), the a class formatted as
 `size-[selected-size]`, (eg. `size-medium`) is added to the `<img>` tag.
 - Theme developers add CSS rules for `.size-thumbnail`, `.size-small`,
 `.size-medium`, and `.size-large`. These rules  can define whatever
 parameters the theme developer desires, but must include either `width`,
 `max-width` or both. Theme developers are also free to use media queries
 to change this behavior depending on viewport width.
 - '''Ideal, optional:''' Remove the `width` and `height` attributes from
 `<img>` markup as they serve no  practical purpose once RICG and class-
 based sizing is implemented.

 == Rationale ==
 With Responsive Images in core, the modality of the image size selector no
 longer makes sense. The image size selector hard-codes pixel sizes to
 images added in posts and pages based on the physical width and height of
 the image file, but with the new srcset + sizes markup, these image sizes
 no longer have a real world rationale as the browser selects the image
 source dynamically.

 I propose a change in what happens when an image size (thumbnail, small,
 medium, large, original) is selected from a pre-defined pixel size to a
 dynamic size defined by the current active theme.

 This would allow theme designers and developers to add image sizes as part
 of their art direction and design, and displayed image sizes would change
 depending on the current active theme without the site owner having to
 make changes to individual images to make them fit.

 In simple terms, move from this:

 [[Image(http://mor10.com/wp-content/uploads/2015/06/Slide1-700x394.png)]]

 to this:

 [[Image(http://mor10.com/wp-content/uploads/2015/06/Slide2-700x394.png)]]

 == Backwards Compatibility ==
 This has the potential of being a breaking change. The most obvious
 solution would be to make dynamic image sizes a `theme feature` along the
 lines of html5 comments and title-tag:

 {{{ add_theme_support( 'dynamic-images' ); }}}

 == Practical Application ==
 This change would work within the existing framework of how WordPress adds
 images because the only practical change in the actual post/page is the
 addition of a new class in the `<img>` tag.

 To apply to existing posts and pages, the classes could be added by
 piggybacking off the dynamic rewriting of the `<img>` element done by
 Responsive Images.

 == Challenges ==
 - Some authors physically resize images to fit a specific display. This in
 itself is a problem because it counteracts the responsive nature of the
 web, but it is a fact that must be considered. An implementation of
 Dynamic Image Sizes could cause some authors to be frustrated that their
 carefully sized images suddenly change display. This would likely only
 happen on old static-width sites as properly built themes with RWD would
 already override such forced sizing except for the full-width versions of
 images.
 - Currently an author can use click-and-drag behaviors to resize an image
 in the editor. This would be hard to replicate using the proposed CSS
 model, but is not impossible: One solution could be generating inline CSS
 for custom image sizes, and possibly adding a .size-custom class to the
 `<img>` tag. Another clearner option could be to remove the click-and-drag
 resizing option and instead provide percentage-based options. When
 discussing this it is important to note that such forced click-and-drag
 resizing goes against the natural behavior of images in a mobile-first RWD
 environments.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/35093>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list