15:58:40 RRSAgent has joined #css 15:58:40 logging to https://www.w3.org/2021/08/18-css-irc 15:58:42 RRSAgent, make logs Public 15:58:43 Meeting: Cascading Style Sheets (CSS) Working Group Teleconference 15:59:32 Morgan has joined #css 16:00:31 webex is being very slow for me this morning 16:01:14 present+ 16:01:23 jfkthame has joined #css 16:02:09 present+ 16:02:13 alisonmaher has joined #css 16:02:19 present+ 16:02:31 present+ 16:02:36 present+ 16:02:42 Present+ 16:02:42 present+ 16:03:17 GameMaker has joined #css 16:03:23 present+ 16:03:25 present+ 16:03:47 sanketj has joined #css 16:03:54 present+ 16:04:02 jensimmons has joined #css 16:04:23 bradk has joined #css 16:04:52 ScribeNick: fantasai 16:05:23 present+ 16:06:36 present+ 16:07:19 Rossen_ has joined #Css 16:07:47 Present+ 16:07:47 [skipping sizing-3 issue until fantasai reviews it] 16:08:10 [checking if emilio is on to discuss 6501] 16:08:19 [skipping] 16:08:38 Tab, are you sure you clicked the right meeting link? 16:08:39 whoops, omw, I was late 16:09:14 present+ 16:09:24 [ waiting for Tab to get connected for item after that] 16:09:26 present+ 16:09:32 present+ 16:09:42 Topic: Throwing on invlaid pseudo-elements in getComputedStyle 16:09:46 bkardell_ has joined #css 16:09:48 github: https://github.com/w3c/csswg-drafts/issues/6501 16:09:57 present+ 16:10:10 emilio: resolved to throw in these cases 16:10:13 emilio: I implemented it 16:10:16 emilio: but people do silly things 16:10:20 emilio: and it's not Web-compatible 16:10:29 emilio: One error is passing property names as pseudo-element names 16:10:32 emilio: and one is ??? 16:10:43 s/???/passing 'false'/ 16:10:54 emilio: Question is, should we try to do something smarter? Should we return an empty style? Should we not throw and return the element's own style? 16:11:03 emilio: Blink and WebKit return the element's own style 16:11:18 emilio: Firefox does that, but not if pseudo-element starts with two colons 16:11:30 emilio: which is at least a bit more forwards-compatible 16:11:38 lea has joined #css 16:11:39 chris_ has joined #css 16:11:48 present+ 16:11:59 astearns: Not returning element style with two-colon strings means we're less likely to have problems when we introduce new pseudo-eements 16:12:00 present+ 16:12:06 emilio: Errors we're seeing seem to be mostly typos 16:12:27 emilio: ... 16:12:33 emilio: We could special-case in the IDL 16:13:03 dbaron[m]: Seems the Web-compat probems are strings without double-colon, so could throw on double-colon strings that are also errors 16:13:06 emilio: I'd be OK with that 16:13:22 bradk has joined #css 16:13:26 TabAtkins: Don't have a strong opinion, whatever is both Web- and forwards-compatible 16:13:33 TabAtkins: document legacy weirdness 16:13:52 smfr has joined #css 16:13:58 present+ 16:14:01 astearns: We'd resolved on throwing rather than empty style before, why did we decide that? 16:14:09 emilio: usually better, but optimistic that we could get away with it 16:14:26 emilio: anyone object to returning empty style if string begins with colon, otherwise return element style? 16:14:46 the cases where we need to worry about fowards compat are (we think) the start-with-colon case 16:14:47 s 16:15:04 iank_: Does this paint us into a corner for slot pseudos or anything like that? 16:15:08 emilio: I don't think so 16:15:25 emilio: If you do '::slotted' there's no style to return, multiple elements can match it 16:15:36 astearns: objections? 16:16:18 RESOLVED: Return empty style if string begins with a colon, return element style otherwise 16:16:50 Topic: Shorthand serialization when longhands have variables 16:16:56 github: https://github.com/w3c/csswg-drafts/issues/6253 16:17:28 TabAtkins: Variables spec has text about handling situations when shorthand contains variable and you ask for longhands 16:17:37 TabAtkins: at that time, we don't know what they will be, until computed value 16:18:01 TabAtkins: Same problem opposite direction, if variables in longhands, trying to serialize shorthand 16:18:13 TabAtkins: can get two completely invalid longhand that creates a valid shorthand, for example. 16:18:31 TabAtkins: So spec specifies the same thing, if longhand contains variable and you ask for shorthand, considered unserializable shorthand. 16:18:38 TabAtkins: wanted to confirm edits with WG 16:18:50 emilio: This is the only thing that makes sense 16:19:10 TabAtkins: Firefox and Chrome do specified behavior, WebKit does incorrect behavior 16:19:15 TabAtkins: currently 16:19:20 astearns: Any concerns about this? 16:19:35 RESOLVED: accept edits 16:19:53 Topic: overflow-clip-margin + border-radius continuity 16:20:10 github: https://github.com/w3c/csswg-drafts/issues/5896#issuecomment-892995385 16:20:14 ScribeNick: TabAtkins 16:20:43 fantasai: I think dbaron's comments are mostly editorial 16:20:47 fantasai: So I'll ask the main question 16:21:24 fantasai: Do we want to accept that the overflow-clip-margin follows the same corner-adjustment rules as margin/border/padding edges (so pointy corners stay pointy, round corners stay round) 16:22:00 fantasai: When you have a curved border edge, and we calculate the equivalent padding or content-box edges, we subtract the border/padding widths, flooring at zero. 16:22:40 fantasai: Similarly when you're going out to the margin edge or box shadows, we *add* the margin/shadow size to the radius, but with a special adjustment that keeps zero radius at zero. 16:22:51 Rossen_ has joined #css 16:22:56 fantasai: Some math keeps it continuous between the two cases without causing noticeable changes in most cases 16:23:15 dbaron[m]: Another complexity is that a corner might be an inset on one side and outset on the other. already possible with negativemargins 16:23:26 dbaron[m]: This probably makes that case more common, since it's an offset from the padding edge 16:23:41 https://drafts.csswg.org/css-backgrounds-3/#corner-shaping 16:23:45 dbaron[m]: I think the spec actually does something reasonble for this right now, but it's by accident. I think it's right, tho 16:24:02 https://drafts.csswg.org/css-backgrounds-3/spread-radius 16:24:03 dbaron[m]: It probably should look more intentional to make sure impls think about that case 16:24:31 fantasai: I just posted the testcase we used when we were figuring out the continuity formula 16:24:43 bradk has joined #css 16:24:50 fantasai: So proposal is to use the same formula for overflow-clip-margin 16:25:21 astearns: Any othe ropinions? 16:25:25 [no objections] 16:25:31 a-ja has joined #css 16:25:40 RESOLVED: overflow-clip-margin uses the same corner-adjustment formula as margin/etc 16:25:52 astearns: Should we also resolve about being more clear about the positive-and-negative margin case? 16:25:55 fantasai: sure 16:26:10 astearns: So proposal is to accept dbaron's feedback, making the "accidental" correctness more explicit. 16:26:32 RESOLVED: Accept dbaron's editorial feedback about making the "accidental" case more explicit. 16:26:51 dbaron[m]: I don't think there's more to discuss, but I did raise more substantive editorial issues that I think could confused implementors. 16:27:00 dbaron[m]: Do think we need to deal with those, but don't think we need group time for them. 16:27:19 astearns: So fantasai you'll go thru those and either ipmlement or bring back to the group if necessary? 16:27:27 yes 16:27:38 Topic: aliasing display-legacy at parse-time 16:27:45 ScribeNick: fantasai 16:27:47 github: https://drafts.csswg.org/css-backgrounds-3/spread-radius 16:27:54 github: https://github.com/w3c/csswg-drafts/issues/5575#issuecomment-893899115 16:28:15 TabAtkins: Awhile ago, Oriol brought up that we have the short display values like inline-block, inline-table, etc. 16:28:25 TabAtkins: after attempt of splitting display property and then re-unifying 16:28:30 TabAtkins: we have two-keyword values 16:28:46 TabAtkins: question was whether these two ways of writing the same value should be canonicalized at parse time or some other time 16:29:05 TabAtkins: Argument for canonicalizing at parse time is that code written before these values were valid, might be expecting inline-foo pattern 16:29:16 TabAtkins: if author writes 'inline flow-root' for some reason, that code wont correctly respond 16:29:35 TabAtkins: counter-argument is that it can be confusing when we return something different from what author wrote, especially for specified values 16:29:46 TabAtkins: and code written in the past will continue to work, just not with the new syntax 16:29:57 TabAtkins: and that code wouldn't work for new display values in any case 16:30:17 TabAtkins: fantasai and I come down on the side of not canonicalizing at specified-value time 16:30:25 TabAtkins: It doesn't create Web-compat issues 16:30:27 q+ 16:30:36 TabAtkins: and it lets authors work in the syntax they specified 16:31:13 emilio: is proposal to canonicalize at computed value time? 16:31:25 fantasai: Don't we have a requirement for shortest-serialization for getComputedStyle? 16:31:31 TabAtkins: separate question 16:31:40 emilio: It's very easy to check for one and not the other 16:31:51 emilio: I think it's better to canonicalize at parse time 16:32:17 TabAtkins: It sounds like you're saying that canonicalize to happen at some point, and while prefer at specified value but ok if only at computed value? 16:32:20 bradk has joined #css 16:32:24 iank_: Not concerned about Web compat? 16:32:30 emilio: I am, but figure they're accounted for? 16:32:41 iank_: I don't think anyone's done research on this 16:32:55 iank_: If Firefox implements this and it breaks or doesn't break a bunch of sites... 16:33:14 TabAtkins: not canonicalizing can't have Web-compat impact, because legacy code written with inline-block will still return inline-block 16:33:29 TabAtkins: New code written against old libraries would not work maybe, but that's not compat 16:33:37 emilio: Firefox has shipped the new syntax for awhile now 16:33:40 emilio: so could have compat 16:33:47 emilio: I don't think it's super useful not to canonicalize 16:33:54 emilio: useful for authors that write JS code and browsers 16:34:14 astearns: I suspect whether or not we canonicalize at parse time is much less web compat concern than if we do it at computed-value time 16:34:32 astearns: but there's argument of if computed-value is simplified, might be simpler to do it at parse time 16:34:40 iank_: whether we do it at parse time... 16:34:59 TabAtkins: fwiw, I agree that at computed value time they should be canonicalized, because they are in effect the same value, and shortest serialization would require it 16:35:27 iank_: Are we ok with backing out if there's a compat problem? 16:35:48 emilio: this proposed resolution is the behavior of the only existing implementation 16:36:00 TabAtkins: yeah, so this is completely web-compatible if anything can be 16:36:32 fantasai: The existing rule is "shortest most backwards-compatible serialization" 16:36:55 astearns: So want to be clear that they're the same 16:37:21 RESOLVED: these values compute to each other and thus serialize as "shortest most backwards-compatible" which is the older keywrods 16:37:53 TabAtkins: 2 objections to canonicalizing at parse time 16:38:03 TabAtkins: First, specified value should reflect what the author spadi 16:38:12 TabAtkins: if put .style="inline flow-root" should get that back when request it 16:38:44 TabAtkins: Also, canonicalizing back out would make it harder to split back out into two longhands 16:38:49 emilio: I don't see why 16:39:26 bradk has joined #css 16:40:18 fantasai: when teaching CSS, Jen and Rachel have found the split keyword syntax useful for explaining the difference between inner and outer display roles 16:40:19 yup to useful for teaching. Once they are in every single browser everywhere, I expect developers to start using them exclusively. (AKA, 2027?) 16:40:46 fantasai: If they disappear from the OM as soon as they're inputted, that creates a strong bias against using them, they're not so real anymore 16:40:54 [missed exchange] 16:41:03 emilio: I don't feel super-strongly, can compromise at computed-value time 16:41:11 emilio: I think it's weird one way or the other 16:41:21 emilio: computed value of 'display' is more looked-up than specified value 16:41:39 TabAtkins: in general specified values aren't looked at too much anyway, unless looking at value of style attribute 16:41:57 emilio: I don't see this as super useful, but if fantasai disagrees, it's OK I trust her 16:41:59 ack emilio 16:42:15 jensimmons: I haven't been completely following, but +1 to what fantasai said 16:42:22 jensimmons: about the syntax of inner and outer is super useful 16:42:35 jensimmons: teaching now, and later once all browser support it, will likely switch to it 16:42:46 emilio: but if we serialize into old syntax, doesn't seem so useful? 16:43:05 emilio: serializing the old value increases time to adoption, while serilizing the new value which is nicer, but... 16:43:25 astearns: I do agree with Tab's first point, that we do try to keep the serialization of specified values as close to what author inputted as possible 16:43:42 astearns: and sounds like Emilio is OK with that, and didn't hear concerns about having specified vs computed being different 16:43:52 astearns: so proposed resolution is that for specified values we serialize as written 16:44:00 astearns: and for ocmputed value, we canonicalize 16:44:19 emilio: not quite as written, if you write "inline flow"... do you want to serialize to "inline"? 16:44:22 emilio: nevermind 16:44:23 emilio: sounds OK 16:44:52 jensimmons: Not sure what issue is, but if this affects what appears in the computed panel in devtools, idea of browsers saying "I took old value for you and put it into the new style" that would be a good thing 16:45:04 emilio: The computed panel, you can put whatever there. Doesn't affect specified. 16:45:16 jensimmons: I think what happens in parsing engine, nobody knows, doesn't matter to authors 16:45:24 astearns: So can we resolve? 16:45:38 RESOLVED: serialize specified value of display using keywords specified 16:45:52 +1 16:46:00 Topic: display: contents list-item 16:46:06 github: https://github.com/w3c/csswg-drafts/issues/4022 16:46:12 astearns: Proposal is close wontfix? 16:46:27 TabAtkins: brought up that there's nothing theoretically wrong with 'display: contents list-item' which would generate a ::marker 16:46:38 TabAtkins: Currently the grammar doesn't allow combining these two 16:46:48 TabAtkins: My objection to this is just that we don't have any particularly strong reason to do so 16:46:52 TabAtkins: but there's nothing wrong with it 16:46:56 TabAtkins: so suggesting close no change 16:47:10 TabAtkins: but no objection to making it possible if someone thinks this is a useful thing that we should allow 16:47:23 astearns: My case in the comments is completely theoretically 16:47:30 TabAtkins: I can see it, but I think it's one more thing that we don't necessarily need 16:47:37 emilio: seems like one more case that we should avoid, so ok with no change 16:47:49 astearns: Any objections to no change? 16:47:52 RESOLVED: close wontfix 16:47:56 s/case that we should/edge case we should 16:48:08 astearns: If Mats feels strongly, he could reopen it 16:48:21 Topic: flow keyword is redundant 16:48:24 github: https://github.com/w3c/csswg-drafts/issues/3998 16:48:33 bradk has joined #css 16:48:43 TabAtkins: Mats pointed out that the 'flow' keyword doesn't technically do anything 16:48:58 TabAtkins: the display-outside value you pair it with, if don't specify anything else, it's implied 16:49:01 TabAtkins: was wondering why it's there 16:49:04 TabAtkins: there are 2 reasons 16:49:12 TabAtkins: it was a remnant of display-inside/display-outside as sperate properties 16:49:18 TabAtkins: did need a keyword for ordinatry flow 16:49:26 TabAtkins: when we collapsed back to shorthand, combined values 16:49:42 TabAtkins: and then I'm personally not a fan of states which are expressed by a lack of a keyword 16:49:49 +1 16:49:59 TabAtkins: so prefer when a particular state allows an explicit keyword, even if getComptutedStyle omits it 16:50:05 TabAtkins: lastly, Firefox already shipped with it 16:50:15 TabAtkins: so my preferred resolution is to close no change, keep the keyword 16:50:38 astearns: any other comments? 16:50:46 RESOLVED: close no change 16:51:06 jensimmons: Sounds to me like this would have a big impact on authors for the reason we discussed earlier, and we want this 16:51:11 jensimmons: so all in favor of the resolution 16:51:19 Topic: Publishing Display 16:51:27 github: https://github.com/w3c/csswg-drafts/issues/6516 16:51:46 astearns: proposed resolution is to publish CRD 16:51:50 astearns: we have changes list and doC 16:52:00 looks good to me 16:52:14 TabAtkins: the one thing, we will need to do slight modifications to make that resolution about canonicalization clear, but I think that's the only change not reflected in the draft 16:52:35 fantasai: We're actually set to publish a new CR Snapshot, which is the one that invokes patent policy 16:52:48 fantasai: But we don't have horizontal review when we pulled in 'order' and 'visibility' 16:52:58 fantasai: We need review on those bc they're major changes compared to previous CR 16:53:15 https://drafts.csswg.org/css-display-3/#visibility 16:53:27 fantasai: Also want the WG to take a look at the 'visibility' section in particular. We didn't just copy from CSS2, we added more text, especially for interactivity (clicking, etc) which wasn't clearly specified in CSS2 16:53:43 fantasai: So after we get review on this new CRD, our intention is to request a new CR snapshot 16:53:57 astearns: Objections to publishing CRD after edits from today? 16:54:11 RESOLVED: Publish new CRD of css-display-3 (after today's edits) 16:54:34 Topic: Invalidation of Static Ranges 16:54:38 github: https://github.com/w3c/csswg-drafts/issues/4597#issuecomment-892202307 16:54:57 dandclark: Static ranges can get into weird states, like if I remove one boundary from the DOM 16:55:10 dandclark: Sanket came up with criteria for deciding if a range is valid or invalid 16:55:28 dandclark: but the qustion is, if user adds range to a highlight should we use a live range, or use static range internally 16:55:47 dandclark: reason to use live range, don't have to check validity in the same way because they're kept up to date 16:55:59 dandclark: We discussed awhile, and decided not to back static ranges with a live range 16:56:18 dandclark: first, perf reasons -- live ranges, they can slow down DOM mutations because live ranges have to be notified every time there's a DOM mutation 16:56:22 dandclark: static range doesn't have that issue 16:56:30 dandclark: we did some research showing that this perf issue is observable 16:56:39 dandclark: and we also found that with caching, it's possible to cache static range validdity 16:56:49 dandclark: which reduces perf cost during painting 16:56:58 dandclark: but if they were backed by live ranges internally, that wouldn't hold 16:57:07 dandclark: because DOM mutations would have to update, so lose perf benefits 16:57:18 dandclark: Sanket also raised some issues with using live ranges internally 16:57:22 castastrophe has joined #css 16:57:23 dandclark: Authors don't have direct references to those live ranges 16:57:34 dandclark: so difficult, how would they remove or modify a highlight that they added? 16:57:44 dandclark: even if we added a map, can become out of sync with tree 16:57:59 dandclark: and not clear when safe to drop live range, because author might de-regeister and re-register a static range 16:58:10 dandclark: so confusing developer-confusing scenarios there, tricky answers for spec 16:58:21 dandclark: so proposal is to allow static ranges and live ranges to be added to highlights 16:58:29 dandclark: and there's no live range backing for static ranges 16:58:52 astearns: My first question was, can developer use either 16:58:53 bradk has joined #css 16:59:00 astearns: is it clear to devs that live range could have perf implications? 16:59:09 dandclark: It's in line with current use of live ranges 16:59:22 dandclark: Spec issue states that static ranges solve this perf 16:59:34 dandclark: Use of live ranges in genera, here or otherwise, has these perf costs 16:59:46 dandclark: I think it's a documentation and devrel issue 16:59:53 dandclark: of when live ranges vs static ranges are appropriate 17:00:03 sanketj: HTML doc also mentions this (?) 17:00:07 sanketj: It has been documented 17:00:25 sanketj: Static ranges are fairly new concept, previously only had option of live ranges 17:00:37 astearns: OK, out of time 17:00:48 astearns: my understanding is that with this impl experience, you would like to close issue no change? 17:00:54 dandclark: yes 17:01:03 astearns: OK, we'll expect to close no change, and will resolve next week 17:01:07 present+ 17:01:09 Meeting closed. 17:09:48 topic: end 17:09:53 zakim, end meeting 17:09:53 As of this point the attendees have been cbiesinger, rachelandrew, alisonmaher, dandclark, Morgan, dbaron[m], miriam, GameMaker, plinss, sanketj, bradk, jensimmons, Rossen_, 17:09:56 ... emilio, argyle, TabAtkins, bkardell_, chris_, lea, smfr, castastrophe 17:09:56 RRSAgent, please draft minutes v2 17:09:56 I have made the request to generate https://www.w3.org/2021/08/18-css-minutes.html Zakim 17:09:58 I am happy to have been of service, astearns; please remember to excuse RRSAgent. Goodbye 17:10:03 Zakim has left #css 18:09:06 dholbert_ has joined #css 18:13:29 futhark has joined #css 19:20:31 dholbert_ has joined #css 19:45:52 castastrophe has joined #css 20:38:42 dholbert has joined #css 21:45:37 castastrophe has joined #css