15:00:14 RRSAgent has joined #css 15:00:18 logging to https://www.w3.org/2025/09/17-css-irc 15:00:18 RRSAgent, make logs Public 15:00:19 Meeting: Cascading Style Sheets (CSS) Working Group Teleconference 15:02:12 present+ 15:02:17 present+ 15:02:41 romain has joined #css 15:02:47 flackr has joined #css 15:02:50 present+ 15:04:03 present+ 15:04:17 ydaniv has joined #css 15:04:20 Present+ 15:04:22 present+ 15:07:43 present+ 15:07:44 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12811 15:07:45 Topic: [css-overflow-4] nowrap and block-ellipsis 15:07:45 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12811. 15:08:20 florian: there seems to be some ambiguity about text spec 15:08:41 ... when you remove content next to elipsiss it should disappear 15:09:06 ... up to the next soft wrap oppertunity 15:09:28 ... but the way the white space is currently specified, nowrap and pre do not supress it 15:09:42 kizu has joined #css 15:09:45 present+ 15:09:56 present+ 15:10:02 ... so reading it says that even if it says nowrap they do not suppress the wrapping oppertunity, just not to take them for line break processing 15:10:14 ... so literal reading would have it do something else 15:10:58 ... proposal is to not do that, and leave to the editor to find exact spec wording, and confirm that when you can't wrap you remove the whole thing to insert the elipsiss 15:11:43 andreubotella: if you have a forced line break inside pre or nowrap then it forces to 15:12:14 andreubotella: and there is enough room at the end of the line to fit the ellipsis, that is allowed 15:12:45 ... only when it doesn't fit and you try to find next oppertunity it tries to find it 15:12:49 andreubotella: it's only when the ellipsis doesn't fit and you're looking for a previous placement point that nowrap would require removing the whole content 15:13:15 astearns: so editorially if not specified, could spec editor specify that? 15:13:42 ... is there some reason why nowrap is specified that way? 15:13:50 florian: my suspision is editorial accident 15:14:30 astearns: proposed resolution is to clarify the interaction between nowrap and block elipssis 15:14:41 ack fantasai 15:14:45 fantasai: I would prefer to define this on the line clamp side 15:15:04 ... that opportunities don't exist unless we need to know where they are for other reason 15:15:17 ... say it ignores them with in nowrap 15:15:31 astearns: that's the safeset, wondering if it's enough 15:15:46 fantasai: question whether the information is there and can be accessed 15:16:06 florian: I think editors can take that, since me and fantasai are editors we could 15:16:11 astearns: objections? 15:16:17 ... none 15:16:35 RESOLVED: clarify the interaction between nowrap and block elipssis 15:17:47 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12008 15:17:47 Topic: [css-overflow] [css-text] Interaction between whitespace collapsing and line-clamp 15:17:47 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12008. 15:18:16 i/florian: there seems to be/scribenick: ydaniv 15:18:18 scribe+ 15:18:29 andreubotella: Block finds the last soft wrap opportunity and removes content from that point to end of line 15:18:35 andreubotella: What does that mean in terms of whitespace? 15:18:52 andreubotella: wrt unicode line breaking algo, line breaking opportunity is after the space, not before 15:18:55 andreubotella: This is probably not what we want 15:19:28 andreubotella: Way I conceptualize this is, rather than finding last opportunity that fits, remove the width of ellipsis from the available width of the line, do regular line breaking based on that, and then add the ellipsis 15:19:52 andreubotella: in that model, if the ellipsis is placed after white space processing part II, which removes collapsible spaces, it will be placed at the end of the word 15:20:11 q+ 15:20:13 andreubotella: I don't necessarily want to require that the line-breaking algo has to take into account the ellispsis, that's an implementation strategy 15:20:44 andreubotella: proposed resolution, if you have clamp point at white space, make it work as if line break happened there, and ellipsis was placed after WS Processing Part 2 15:20:50 ack florian 15:20:50 andreubotella: which removes the space 15:20:55 florian: I agree with the proposal 15:21:13 florian: Don't want to require a particular implementation strategy, but describing this way is helpful and easy because we invoke existing spec text 15:21:28 florian: that's a very complicated logic depending on which spaces and white space properties are at the end of the line 15:21:36 florian: so saying we do "as if" at the end of the line is a good idea 15:21:45 andreubotella: Another complication related to hanging white space 15:22:08 andreubotella: You can have space at the end of the line that isn't collapsible, but can hang off the end of the line (width isn't accounted for in line breaking or alignment) 15:22:23 andreubotella: Only space at the end of the line can hang. If you put ellipsis there, can't hang anymore. 15:22:35 andreubotella: We could make the ellipsis hang... so not impossible 15:22:42 andreubotella: but idk if we want to require that or what 15:23:00 astearns: Let's say that's a separate issue for now, and take a resolution on what we do with collapsible white space 15:23:43 andreubotella: "Rendering should be equivalent to line breaking at that soft wrap opportunity, and applying white space processing part 2 before inserting ellipsis at the end" 15:23:47 astearns: Makes sense 15:24:23 PROPOSED: Rendering should be equivalent to line breaking at that soft wrap opportunity, and applying white space processing part 2 before inserting ellipsis at the end 15:24:34 RESOLVED: Rendering should be equivalent to line breaking at that soft wrap opportunity, and applying white space processing part 2 before inserting ellipsis at the end 15:25:11 fantasai: fwiw, if we put ellipsis after the spaces, then nothing should hang anymore 15:25:21 florian: yeah, question is whether that's where the ellipsis should go 15:25:54 github-bot, take up https://github.com/w3c/csswg-drafts/issues/9235 15:25:54 Topic: [css-overflow-4] [css-break] How does `widows` and similar properties affecting fragmentation interact with `continue: discard`? 15:25:54 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/9235. 15:25:56 s/Topic/Subtopic/ 15:25:57 s/Topic/Subtopic/ 15:25:58 s/Topic/Subtopic/ 15:26:44 andreubotella: Here's an implementation of continue:collapse. You can see when the height is reduced to zero, the lines get hidden one by one. 15:26:53 andreubotella: continue:discard is the previous version of this, which was handled with fragmentation 15:27:01 andreubotella: You don't see the same thing, you see that first two lines are hidden together 15:27:12 andreubotella: If you only leave space for first line, both discarded. 15:27:20 andreubotella: Reason for this is 2 properties called widows/orphans 15:27:43 andreubotella: Names are typographical terms, somewhat confusing, maybe we need to rename? But that's off-topic 15:27:57 andreubotella: They control how many lines can be by themselves at the start or end of a fragment 15:28:10 andreubotella: The default value is 2, meaning a single fragment isn't allowed 15:29:11 fantasai: do you have an incorrect assumption? 15:29:23 fantasai: widows shouldn’t affect the first fragment 15:30:05 fantasai: There's no breaking opportunity between the start of the container and its first line box 15:30:17 fantasai: You will always place at least some content 15:30:22 ack fantasai 15:30:39 florian: If you have a 2-line paragraph, and a many line paragraph ... in fragmentation it is what you want, but in this case maybe not 15:30:57 florian: My suggestion is that line-clamp also sets widows/orphans to 1. 15:31:14 florian: Otherwise if there's room for 3 lines, and you only get 2, it will be surprising 15:31:35 ack dbaron 15:31:44 andreubotella: My suggestion was to make line-clamp ignore widows/orphans 15:31:50 dbaron: Principle is that you always place something. 15:32:13 dbaron: One reason it exists is not getting into an infinite loop when all fragmentainers are identical. 15:32:17 dbaron: In this case, you have to place something. 15:32:29 dbaron: In context where fragmentainers are not all identical, you may or may not want that principle. 15:32:35 dbaron: But I think we're coming to another solution here... 15:33:09 florian: Andreu's and mine would do the same thing by default, but mine allows authors to set things so that they do take effect, whereas in Andreu's there's no option 15:33:28 astearns: Chair hat off, I'm a little more comfortable with just defining interaction between the properties, rather than having one property set another... 15:33:37 florian: I'm split here. Andreu's version is less magic 15:33:56 florian: If you're doing a very small height in which you're line-clamping, but if people are doing it on a bigger chunk of content, room for 10 lines 15:34:06 florian: maybe in that case would want to have widows and orphans take effect 15:34:18 florian: Completely suppressing most of the time might not be the right call 15:34:40 fantasai: suppose you have clamp that’s large and you are fragmenting? 15:34:51 fantasai: there you’d want widows to take effect 15:35:11 andreubotella: Question of whether line-clamp container should fragment. It's very buggy and non-interop in browsers. 15:35:40 andreubotella: If we allow these containers to fragment, then probably continue:discard, rather than block effects of this property, it should say that they don't apply for setting the region break 15:36:18 florian: Ok, my earlier pref for setting to 1 rather than ignoring, is not an objection. I'm now on the fence, see arguments both ways. 15:36:51 florian: Long-term, if we really need an opt-in, we can create one. 15:37:13 astearns: Let's go with andreubotella's suggestion for now. It's the least we can do to fix this particular issue. 15:37:28 astearns: We can make that interaction more complicated in the future if we need to 15:37:39 PROPOSED: The region break set by line-clamp ignores widows/orphans 15:37:59 RESOLVED: The region break set by line-clamp ignores widows/orphans 15:38:33 Subtopic: [css-overflow] How do empty blocks affect line-clamping by height? 15:38:56 andreubotella: Split off from a previous discussion on abspos and stuff. 15:39:20 andreubotella: When clamping by height, the last possible clamp point that doesn't overflow is chosen. 15:39:33 andreubotella: If you have a block element that has no content, it would clamp after it. 15:39:46 andreubotella: That's probably fine, except it means that if there's a line before that empty block, it will not be ellipsized. 15:40:17 andreubotella: The presence or absence of that block before/after clamp point, if that block is empty it doesn't matter. But if the block has position:relative, and contains an abspos, it does matter because it affects whether abspos is hidden or shown 15:40:30 andreubotella: this can also affect boxes that have non-zero content, but height set to zero 15:40:41 andreubotella: In those cases, the content of the box would also be shown or not shown depending. 15:41:09 andreubotella: I think it makes sense to clamp after zero-height boxes. Find the last possible clamp point before the height overflows 15:41:21 florian: Main downside is because last thing before clamp point isn't the line, we don't see the ellipsis 15:41:43 ack fantasai 15:41:44 florian: Although in case of zero height *and* content, ellipsis would be seen on that content. 15:41:52 florian: but I guess it's ok, don't put empty
s where you don't need them. 15:42:11 q+ 15:42:23 andreubotella: If you have a box which is zero-height, but does have content (whether overflowing or abspos), you probably don't want the ellipsis to be placed on the previous line 15:42:23 q- 15:42:28 andreubotella: should we depend on that? 15:42:52 fantasai: if you have a para and then a block that’s a horiz rule 15:43:06 fantasai: do you want that para to be ellipsised? 15:43:12 andreubotella: Currently it's not 15:43:34 andreubotella: block-ellipsis applies to the last line before clamp point if only thing in between are abspos or end of element 15:43:50 fantasai: is that the behavior you want? 15:44:05 florian: We discussed earlier, and resolved on this behavior given no perfect solution. 15:44:22 andreubotella: For some use cases you might want it, and for others you might not. 15:44:35 andreubotella: [missed example] 15:44:56 astearns: So proposed resolution is no special handling for zero-height or empty blocks? 15:45:06 s/[missed example]/if you have a line, and then an independent formatting context, you don't want the line before it to have the ellipsis/ 15:45:39 fantasai: could we just say the kinds of blocks that inhibit margin collapsing… 15:45:59 florian: Are you saying we should lean more on margin-collapsing-through?? 15:46:23 astearns: Could close no change and then explore later 15:46:38 florian: It's not interaction with margin-collapsing, it's trying to identify which blocks we consider and those we don't 15:47:11 fantasai: No special handling, if people complain we'll reconsider 15:47:20 PROPOSED: Close no change until/unless users complain. 15:47:26 RESOLVED: Close no change until/unless users complain. 15:47:37 Subtopic: [css-overflow] Floats and line-clamp 15:48:16 andreubotella: For continue:collapse, defiinition says if block container contains a clamp point, automatic size will not take into account the content after the clamp point 15:48:38 andreubotella: What does that mean for the line clamp container? It is an independent formatting context, so it is subject to float clearance 15:48:55 andreubotella: If you have a float that is not hidden, it will add clearance to the line clamp container 15:49:03 andreubotella: This is not always what authors expect 15:49:50 andreubotella: In this case, changing webkit-line-clamp to lines 3 or 4, it means float would make the box taller than you would expect by the lines 15:50:20 andreubotella: but if you're clamping by height, the moment you reach the end of the float and you try to push the height upwards, then you would be clamping up to the line before the float 15:50:29 andreubotella: the float is anchored to line 3 15:50:37 andreubotella: I like the consistency with regular sizing, but this is not intuitive 15:50:37 q+ 15:50:49 andreubotella: It is also different from behavior you would get with continue:discard, because the float would fragment 15:50:52 ack florian 15:51:07 florian: Behavior is surprising, but consistend and explainable 15:51:27 florian: If we try to do better, might be able to say that a float that grows the box by adding clearance is treated as invisible, and you remove the float 15:51:57 florian: Don't remove floats in general, because they can cause content to wrap differently 15:52:10 florian: but if it's increasing height of container, then remove it 15:52:17 florian: but then that would change the wrapping of earlier lines.. 15:52:22 florian: so maybe put a dummy float? 15:52:31 florian: Anyway, current behavior is not terrible. 15:52:44 andreubotella: I'm worried about implementability even if it doesn't cause lines to wrap differently 15:52:52 q+ 15:53:03 ack dbaron 15:53:19 dbaron: I'm not sure how much the underlying mechanism here is related to fragmentation 15:53:22 florian: meant not to 15:53:31 dbaron: but even if it doesn't, thinking about it analogously might help 15:53:49 dbaron: The way floats fragment is not well-specified, and probably not interoperable across engines 15:54:07 dbaron: but my memory of how it works in Gecko, you can push the float to the next fragment without pushing the lines adjacent to it 15:54:13 dbaron: In some cases you can also fragment the float 15:54:16 dbaron: that might not make sense here 15:54:23 dbaron: so idk how well analogy to fragmentation works 15:54:28 I think fragmenting floats is not terribly interoperable 15:54:50 dbaron: but the other behavior I could imagine is the float goes away at a shorter height in the first case, but lines do what you expect simultaneously 15:54:56 dbaron: that said, idk how hard it is to implement 15:55:01 andreubotella: I worry it's not easy, but I will have to check 15:55:13 ack fantasai 15:55:24 fantasai: I think that second case seems surprising 15:55:45 fantasai: if we did fragment it would be more in line with author expectations 15:56:06 fantasai: where we introduce the line clamp could be treated as a frag break 15:56:35 andreubotella: for continue:collapse, it doesn't work based on fragmentation 15:56:49 andreubotella: it just sizes the container based on the size it would have if you ignored the hidden content 15:56:53 andreubotella: and floats can be either shown or hidden 15:56:57 ack florian 15:57:02 florian: So based on this, my suggestion is to close no change 15:57:31 florian: "we're doing collapse, but these advanced cases want fragmentation", in that case use fragmentation 15:57:44 Rossen4 has joined #css 15:57:47 florian: But that assumes we'd actually define and implement continue:discard. 15:58:04 florian: But I worry we'll end up with something as complicated as fragmentation. 15:58:07 kbabbitt has joined #css 15:58:23 Zakim, start meeting 15:58:23 RRSAgent, make logs Public 15:58:25 Meeting: Cascading Style Sheets (CSS) Working Group Teleconference 15:58:25 florian: [first picture is clamping by line number, second is clamping by height] 15:58:28 SebastianZ has joined #css 15:58:40 andreubotella: Another possibility is to not include float clearance in the sizing 15:59:00 andreubotella: the float would overflow the box essentially 15:59:17 andreubotella: That is a possibility that is easier than current behavior. I think that's what Firefox and WebKit do currently 15:59:27 andreubotella: This behavior is not what chromium does yet 15:59:54 fantasai: so you’re saying we would size basedon the in-flow content only 16:00:00 present+ 16:00:01 fantasai: the float would clip? 16:00:16 djmarland has joined #css 16:00:20 fantasai: you’d want to clip it to the content edge of the box 16:00:26 fantasai: would be reasonable 16:00:45 florian: So clip at that point, without needing to specify it 16:00:51 fantasai: Yes. In particular to content edge, not padding edge 16:01:04 astearns: You're saying this is what other engines do? 16:01:20 andreubotella: FF and WebKit have the float overflow. 16:01:44 florian: That's oversimplifications. Not just overflow but *everything* overflows and is visible, unless you make it hidden. 16:01:51 astearns: Do we have a quick resolution? 16:02:00 masonf has joined #css 16:02:02 alisonmaher has joined #css 16:02:07 present+ 16:02:10 PROPOSED: Floats do not increase the height of a line clamp container. They are clipped to its content edge. 16:02:24 lwarlow has joined #css 16:02:28 davidleininger has joined #css 16:02:52 andreubotella: Comfortable with resolving this for now. Unsure how to implement the clipping. 16:03:02 andreubotella: I suspect it won't be a blocker. Not opposed. 16:03:09 present+ 16:03:14 astearns: As you look into clipping to content edge, you can open up a new issue if you come up with something that makes more sense. 16:03:16 present+ 16:03:19 astearns: Any objections to proposed resolution? 16:03:34 RESOLVED: Floats do not increase the height of a line clamp container. They are clipped to its content edge. 16:03:44 jfkthame has joined #css 16:03:46 Topic: Regular Telecon - Break - Administrative 16:03:58 present+ 16:04:07 present+ 16:04:08 present+ 16:04:15 astearns has changed the topic to: Sep 17 agenda: https://lists.w3.org/Archives/Public/www-style/2025Sep/0008.html 16:04:25 present+ 16:04:53 present+ 16:05:12 present+ 16:05:22 smfr has joined #css 16:05:22 scribenick: kbabbitt 16:05:27 present+ 16:05:29 present+ 16:05:32 present+ 16:05:39 Topic: Regular Telecon 16:06:16 github-bot, take up https://github.com/w3c/csswg-drafts/issues/11899 16:06:17 Topic: [css-env] Add environment variables defined in WebKit 16:06:17 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/11899. 16:06:55 SebastianZ: we wanted to publish fpwd of css-env-1 16:07:13 ... we had 1 issue that is blocking publication which is deciding whether to add the variables defined in webkkit to the spec or not 16:07:22 q+ 16:07:23 q? 16:07:35 ack bramus 16:07:47 bramus: on the thread we looked into these env vars 16:08:04 ... smfr mentioned that they were introduced back in the day but they are not aware of any sites that have adopted 16:08:09 ... I ran a query on httparchive to be sure 16:08:19 ... checking for env(fullscreen-*) in width height etc. 16:08:31 ... result came back with 0 sites out of 16 million+ had it in CSS 16:08:36 ... which is quite reassuring 16:08:46 ... smfr also mentioned they are open to renaming or unshipping these properties 16:08:53 ... given 0 sites matched, I think unshipping is the answer 16:09:02 ntim has joined #css 16:09:02 ... so not add to css-env spec 16:09:09 q+ 16:09:12 present+ 16:09:15 Rossen4: seems like a reasonable proposal 16:09:20 ntim: I think it's reasonable 16:09:32 ... even if there are some use cases for this env var we probably want to rename anyway 16:09:40 ... for now removing it is the right call 16:09:42 +1 16:09:51 Rossen4: let's try to resolve 16:09:51 emeyer has joined #css 16:10:01 present+ 16:10:06 ... any objections to dropping this list of env vars that are webkit specific from the spec? 16:10:11 +1 16:10:12 PROPOSED: drop the fullscreen-* vars 16:10:19 RESOLVED: drop the fullscreen-* vars 16:10:30 Rossen4: SebastianZ do you have a resolution to republish? 16:10:40 SebastianZ: It would be republish or publish, don't remember if we have one 16:10:51 Rossen4: any objection to publishing? 16:10:58 SebastianZ: this would be level 1 16:11:03 Rossen4: FPWD of css-env-1 16:11:16 Rossen4: since this is first public I'd like to have attention and make sure we're ready to publish 16:11:29 fantasai: as long as TabAtkins has reviewed and think it's complete, it's fine 16:11:34 TabAtkins: yes I think we should go for it 16:11:38 Rossen4: objections? 16:11:48 RESOLVED: publish FPWD css-env-1 16:11:55 PaulG has joined #css 16:11:56 Yay! 16:11:59 present+ 16:12:27 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12049 16:12:27 Topic: [css-ui] The interactivity property should not be included in the all shorthand 16:12:27 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12049. 16:13:01 masonf: just read it over and added a comment, question is about whether `interactivity` should be included in `all` 16:13:13 ... there was breakage in chrome related to inert attribute being reset by `all:initial` 16:13:20 ... best fix seems to be making that UA stylesheet rule !important 16:13:24 ... and putting interactivity back into all 16:13:26 q+ 16:13:30 ... should fix bug and keep important behaviors 16:13:32 futhark has joined #css 16:13:35 ack ntim 16:13:35 ack ntim 16:13:37 ack flackr 16:13:48 flackr: we used to allow un-inerting subtrees that were interactivity inert 16:13:53 ... which is I think why this was problematic 16:14:03 ... but now that we don't is the problem that it's on same element? 16:14:07 masonf: yes that's the problem 16:14:24 ... afaict the only problematic case is when inert attribute is on an element and on same element you do all:initial 16:14:29 ... you probably want inert attribute to win 16:14:35 ... I think adding !important does exactly that 16:14:39 q+ 16:14:44 present+ 16:14:45 sounds reasonable 16:15:08 lwarlow: just to double check does this have any impact on modal dialogs? 16:15:13 ... that was the other case where interactivity came up 16:15:18 Kurt has joined #css 16:15:19 ... wasn't clear to me what solution was 16:15:24 masonf: 2 ways it can impact modal dialogs 16:15:38 ... direct way should not be affected, modals should stay uninerted with rest of page inerted regardless of all property 16:15:49 ... reason UA stylesheet has a modal rule that sets interactivity auto, corner case 16:16:11 ... it will automatically have that behavior but if author wants to make entire page inert, they have to contend with CSS rules about setting [missed] 16:16:21 ... other than that corner case, modal dialog inertness should just work 16:16:23 lwarlow: makes sense 16:16:33 masonf: and there's a way around it if they want to do that weird thing 16:17:05 masonf: everything I've said is my speculation about behaviors, if we go this route we will probably want to test it out 16:17:08 Rossen4: have you? 16:17:09 masonf: no 16:17:22 Rossen4: any other feedback or suggestions? 16:17:29 +1 16:17:35 +1 16:17:49 masonf: Proposal is to add !important to UA stylesheet rule for the inert attribute 16:17:55 Rossen4: objections? 16:18:04 RESOLVED: add !important to UA stylesheet rule for the inert attribute 16:18:05 +1 16:18:22 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12162 16:18:23 Topic: Add a property to retrieve plural instances of pseudo elements with the same selector 16:18:23 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12162. 16:19:13 flackr: proposal is to extend what we have in CSS pseudo to allow retrieving the pseudo elements that have multiple instances 16:19:45 ... if a browser does implement CSS pseudos, this is probably a good thing to do because we have many pseudos that can be matched with generic selectors 16:19:45 sgill has joined #css 16:19:55 ... I agree with the proposal that it should behave a lot like querySelectorAll 16:20:01 q? 16:20:04 ack lwarlow 16:20:12 TabAtkins: also agree with use case and proposed ordering behavior flackr suggested in the issue 16:20:20 seems reasonable to me as well 16:20:28 futhark has left #css 16:20:32 fantasai: 3 different proposals, which one? 16:20:41 flackr: element.pseudo is already in the css-pseudo-4 spec 16:20:50 ... proposal would be to add a method that gets all pseudos 16:20:55 ... first one I believe, something qSA-like 16:21:01 ... that returns all matching pseudos 16:21:08 TabAtkins: yes, the one listed under the Recommendation heading 16:21:14 flackr: open to bikeshedding 16:21:17 fantasai: okay with this 16:21:22 ... for element.pseudo would that return first? 16:21:24 flackr: yes 16:21:30 TabAtkins: yes, same as qS vs qSA 16:21:48 ... for bikeshedding purposes we should make it pseudoAll? not most grammatical but parallel naming is important 16:21:52 Rossen4: actualy it's not bad 16:21:54 +1 16:21:56 flackr: seems reasonable 16:21:58 Also things like `matchAll` exist 16:22:03 true! 16:22:12 Rossen4: any other suggestions? 16:22:32 Rossen4: Proposal is to add element.pseudoAll that returns a list of nodes 16:22:36 Rossen4: objections? 16:22:40 List of `CSSPseudoElement` 16:23:03 flackr: yes, not list of nodes, list of CSSPseudoElement 16:23:15 RESOLVED: add element.pseudoAll that returns a list of CSSPseudoElement 16:23:35 ack ntim 16:24:04 ntim: I think element.pseudo was resolved on different issue 16:24:15 Rossen4: if you feel we need to discuss more, bring up that other issue or open a new one 16:24:25 +1 we'll keep the names in sync 16:24:29 github-bot, take up https://github.com/w3c/csswg-drafts/issues/11845 16:24:30 Topic: [css-forms-1] Password visibility toggle 16:24:30 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/11845. 16:24:30 (It should be element.pseudoElement) 16:24:32 scribe+ 16:24:51 kbabbitt: in April we resolved to add a pseudo-element for password vis toggle on input type=password 16:24:56 kbabbitt: left name to be bikeshedded 16:25:06 kbabbitt: have been some discussion in the issue, especially about naming form control pseudos in general 16:25:20 kbabbitt: as a general principle, use the word "icon" to indicate graphical indicators, "button" to indicate clickable 16:25:27 kbabbitt: from that, suggests we call it ::reveal-button 16:25:40 kbabbitt: and as an additional proposal, should rename the other Forms 1 pseudos to be consistent with this pattern 16:25:42 +1 16:25:44 +1 16:26:15 q+ 16:26:24 fantasai: things get a little ambiguous with, sya, ::picker-icon, which is both clickable and an icon 16:26:35 fantasai: do we really want to be so clear about which is a button and which is an icon in our naming? 16:26:56 kbabbitt: I think there is some inconsistency in the naming, yes in some cases the picker would be a button in others it's an icon... 16:27:04 q+ 16:27:05 fantasai: I think that would be confusing for authors, yeah. should be consistent 16:27:25 fantasai: but that brings up whether we want to be so explicit in the names, or if we do want to lean into being unambiguous about whether it's an indicator or button 16:27:28 q+ 16:27:34 s/unambiguous/ambiguous/ 16:27:39 kbabbitt: personally id' lean toward consistency when possible 16:27:39 q+ 16:27:44 ack lwarlow 16:27:56 lwarlow: I've been thinkinga bout this for a bit, think I mentioned the step-up/down buttons 16:28:04 lwarlow: ideally something that's a button we'd call a button, I think 16:28:08 lwarlow: there are some weird cases tho 16:28:30 lwarlow: in a select element the picker icon is an icon, it's not actually a button. it's not really clickable, the select itself is what's clickable. so picker-icon makes sense there 16:28:51 lwarlow: but in a date input, the picker would be an actual button; you can click on the element but only the button actually summons the picker 16:29:16 lwarlow: file-selector is the other case - it looks like a button, acts like one. but really the whole element is clickable. so arguably that's not a "button" either.... 16:29:31 lwarlow: agree that making authors write ::picker-icon sometimes and ::picker-button sometimes isn't ideal 16:29:41 lwarlow: but for new names, I do recommend having button in the name if it's a button 16:29:54 fantasai: for date picker, it depends on the platform, some pop it when you click anywhere 16:30:06 fantasai: so there's some ambiguity on whether it's an icon or button 16:30:14 We'd probably want to specify that though ideally? 16:30:19 q 16:30:25 fantasai: we have things that act differently between controls, and things that act differently on a single control depending on time or paltform 16:30:45 fantasai: so that raises the question - if these aren't really two distinct categories, should we even lean into categorizing everything, or lean away and not categorize them? 16:30:50 masonf: was gonna say a lot of that too 16:30:54 masonf: agree it's very ambiguous 16:31:02 ack masonf 16:31:10 masonf: picker-icon was chosen because it was indeed not a button (the whole control is) 16:31:18 q+ 16:31:29 masonf: so i'd lean towards using -icon for everything because whether it's a button or not is ambiguous, but it's always an icon in some way 16:31:43 ack ntim 16:31:59 ntim: I lean toward simplicity, like ::step-up (no suffix) 16:32:12 ntim: but in this case I think simplicity would be using the -icon suffix everywhere 16:32:18 ntim: making the distinction is really hard, yeah 16:32:33 ack ydaniv 16:33:03 ydaniv: from what I know in UIs, button is something you activate with a click/keypress, and icon is activated by hover/focus, so I lean towards button 16:33:11 ack lwarlow 16:33:23 lwarlow: wanted to push back on "it's always an icon", not sure that's always true 16:33:39 q+ 16:33:42 It's an icon with the words "choose a file" ... :-) 16:33:52 lwarlow: file-selector-button is actually a button, not an icon. step-up/down can be arguable, but they're rendered as a button. does depend on stylesheet to some extent 16:34:10 lwarlow: I do agree ::reveal should have a suffix, ::reveal on its own isn't clear enough 16:34:24 lwarlow: it even reads more as a pseudo-class on its own, not right as a pseudo-element 16:34:44 lwarlow: so id' be okay with ::reveal-icon if the group likes it. but i'd be a bit more against ::step-up-icon 16:34:51 `revealer`? 16:34:52 ack kbabbitt 16:35:07 I like ::reveal-icon because it also opens the possibility for other things than just an interactive button 16:35:21 kbabbitt: I just need a name so I can write down a spec, can explore the more general case in another issue. fine with either icon or button 16:35:22 ack fantasai 16:35:25 It's not an icon with words though... it's just some text in all 3 engines. 16:35:40 fantasai: we should focus on the author experience and what they'll have to memorize, and how we can reduce the memory load. so staying away from categorizing too much is best 16:35:58 +1 to fantasai 16:36:00 +1 I'd be okay with that 16:36:02 fantasai: for this issue, seems like we might just say ::clear-icon and ::reveal-icon (and leave the other pseudos undecided for now) 16:36:07 +1 for me too 16:36:07 +1 I'd be happy with that 16:36:14 s/undecided/alon/e 16:36:17 s/undecided/alone/ 16:36:26 +1 16:36:42 RESOLVED: Go with ::clear-icon and ::reveal-icon 16:36:52 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12218 16:36:54 Topic: [css2][css-flow][css-sizing] How do min/max block sizes affect bottom margin collapse with last child? 16:36:54 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12218. 16:37:04 Is there a distinction between things that edit the contents of the field, and things that do other things 16:37:33 github: none 16:37:59 github-bot, take up https://github.com/w3c/csswg-drafts/issues/12132 16:37:59 Topic: [css-backgrounds-4] Using logical keywords in background-position shorthand with multiple backgrounds 16:37:59 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/12132. 16:38:53 weinig: basically this boils down to a discussion about how we should expose these things 16:39:11 ... and whether we need a special wording or special value to represent the fact that this is a logical property 16:39:15 ... in a way that's not usually done 16:39:24 ... not sure there's a resolution to be had yet, probably needs specific spec text proposal 16:39:30 ... before there's motion forward 16:39:36 fantasai: I think we need to hash out some specifics 16:39:42 ... would it be useful to introduce people? 16:39:48 TabAtkins: I would find it useful to have a quick summary 16:39:56 Rossen4: yes especially if we want to resolve 16:40:19 weinig: problem statement is that we want to add the logical versions of background-position 16:40:30 ... b-p-block, -inline 16:41:01 ... because these are list properties, you can wind up in a position where it's not clear ... 16:41:40 fantasai: the issue is that, in background-position, we have some logical, some physical, some both ways of specifying position 16:41:46 .... we also have longhands for background-position 16:41:57 ... x and y, and probably want block and inline longhands as well 16:42:11 ... mapping these two together ends up requiring some kind of way of tracking which was specified later in the cascade 16:42:19 ... also requires a way to represent computed value of each of these things 16:42:28 ... for the first problem, proposal was to add a `defer` keyword 16:42:46 ... the author would usually not use, but implementation would use to track each individual longhand whether it's setting something 16:42:51 ... or the other property is setting something 16:42:58 ... if both say defer, resolve to initial value 16:43:20 ... in terms of representing computed value, there's been some discussion, if you set background-position-inline to start-edge, what is value of background-position-x and y 16:43:33 ... latter half of discussion is about tracking that information about which side you're setting from 16:43:36 ... into computed value 16:43:46 ... and then serializing out the appropriate depending on which longhand it came from 16:44:25 weinig: that sounds right. it has to do with the fact that the logical properties usually have e.g. margin: left maps very clearly to inline start or end always 16:44:48 ... but because background takes a 2-value thing there's no clear mapping from e.g. background block to regular background 16:44:52 ... and so we need additional state 16:45:12 fantasai: for example background-position-x 0% has same meaning as background-position-inline 100% in rtl 16:45:24 ... with other shorthands we have all 4 sides and each one maps exactly and computed value space is the same 16:45:26 ... so you can have a single value 16:45:33 The main problems seems to be that there are *both* logical keywords *and* logical sub-properties, and it's a list valued property that allows mixing logical and physical within the list. 16:45:38 q+ 16:45:43 ... whereas for these properties, in that example you can't return 0% because that would give you the opposite 16:45:53 SebastianZ: what fantasai said is what I posted in one of my later commments 16:46:04 ... there are some examples regarding physical and logical properties and how to handle them 16:46:10 ... idea would be to add a new defer keyword for that 16:46:12 ... like fantasai said 16:46:19 ... if you set background-position left bottom 16:46:26 ... and later read background-position-inline 16:46:29 ... question is what you get back 16:46:35 ... idea was to add a defer keyword 16:46:49 ... was wondering if we need that keyword or if we can resolve that you use start or end in those cases 16:47:11 fantasai: I think weinig is right, we need to do a thorough writeup of details 16:47:22 weinig: issue contains a lot of examples, work through a lot of edge cases 16:47:37 ... sticking point was that the way logical properties are currently defined has certain assumptions about being able to map directly 16:47:50 ... either we need to change those base assumptions or add some additional state here that works with that structure 16:48:01 ... ultimately we can work through all of the examples to see they do make sense, and you can map them 16:48:14 ... we just need the foundational logic to be updated to allow this more complicated mapping 16:48:20 ... we need to write something up, I can try to do that 16:48:30 Rossen4: wondering if we should continue that discussion in the issue 16:48:32 fantasai: yes 16:48:43 ... that's the next step 16:48:51 I think another question is whether the logical subproperties are actually desirable, or whether we should just add new logical keywords. 16:49:27 github-bot, take up https://github.com/w3c/csswg-drafts/issues/3070 16:49:28 Topic: [css-flexbox-2] Add flex-wrap: balance; 16:49:28 OK, I'll post this discussion to https://github.com/w3c/csswg-drafts/issues/3070. 16:49:49 TabAtkins: we've been wanting some way fo balanancing flex lines forever 16:49:59 ... ian spent some time putting together an experimental impl 16:50:06 ... available in chrome 138 with experimental web platform features 16:50:16 ... quick description of what we've proposed, details are malleable: 16:50:23 ... syntactically this is just an addition to flex-wrap property 16:50:31 ... balance keyword with optional integer with # of lines to balance 16:50:43 ... behavior is: figure out how many lines flexbox will have, or estimate with basic layout 16:50:50 ... and distribute in balanced fashion instead of greedy fashion 16:51:01 ... current behavior is to use same size as for line breaking 16:51:12 ... potentially other ways to balance things nicely across multiple rows 16:51:29 ... minimum lines feature, integer, is required for cases where it's a column flexbox where available space is infinite and you would never wrap 16:51:43 ... in wikipedia bibliography, cuyrrently done using expensive manual code 16:51:50 ... could insteadf be done with a flexbox with 2 columns 16:51:56 ... ends up being a simple feature overall 16:52:02 ... precise details we can continue to work out 16:52:07 ... we're asking to be able to add this to flexbox 2 16:52:16 fantasai: we have several things that should go into flex 2 16:52:22 TabAtkins: this is mature, we can open spec with it 16:52:23 Received very positive developer feedback - https://bsky.app/profile/una.im/post/3lpcjcjn4w22r 16:52:30 fantasai: how gaps interact with flex algorithm 16:52:39 ack SebastianZ 16:52:54 TabAtkins: request is open a new draft, flexbox 2, editor's draft, include at least this flex-wrap balance feature 16:53:02 ... and at editor's discretion whatever else we want to put in 16:53:18 ack fantasai 16:53:21 fantasai: I think having a flex-wrap balance feature is a good idea and we should do it 16:53:29 ... some discussion about having balance stuff on item-pack instead of flex-wrap 16:53:41 ... in any case you probably want to split out whether you're wrapping and what direction from the style 16:53:45 ... just like we do for text balancing 16:53:54 ... the kind of, how you prefer to place items is a separate control 16:53:59 ... so I think it should be a separate property 16:54:08 ... last time we talkd about it, we tralked about item-pack: balance 16:54:14 ... happy with that or we can consider other things 16:54:30 TabAtkins: we need to resolve those remaining items questions sooner rather than later but I don't want to take one right now 16:54:36 fantasai; in any case it should be a separate property 16:54:41 TabAtkins: happy to figure that out in the draft 16:54:49 ... not looking to ship tomorrow, but ready to explore 16:54:56 Rossen4: proposal is to open new ED for flex level 2 16:55:07 ... and flex-wrap balance, and continue to work on it there 16:55:16 Rossen4: objections? 16:55:29 fantasai: happy to take a resolution to add a flex balance feature as long as it's a separate property 16:55:37 TabAtkins: happy to have flex balance feature, syntax TBD 16:55:38 I'm a little uneasy about the "leave how to balance up to implementations" part; want to be sure the behavior is reasonably specified 16:55:45 but not objecting to the feature in general 16:55:49 Rossen4: any objections? 16:55:54 PROPOSED: Add a flex wrap balance feature, as a property separate from flex-wrap 16:56:25 TabAtkins: syntax TBD as part of wrap up of item discussion 16:56:30 fantasai: but put something in spec right? 16:56:40 TabAtkins: yes, doesn't matter what yet, don't need to resolve on syntax yet 16:56:48 ... don't want to resolve on syntax until we have the wider discussion 16:56:59 fantasai: draft something into ED but draft as separate property 16:57:06 TabAtkins: we don't need that as part of the resolution 16:57:13 Rossen4: syntax TBD is good enough, we'll figure out what that syntax is 16:57:31 fantasai: happy to leave syntax TBD, would like it to not be flex [missed] 16:57:36 TabAtkins: will mark it off as flex bikeshed 16:58:27 RESOLVED: Add a flexbox level 2 with flex balance feature, syntax TBD 16:59:11 github-bot, end topic 16:59:39 Zakim, end meeting 16:59:39 As of this point the attendees have been miriam, dholbert, flackr, romain, dbaron, florian, ydaniv, kizu, andreubotella, SebastianZ, alisonmaher, JakeA, davidleininger, bkardell, 16:59:42 ... jfkthame, kbabbitt, lwarlow, weinig, bramus, smfr, ntim, emeyer, PaulG, chrishtr 16:59:42 RRSAgent, please draft minutes v2 16:59:44 I have made the request to generate https://www.w3.org/2025/09/17-css-minutes.html Zakim 16:59:51 I am happy to have been of service, Rossen4; please remember to excuse RRSAgent. Goodbye 16:59:51 Zakim has left #css 17:19:58 antonp has joined #css