- From: Sebastian Zartner via GitHub <sysbot+gh@w3.org>
- Date: Tue, 08 Mar 2022 10:18:55 +0000
- To: public-css-archive@w3.org
@booluw wrote:
> Great stuff, but won't this increase the overall parse time of the styles. How is the performance metrics?
As I understand it, the parse time doesn't increase much. It's the generation of the image that slows down its display a bit. I'm not an implementer but I assume the effect to be comparable to applying the existing properties to the element the image is used on.
What I mean by that is that a `filter: blur(10px);` in an `@image` rule would have a similar effect on the performance as a `filter: blur(10px);` on an element.
The difference is that it's just the image that's affected and not a whole element. And the generated image can be cached and reused in different places.
-----
Thinking a bit more about this, I think it makes sense to split the manipulations from the image itself. So we'd have an `@image-manipulation` rule and a corresponding `manipulate-image()` function we put the images through.
Taking @LeaVerou's example this would then look like:
```css
@image-manipulation --foo {
aspect-ratio: 1 / 1;
width: 100vw;
object-fit: cover;
filter: blur(10px);
opacity: .5;
transform: rotate(5deg);
}
```
```
background: manipulate-image(url("foo.png"), --foo);
```
This has the advantage, that authors can easily apply the same manipulations to different images and that existing logic for loading/generating the images can be reused.
So instead of
```css
@image --foo {
src: url("foo.png") 1x
url("foo-2x.png") 2x,
url("foo-print.png") 600dpi;
}
background-image: image(--foo);
```
for providing different image sources you'd write
```css
@image-manipulation --foo {
...
}
background-image: manipulate-image(
image-set( "foo.png" 1x,
"foo-2x.png" 2x,
"foo-print.png" 600dpi
),
--foo
);
```
Sebastian
--
GitHub Notification of comment by SebastianZ
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6807#issuecomment-1061619899 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 8 March 2022 10:18:57 UTC