w3c / csswg-drafts

CSS Working Group Editor Drafts
https://drafts.csswg.org/
Other
4.43k stars 656 forks source link

[css-images] image-set() syntax for color scheme specifc images #9470

Open nt1m opened 11 months ago

nt1m commented 11 months ago

This bit of code from @emilio in https://phabricator.services.mozilla.com/D190919 :

    &[progress] {
      list-style-image: image-set(
        url("chrome://browser/skin/tabbrowser/tab-loading.png"),
        url("chrome://browser/skin/tabbrowser/tab-loading@2x.png") 2x
      );

      /* FIXME: This should probably also apply in regular dark mode? */
      :root[lwt-popup="dark"] &[progress]:not([selected]) {
        list-style-image: image-set(
          url("chrome://browser/skin/tabbrowser/tab-loading-inverted.png"),
          url("chrome://browser/skin/tabbrowser/tab-loading-inverted@2x.png") 2x
        );
      }

inspired me to suggest this. It would be nice if image-set() could also select based on color-scheme.

Syntax to be bikeshed, but it would be nice if you could write this:

      list-style-image: image-set(
        url("chrome://browser/skin/tabbrowser/tab-loading.png") light,
        url("chrome://browser/skin/tabbrowser/tab-loading@2x.png") light 2x,
        url("chrome://browser/skin/tabbrowser/tab-loading-inverted.png") dark,
        url("chrome://browser/skin/tabbrowser/tab-loading-inverted@2x.png") dark 2x
      );
emilio commented 11 months ago

Imo just making light-dark() also work for images would be a bit more consistent. But this is fine too.