14:57:55 RRSAgent has joined #css 14:58:00 logging to https://www.w3.org/2024/10/30-css-irc 14:58:00 RRSAgent, make logs Public 14:58:01 Meeting: Cascading Style Sheets (CSS) Working Group Teleconference 15:01:08 noamr has joined #css 15:01:12 present+ 15:01:31 present+ 15:03:49 castastrophe has joined #css 15:04:01 present+ 15:04:57 khush has joined #css 15:05:05 ScribeNick: bramus 15:05:38 scribe+ 15:05:47 Topic: View Transitions 15:05:52 Subtopic: [css-view-transitions-2] Allow an auto-generated `view-transition-name` that doesn't default to ID 15:06:16 bramus: This issue is about allowing an auto view-transition-name to be generated by specifying a keyword 15:06:33 bramus: a number of keywords suggested, from-element, per-element, self, auto, auto-id 15:07:10 bramus: I asked authors "which keyword conveys using ID and falling back to auto-generated" and "which keyword conveys automatically generated" 15:07:27 bramus: when I asked which is "automatically generated", they picked "auto" 15:07:42 bramus: when I asked about the ID and fallback, the responses ... 15:08:00 bramus: We were thinking 'from-element' but authors expected 'auto' for "automatically generated". 15:08:17 bramus: we could meet developers by reverting previous resolution about auto reading ID and falling back 15:08:27 bramus: and come up with a better keyword 15:08:51 bramus: or push authors towards using attr() function which is suited for this, can use attr(id, auto) for fallback behavior 15:09:10 bramus: or keep previous resolution of using auto for fallback behavior, but then we need to come up with a very good keyword for the autogeneration 15:09:32 bramus: Authors prefer auto-id for autogenerated, and some suggested generated 15:09:39 bramus: and some others said, don't we have attr() for this? 15:10:07 fantasai: we can conclude from the poll that there is cnofusion over keywords 15:10:15 … wording of poll most likely prompted some of the responses 15:10:27 … using “automatically generated id” pushed authors towards `auto` 15:10:39 … internally we are generating one, bu thtat is just the meachism 15:10:59 … it is an internal detail 15:11:13 … the will never see it … we might not even generate one and use poitner identity 15:11:25 … its not about automatically generating ids, its about the identify of the element object 15:11:38 … poll is propably a but confused on that point 15:11:48 … could try to come up with good keywords but maybe need some more ideas 15:11:56 … but doesnt mean that we should revert decision on `auto` 15:12:19 … in terms of possible keywords: `mathc-elememtn` is an option as we use match in a few other places 15:12:25 … but open to ideas 15:12:32 present+ (irc only) 15:12:39 q+ 15:12:42 … at webkit we think `auto` is the right way to define it 15:12:44 q+ 15:12:49 ack fantasai 15:12:52 … and maybe need other keyword for the other thing 15:12:53 I like match-element 15:13:21 astearns: the currently specced behavior for auto is to use the id attr and fall back to auto generated one? 15:13:31 fantasai: its to use the identity of the element 15:13:57 … if there is no id, we look at the element being the same object or not 15:14:22 … in that case, the object hasnt been destroyed - its a singular one that you can map between tree versions 15:14:34 ack astearns 15:14:36 ack khush 15:14:59 khush: spec might say to generate one, but conceptually get the point that that is one way to implement it. you don”t need strings to establish identity 15:15:10 … of all options maybe self is nice as it doesnt hit at generating something 15:15:15 q+ 15:15:18 … your identtity is the nodes identity 15:15:38 … auto is confusing. kind of a grab value in css to figure out automatically what to do which is what we doing here as well 15:15:47 ack florian 15:16:02 match-element? same-element? 15:16:06 florian: explanation fantasai just gave: if that can be used. key point is stability … so maybe akeyword like stable? 15:16:13 … if the elemen tis still around it will be the same 15:16:23 q+ 15:16:23 … dont describe what we do but the why 15:16:30 ack noamr 15:16:47 noamr: I like match-element. we match not just the id, but the actual elements 15:16:59 … matching two state of the same element 15:17:13 q+ 15:17:22 i'm ok with match-node or match-element 15:17:34 bramus: I like all these suggestions just now, `stable` and `match-element`. 15:17:38 bramus: doesn't seem confusing 15:17:45 ack bramus 15:17:49 bramus: `from-element` implies reading from the element, but matching is matching so seems like a good suggestion 15:18:16 bramus: wrt `auto` part, as DevRel we can hammer on this point, means "try to get a name" not "automatically generate one" 15:18:35 astearns: which method do we expect authors to use most? 15:18:41 noamr: It depends 15:18:54 noamr: Likely use explicit names. Otherwise likely to use auto, it will just work. 15:19:10 noamr: But if they want to specifically say that id attrs don't participate, then use match-element 15:19:19 noamr: I think auto would be more common, it will usually just work. 15:19:56 noamr: element identity, not observable if generated string 15:20:11 astearns: We have a way of using the ID attribute, specifically, by using attr() function 15:20:24 astearns: we have defined `auto` to match the element by ID if there is one, or using other methods if not 15:20:40 astearns: Is there really a use case for "throw out the IDs and only use the opaque element-matching algorithm" ? 15:21:26 khush: Point came up last time, if these are only two (auto and attr(id)), then there's no way to say "I want to match based on element identity even though I put an ID on it" 15:21:42 noamr: You wouldn't be able to match if element has an ID in only one of the state 15:21:58 khush: or if ID is used for a different reason, and not used in view transitions 15:22:12 astearns: I can see the case, but not expecting authors to run into it much 15:22:26 noamr: cleaner solution to have specific keywords for each behavior 15:22:37 astearns: understand, but that's a theoretical purity argument 15:22:52 khush: We heard from one [missed] 15:22:53 ack fantasai 15:23:17 fantasai: in terms of the name clashing we might want to consider namespacing ids taken from the element vs names that we put direclty into css 15:23:18 s/[missed]/AirBnB where teams use ids for entirely different things 15:23:23 … that would avoid name clasing 15:23:54 … already have pseudo selelcting syntax but are not using the ! sign for keywords. Could say tha ti fyou pull the id from the attr, then it gets prefixed with the ! sign in the matching. 15:23:56 q+ 15:24:02 … that would namespace it and avoid clashes 15:24:04 s/!/#/g 15:24:10 astearns: this would be an additional thing 15:24:36 fantasai: would mean for auto and I guess attr() tha twe are generating the namemt hen you would use v-t-g(#id) to select and style it 15:24:37 q+ 15:24:58 khush: not sure about this, but maybe could do it for auto-generated ones. Not for those read from attr. 15:25:09 … will be a pain to keep track of where it came fromg 15:25:13 fantasai: fair 15:25:17 ack noamr 15:25:29 noamr: against namespacing because of flexibility of VTs. 15:25:51 … take cross-doc VT with #hero id on one side and one with hero v-t-name on other side 15:25:57 … would want to transition between those 15:26:08 khush: can open issue separately from this 15:26:16 ack bramus 15:26:44 bramus: Just realized, we could not tackle this problem as part of view transitions, keep auto as it is, and look at the ident() function and allow it to take a keyword 15:26:57 bramus: so if you want to auto-generate an ident you use it 15:27:23 fantasai: so ident() should take wjhat? 15:27:38 bramus: `view-transition-name: ident(auto)` to auto-generate an ident 15:27:55 … so we dont have to come up with a keyword for this 15:28:13 fantasai: but that retrurns an actual observable identifier 15:28:20 … which we dont think we want to do 15:28:27 … should still have keyword for it 15:28:55 q+ 15:28:56 … can consider is distinguishing between auto keyword actually creating a referencable v-t-n or just an internal matching 15:29:06 … can you selec tagainst the generated identifier is an open question 15:29:24 … would we do that or just use the id attr to match elements but not to select against it 15:29:42 … like `::v-t-g(id)` 15:30:03 khush: would be nice if you could do it for for the `[id]` case 15:30:07 … pretty convenient 15:30:32 fantasai: only downside is that we might have namespace clashes and stuff that you are using for identity in the document 15:30:38 noamr: right, mixing things 15:30:50 fantasai: can agree on keeping `auto` as it is 15:31:08 … and for now add a keyword `match-element` for only looking at element id 15:31:28 … and open issue to mix the namespaces 15:31:30 q- 15:31:39 s/to mix/about mixing/ 15:32:11 astearns: Gonna need async resolution as we are low on people attending 15:32:47 PROPOSED RESOLUTION: Add `match-element` keyword that will only use element identity and not use id attributes. 15:33:05 astearns: will be submitted as an async resolution 15:33:45 RESOLVED: [Pending async confirmation] `auto` will match elements using their ID attributes, falling back to element identity; `match-element` will only use element identity. 15:34:12 github-bot, take up https://github.com/w3c/csswg-drafts/issues/10978 15:34:12 Topic: [css-view-transitions-2] How are auto-generated `view-transition-name`s exposed in JS APIs 15:34:12 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/10978. 15:34:31 noamr: how do autogenerated appear in things like getAnimations? 15:34:54 q+ 15:35:00 … what would these auto-generated ones look like? Aavailble as strings? Or give them a name of `match-element` or `*` or not show them at all? 15:35:05 ACTION: Open new issue about whether `auto` exposes the ID from the ID attribute as a view-transition-name for pseudo-element matching 15:35:17 bramus: and devtools? 15:35:19 ack khush 15:35:22 noamr: no, not included 15:35:46 khush: two options 15:35:49 … if we decied that id based names ar ehidden from css then it makes sense to hide everything from auto 15:36:46 … or if name came from id attribute then do expose it but dont expose the identity ones (and expose those as `match-element`) 15:36:53 q+ 15:37:25 astearns: the ids that auto uses could be made opaque but if the author uses the attr() fn then they would be exposed? 15:37:30 khush: thats the complication with hiding ids 15:37:45 … if you use attr() then you have all those complications of where you get the strings from 15:38:00 ack bramus 15:38:01 … can punt on this until we decide how to namespace ids 15:38:01 q+ 15:38:38 bramus: if value derived from ID attribute and expose it, if you have an element with an ID on one page and a different one on a different page with a view-transition-name of hero, then one transitions to the other 15:38:46 bramus: would be useful to expose that name 15:38:57 bramus: if we fall back to match-element strategy, then show that as match-element 15:39:04 bramus: because authors can't target those elements directly 15:39:12 bramus: by having match-element there, clearly can't target 15:39:32 fantasai: q about whether id on one page would match a v-t-n on other is part of the namespacing discussion 15:39:37 … dont have an opionion on direction 15:39:47 … if that worked, then we should make pseudos match that 15:39:57 … but q is then should that work in the first place? 15:40:28 … do we want to expose the name derived from an id in the first place? no opinion right now. 15:40:36 … obviously should not expose autogenerated names 15:40:39 ack noamr 15:40:55 noamr: strong opinion about keeping things simple… if generated by id its just that name 15:41:09 … already doing complicated things that look different 15:41:25 … if the v-t-name comes from an id, then that should be the v-t-n 15:41:35 … if author dont want that, they should do other things 15:41:39 … lets keep things flat 15:41:42 q+ 15:41:55 … regardless we can resolve to use the name `match-element` in `getAnimations` 15:42:13 ack khush 15:42:28 khush: since we are going here … my alignment is wit noam on this. keep it simpel and treat them as names 15:42:36 … dont have author feedback on this though 15:42:46 … not a super strong opinion 15:43:06 … if this pattern is adopted like anchor-name and there is no matching concept, do we want to have this namespacing concept across css props then? 15:43:14 … then VT wont have this own special thing 15:43:15 q+ 15:43:25 … concept would make sense across CSS 15:43:33 fantasai: none of the others have a way of pulling element id 15:43:43 khush: but can imagine anchor-pos doing the same over time 15:43:51 ack bramus 15:44:04 I like that auto === id ? attr(id) : match-element 15:45:03 bramus: missed 15:45:04 astearns: but flatness isnt part of the issue 15:45:15 khush: lets thing about that a bit more 15:45:20 s/khush/noamr 15:45:33 noamr: lets resolve on exposing them as `match-element` 15:45:39 astearns: is ther ea conclict there? 15:45:44 noamr: its just in getAnimations 15:45:52 astearns: which is wrapped in a pseudo 15:46:15 khush: compat risk for users that have used `match-element` 15:46:40 bramus: dont think anyone has used that yet 15:47:17 khush: so if you use auto and we use the id attr then we expose the id attr as string, and if we use identity then we expose match-element 15:47:31 noamr: and tbd if these id-based names are namespaced or not 15:47:37 astearns: should open an issue that 15:47:45 khush: can do that 15:48:33 PROPOSED RESOLUTION: we will use `match-element` in the Animations API when element identity is used 15:48:44 astearns: objections? 15:48:49 (silence) 15:49:11 RESOLVED: [Pending async confirmation] we will use `match-element` in the Animations API when element identity is used 15:49:20 github-bot, take up https://github.com/w3c/csswg-drafts/issues/10585 15:49:20 Topic: [css-view-transitions-2] Optionally capture some properties (e.g. opacity/border) as style instead of snapshot 15:49:20 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/10585. 15:50:14 noamr: talked about capturing snapshots not flat but to also capture borders, shadows, opacity, etc 15:50:28 … had homework to figure out the exact way of how this would work and do some compat analysis 15:50:34 … have done both to an extent 15:50:38 https://github.com/WICG/view-transitions/blob/main/nested-explainer.md#layered-capture 15:50:40 … wrote an explainer for this 15:51:05 … main question is if this is a net improvement to capturing elements layered or not? 15:51:24 … only works when elements are superimposed on eachother in a way, like cross-fade morphs the animation 15:51:38 … many people use slide animations, like a header sliding offscreen 15:51:57 … when authors do that, capturing the borders separately creates a different effect 15:52:18 … backwards compat it wouldnt affect hat many peole right now, but those that are affected are affected in a big way 15:52:31 … want to get attention to the explainer 15:52:42 … there are afew optoins: 15:52:47 … make it an opt-in 15:53:10 … or create an extra pseudo for the geometry animation 15:53:25 q+ 15:53:34 … it does create more things to think about it, but nice thing about that it is that it does what it does today 15:53:44 stepheckles has joined #css 15:53:46 … you need to only style it if you want to 15:54:17 … third option is to have no opt-in and have authors opt-out by containment thorugh adding an extra container element 15:54:25 … not looking for a resolution now 15:54:26 ack khush 15:54:35 khush: +1 to what noam said 15:54:48 … am pretty convinced that original capture way might have been a mistake. 15:55:04 … noam dug up styles that authors used to customize animatoins and have found slight animations that were set up 15:55:14 … if you have two things 15:55:35 … where the whole bg changes you dont want those to fade but just want the slide effect 15:55:38 … dont want to break those 15:55:41 … especially on the root level 15:56:08 … also dont want authors to have to create a wrapper around the content int root to fix that 15:56:16 … could maybe resolve that both these modes should exist 15:56:23 … how to select one or the other can be decided later 15:56:35 bramus: +1 on both modes being valuable 15:56:37 a+ 15:56:38 q+ 15:56:56 astearns: need to read explainer a bit more. wrapper made sense until khushals argument 15:57:04 schenney has joined #css 15:57:33 noamr: should generally avoid people to change their dom for style purposes 15:57:36 bramus: +1 15:57:50 ack bramus 15:58:23 bramus: can the extra speudo give a perf benefit? 15:58:37 noamr: not really. think of border animating 15:58:43 … I encourage ppl to look at the explainer 15:58:57 … especially the geometry part, because we copy over the box mode 15:59:04 s/mode/model 15:59:09 … also scrollbars and stuff 15:59:11 kizu has joined #css 15:59:19 … food for a next meeting 15:59:30 astearns:thanks for the summary and explainer. its great to have 15:59:36 PaulG has joined #css 15:59:49 … will summarize the breakout to the www-style list and set up async resolutions and point people to the explainer 15:59:52 … gonna wrap up 15:59:58 topic: none 16:00:52 kbabbitt has joined #css 16:01:24 astearns has changed the topic to: Oct 30 agenda: https://lists.w3.org/Archives/Public/www-style/2024Oct/0015.html 16:01:28 present+ 16:01:33 present+ 16:01:35 joshtumath has joined #css 16:01:37 present+ 16:01:42 present+ 16:01:58 noamr has joined #css 16:02:03 scribe+ 16:02:17 jfkthame has joined #css 16:02:21 present+ 16:02:37 present+ 16:02:38 lea has joined #css 16:03:04 github-bot: take up https://github.com/w3c/csswg-drafts/issues/10271 16:03:04 Topic: [css-color-hdr] Add interpolation between multiple values of dynamic-range-limit 16:03:04 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/10271. 16:03:09 smfr has joined #css 16:03:40 present+ 16:03:46 Chris: we have this dynamic range value. but you might have more than value, e.g. in animation, need to decide what happens 16:03:49 present+ 16:03:52 oriol has joined #css 16:04:13 present+ 16:04:24 ChrisL: we have a PR, we either should merge it or revert. I think it's a good syntax 16:04:31 present+ 16:04:44 davidleininger has joined #css 16:04:48 present+ 16:05:03 astearns: inclined to accept the PR 16:05:12 ChrisL: I prefer to review things in place 16:05:19 astearns: objections? 16:05:34 RESOLVED: Accept the PR 16:05:54 alison has joined #css 16:05:56 github-bot: take up https://github.com/w3c/csswg-drafts/issues/4165 16:05:57 Topic: [css-images] Should CSS decorative images respect EXIF-orientation by default 16:05:57 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/4165. 16:05:59 present+ 16:05:59 ydaniv has joined #css 16:06:04 present+ 16:06:50 ChrisL: it wasn't clear what we've resolved on 16:06:53 present+ 16:07:05 ChrisL: what this means that if you have EXIF that comes before the image data we must respect it 16:07:11 present+ 16:07:23 ChrisL: for consistency we should probably ignore it when it comes after 16:07:31 q+ 16:07:41 smfr: you mean in the order in which the image is encoded? 16:07:42 present+ 16:07:46 ChrisL: yes, which is not always possible 16:07:57 q+ 16:07:57 ack schenney 16:08:29 schenney: I agree with ignoring after the image, but the q was whether the orientation should look at the image-orientation property on the element 16:08:36 schenney: chrome does this but safari does not 16:09:00 ChrisL: there wasn't a discussion on this, can we discuss now? 16:09:44 schenney: one, I implemented this a while ago, the usage data for image-orientation and it's rising, but not in a huge amount 16:09:51 SebastianZ has joined #css 16:09:52 schenney: people use it to avoid applying the image metadata 16:10:17 q+ 16:10:20 schenney: from that point of view the current chrome behavior is preferrable for web devs. but the long term is perhaps to not have that property 16:10:28 gfaujdar has joined #css 16:10:30 schenney: we'll get pushback if we do that 16:10:43 ... if we don't honor image-orientation 16:10:43 q+ how to say "ignore rotation" in that case? 16:10:50 scribe+ 16:10:50 scribe+ 16:10:52 present+ 16:10:57 ack noamr 16:11:06 noamr: even now, image-orietnation is broken in the sense that it doesn't work on cross-origin images 16:11:12 q+ 16:11:14 noamr: which is a real big breakage for people 16:11:22 noamr: I find it a broken CSS property because of that 16:11:51 present+ 16:11:56 +1 to URL modifier 16:11:57 noamr: having it apply to CSS images, it's a bit weird you have something for the whole lement and apply it to all images. i'd expect it to be a url modifier or something, a keyword that says you read the exif 16:12:07 noamr: we have url() modifiers now for other things, we can put it there. i think that's the right place 16:12:11 ack smfr 16:12:12 scribe+ 16:12:13 (+1 to that, it was clumsy to have it apply that way) 16:12:20 smfr: it should be per-image, maybe on the image function 16:12:40 smfr: background: webkit started supporting orientation by default on regular images, we just didn't get to CSS images 16:12:47 smfr: I think we can change it to match the chromium behavior 16:12:55 ack how 16:12:55 how, you wanted to say "ignore rotation" in that case? 16:12:57 q+ 16:13:04 CLilley: URL modifier is perhaps a good way to go 16:13:05 ack schenney 16:13:20 schenney: URL modifier would address the original reason why image orientation is ignored on cross-origin 16:13:21 I url modifiers should be for generic modifiers. We should use image() for image-specific modifiers. 16:13:26 And we should have more of them. 16:13:40 ack dbaron 16:14:08 dbaron: I'm more hesitant about modifiers. they make sense for features we want permanently. my impression is that this feature is more fore compatibility during transition 16:14:29 dbaron: if we want to end up always honoring the metadata, we should only add as many features as we need for that, rather than add more granularity 16:15:10 astearns: if we resolve on ignoring EXIF at the end, does that help with the transition? 16:15:28 dbaron: it wasn't clear to me which cases the resolution applies to 16:15:38 ack PaulG 16:16:08 PaulG: for a11y I'd be concerned that if people relied on this feature for WCAG orientation, I wouldn't want to get rid of it 16:16:17 PaulG: I suspect we'd want to keep that 16:16:23 ack fantasai 16:16:32 fantasai: modifiers should be in image() and not in url() 16:16:36 q+ 16:16:46 ack noamr 16:17:10 Yeah since this is explicitly an image *file*, I'm fine with it living on url() 16:17:40 q+ 16:17:45 astearns: we can probably resolve on ignoring metadata that's after the metadata 16:18:11 schenney: I thought it was resolved a while ago 16:18:12 ack ChrisL 16:18:28 ChrisL: it was unclear enough that it's hard to say what a PASS is 16:18:36 q+ 16:18:40 q+ 16:18:56 ack smfr 16:19:17 smfr: we might not be able to do this in the implementation 16:19:33 ack noamr 16:20:57 ack fantasai 16:21:19 fantasai: HTML should add that, but in CSS we should say how we handle images with EXIF, regardless of the host language 16:21:23 q+ 16:21:33 it should at least be in both 16:21:38 s/should add that/could add special rules/ 16:21:39 ack smfr 16:21:56 smfr: odd that CSS would define things around the encoding of an image 16:21:58 q+ 16:22:02 It doesn't need to be in both. It's a rendering question, it needs to be in CSS. HTML can optionally say stuff, but it doesn't need to -- we do. 16:22:11 s/HTML should add that/HTML could add that/ 16:22:15 noamr: We talked before in WHATWG about separqting some of those image details to as eaprate spec 16:22:38 noamr: it never happened because nobody had time, but I think right now, relying on parts of HTML that defines how images are decoded, relying on that inside of CSs, is the best we' 16:22:42 relevant PNG WG issue is https://github.com/w3c/png/issues/310 16:22:46 noamr: We should behave the same way for HTML and CSS 16:23:04 astearns: it is claimed that all browsers ignore post-image-data orientation 16:23:12 astearns: smfr would you validate? 16:23:29 smfr: will validate 16:23:38 astearns: will take it back to the issue about encoding order 16:23:51 ... to validate that all browsers do this today 16:24:09 ChrisL: please check with JPEG with PNG, I saw that Safari does something different 16:24:20 smfr: that's why we need more time 16:24:28 (In PNG this is encoded in XMP IIRC) 16:24:38 astearns: for how we override the metadata 16:24:46 No, it can be but there is also an exif chunk 16:25:03 smfr: this is *this* issue, but we discussed a different one 16:26:06 noamr: also there's a proposal for a url() modifier. not clear yet. But at least not taking the info from image-orientation 16:26:28 schenney: so proposal is phase out a per-image way of specifying it, and phase-out image-orientation property 16:26:45 phase in an image-specific way to do *CSS images*. 16:26:54 dbaron: replaced elements, form HTML, would still obey image-orientation 16:27:14 astearns: so let's continue that part of the discussion in this issue 16:27:35 astearns: action item for smfr to validate the tests 16:28:10 github-bot: take up https://github.com/w3c/csswg-drafts/issues/10605 16:28:10 Topic: [css-sizing] Intrinsic size of /