07:16:32 RRSAgent has joined #css 07:16:32 logging to http://www.w3.org/2017/08/04-css-irc 07:16:34 RRSAgent, make logs public 07:16:37 Zakim, this will be Style_CSS FP 07:16:37 ok, trackbot 07:16:37 Meeting: Cascading Style Sheets (CSS) Working Group Teleconference 07:16:37 Date: 04 August 2017 07:16:39 present+ 07:16:42 scribenick:tantek 07:16:57 present+ 07:17:01 TabAtkins: (shows tabatkins.github.iospecs/css-shadow-parts/ 07:17:12 https://tabatkins.github.io/specs/css-shadow-parts/ 07:17:13 present+ bdc 07:17:24 TabAtkins: (shows https://tabatkins.github.io/specs/css-shadow-parts/ ) 07:17:26 present+ 07:17:33 deep combinator was too powerful 07:17:35 present+ myles 07:17:38 works for transfering single values 07:17:41 terrible for outside of that 07:17:49 in particular one element, e.g. heading part of your warning message 07:17:55 you have to expose a lot of custom properties 07:17:59 theoretically all 300+ CSS props 07:18:06 then xfer each one by one 07:18:14 worse if you try to style pseudo 07:18:16 s 07:18:20 huge combinatorial problem 07:18:27 variables fall down quickly if you want to allow ... 07:18:35 this proposal (link) that Shane and I wrote up 07:18:46 glazou has joined #css 07:18:49 for letting authors expose an entire element from their shadow dom to other parts of the page 07:18:55 this would go into the dom spec 07:18:59 we'd add some piece 07:19:08 s 07:19:16 s/(link)/https://tabatkins.github.io/specs/css-shadow-parts/ 07:19:24 (shows feature in spec) 07:19:43 important part in CSS, two new pseudo-elements that appear on any shadow host 07:19:48 ::part() and ::theme() 07:19:54 (summarizes proposal from link) 07:20:26 do allow some pseudo-classes on them 07:20:39 but can't depend on anything to do with the DOM tree, e.g. no ::part():first-child 07:20:53 one aspect of vars that is availabe to preserve is that they do allow you to target things further down in the tree 07:21:07 useful in practice for authors right now 07:21:44 ::part() is one level, :theme() is what this component chooses to expose plus what all its subcomponents choose to expose 07:21:48 s/:theme/::theme 07:22:15 TabAtkins: In general ::part is better to do, helps with encapsulation. But ::theme helps you do what variables do. 07:22:29 (shows example of a custom button) 07:23:01 TabAtkins: there are some suggestions for more features, e.g. elements may want to censor 07:23:16 Florian has joined #css 07:23:19 e.g. give theme ability to exclude certain elements from being exposed 07:23:26 ready for FPWD 07:23:42 fantasai: ED? 07:23:50 TabAtkins: comments? 07:24:06 TabAtkins: I'd like to pursue this in the public repo, right now it is just in my personal github 07:24:14 TabAtkins: at the very least as an ED 07:24:25 TabAtkins: also ready for FPWD if group is ready for it 07:24:41 glazou: part is always exposed? 07:24:50 glazou: but you need to expose it outside the shadow DOM? 07:24:55 TabAtkins: yes that is exactly the point 07:25:08 glazou: I understand the point, I'm puzzled that we need to add an attribute for that 07:25:16 glazou: part serves same purpose as class 07:25:24 TabAtkins: but we don't want to expose arbitrary class(es) 07:25:43 astearns: we don't want to expose arbitrary class(es), why don't we say component say these classes that are allowed to style 07:26:01 TabAtkins: and then the selectors styling in the component could look like the selectors outside 07:26:16 glazou: I have another suggestion, give a list of attribute selectors, name and value 07:26:23 plinss: but then you're ... 07:26:27 glazou: unless ... 07:26:46 plinss: what's in the ... is not just the ... not just in the shadow tree, but something that is deliberately exposed 07:26:47 s/TabAtkins: and then/astearns: and then/ 07:27:02 plinss: and then propagate these things up to the route 07:27:04 s/route/root 07:27:17 plinss: this is basically what I wanted but just wanted pseudos... 07:27:24 plinss: can we do structure? 07:27:25 TabAtkins: no 07:27:33 plinss: it flattens the entire shadow tree? 07:27:45 TabAtkins: yes, because exposing the entire structure exposes too many details 07:27:54 plinss: ... so I'm find with that 07:27:55 q? 07:28:06 fantasai: I don't understand the use case for theme 07:28:24 TabAtkins: vars right now can be used to target an arbitrary depth down the shadow tree 07:28:32 TabAtkins: same thing that theme does 07:28:34 q+ 07:28:37 TabAtkins: part gives you only one level 07:28:43 q? 07:28:56 TabAtkins: not currently a way to block theme like vars 07:28:59 fantasai: why? 07:29:13 TabAtkins: e.g. to theme custom buttons regardless of where they are 07:29:19 TabAtkins: just by setting vars 07:29:29 fremy has joined #css 07:29:32 fantasai: second question is ... 07:29:37 q+ 07:29:45 fantasai: just wondering if ryosuke has read your draft 07:29:49 TabAtkins: he has but doesn't like theme 07:30:12 fremy: why can we just not create a namespace of classes that we expose? 07:30:23 instead of a new attribute 07:30:29 classes that start with ... 07:30:44 ack fremy 07:30:50 TabAtkins: possible, but class has traditionally be treated as a user (author) space thing, and we don't introspect on the internals of class name 07:30:57 dino has joined #css 07:31:00 fremy: it seems like a bad idea to have to use part and class 07:31:11 TabAtkins: class for internal styling, use part for how external world can see you 07:31:15 q? 07:31:23 ack dbaron 07:31:30 dbaron: I'd be in favor of this moving to ED space 07:31:41 the structure thing that plinss brought up could use some more examination 07:31:53 I can imagine different things that all expose the same piece instead 07:32:02 and you'd want to expose that instead of having to mirror the names 07:32:10 TabAtkins: yes that is possible, trying to hit the minimal case right now 07:32:14 q? 07:32:19 can carefully expose more structure 07:32:25 plinss: stack of custom elements? 07:32:34 TabAtkins: each pseudo can expose its parts 07:32:58 no particular reason author needs to know your buttons are x-button vs button 07:33:14 dbaron: one other point, I find the part and theme names confusing 07:33:19 TabAtkins: which part? (lol) 07:33:33 dbaron: the fact that they are very similar, but have very different names that don't tie them together 07:33:43 TabAtkins: like because "theme" doesn't indicate it is like "part"? 07:33:50 dauwhe: I certainly support ED on this 07:33:54 ack dauwhe 07:33:54 we have this problem in the ebook world 07:33:58 maybe ::parts() 07:33:58 publishers creating styles 07:34:05 need users to override parts of it but not all 07:34:13 we run into lots of problems with the cascade 07:34:23 trying to allow user to control P but not H 07:34:39 q+ to ask why '#the-button label' (with a space or a ">") isn't enough. 07:34:43 TabAtkins: ... inside shadow vs outside shadow 07:34:49 (explains how to solve it) 07:34:49 +1 to ED 07:35:09 Rossen: so I heard a few in favor of moving to ED to begin with 07:35:11 Bert: I have a q 07:35:17 not sure I understand how you expose part 07:35:17 we need a QA person ;) 07:35:23 do you need pseudo at all? 07:35:33 TabAtkins: the button already has children, the may or may not be exposed 07:35:45 you can take the actual dom children and pull them into the shadow dom 07:35:58 and two, letting you use the descendant combinator implies you can use child combinator 07:36:02 Bert: no at same level 07:36:09 TabAtkins: I would find that a little bit ... 07:36:25 big one is that child and descendant combinators already match the actual children 07:36:29 Bert: namespace issue ok 07:36:50 TabAtkins: pseudo gives you a clear context abou what you're matching 07:36:57 Because of how the cascade works for rules originating inside the shadow vs outside the shadow, you can prevent the outer page from manipulating particular properties on an element by just setting them from inside the shadow dom. 07:37:06 plinss: one thing I like about pseudo approach, in the ExtWeb approach, you can use ... to explain pseudo ... 07:37:17 plinss: I can explain that that was a ... element all along 07:37:26 TabAtkins: our inputs are implemented with shadow dom 07:37:44 TabAtkins: any objection to ED space? 07:37:48 Rossen: does anyone? 07:37:57 Rossen: doesn't seem like it. go ahead and move it. resolved 07:38:12 RESOLVED: move CSS Shadow Parts to WG ED space 07:38:19 Rossen: ... ? 07:38:29 TabAtkins: ... will go into ... and ... will go into ... 07:38:46 Rossen: let's go back to ... 07:38:50 The part attr will go into the DOM spec; the pseudo-elements will go into the SCoping spec. 07:38:57 Rossen: review of TTML 07:39:05 Rossen: we have Nigel joining us on the call 07:39:06 nigel_ has joined #css 07:39:20 Topic: Review of TTML 07:39:22 ScribeNick: fantasai 07:40:35 Rossen: Asked a few weeks ago to review TTML current WD 07:40:48 https://lists.w3.org/Archives/Public/www-style/2017Jul/0007.html 07:40:57 Rossen: Some back and forth over email 07:41:08 Rossen: Provided feedback, first time by dbaron, 2nd time by Florian 07:41:33 Florian: Feedback I wrote wasn't sent to TTML, sent to us to decide if it was my position our position 07:41:39 Florian: We haven't resolved on that officially 07:41:55 Rossen: Would ou want to summarize? 07:42:02 Florian: Roughly very similar to what dbaron saidhalf a year earlier 07:42:11 Florian: Didn't review anything other than style and layout, but for this part 07:42:20 Florian: You ahve a system that is very similar to CSS, but isn't CSS 07:42:30 Florian: Some attributes take the same syntax, but have different semantics 07:42:44 Florian: Some take a superset, some take a subset, some overlap in both ways 07:42:57 Florian: We could do a mapping, but different semantics is a problem 07:43:19 Florian: E.g. 'line-height' defines the height of the line box in CSS, in your case it defines the spacing between baselines which is similar but not quite the same 07:43:31 q+ to ask which cases have different semantics for line height 07:43:33 Florian: Other times you and us solved the same problem in parallel and came up with a different solution 07:43:44 Florian: e.g. your alignment properties are different from ours 07:43:47 q- 07:43:56 See also dbaron's review https://lists.w3.org/Archives/Public/www-style/2016Nov/0106.html 07:43:57 Florian: You can't really map to CSS, you can try but because of these differences, will come out wrong 07:44:09 Florian: Implementing TTML will be completely different from implementing CSS 07:44:10 q+ 07:44:16 Florian: Browsers have a CSS engine 07:44:28 Florian: If not compatible with CSS, unlikely to work out 07:44:37 Florian: There's a rough mapping in an informative part, but it's not really going to work 07:44:54 Florian: I understand the history of starting from XSL:FO, but that's dead for client-side on the Web 07:45:09 Florian: Out of context, it might be a good technology, but in the context of the Web it's hard to fit 07:45:24 ack nigel_ 07:45:24 nigel_, you wanted to ask which cases have different semantics for line height 07:45:27 nigel_: Fair summary 07:45:34 nigel_: Interested in specifics of line height issue 07:45:48 -> https://www.w3.org/wiki/TTML/CSSRequirements 07:45:53 nigel_: One thing, you mentioned an informal document that brings out correspondences to CSS 07:45:57 nigel_: here's a link 07:46:01 nigel_: we did quite a bit of this analysis 07:46:20 nigel_: we used dbaron's and your feedback (which we found) 07:46:26 nigel_: absolutely right that the syntax is different 07:46:42 nigel_: for us, compatibility with previous versions is important; breaking would be a problem for us 07:46:50 nigel_: a lot of the target devices are not browsers 07:47:02 nigel_: but there is a growing recognition that being able to render with CSS would be a good idea 07:47:19 nigel_: So there has to be a syntactic mapping, but wrt semantic mapping... 07:47:43 nigel_: We discussed with TAG recently, and hey had useful view that we should describe the mapping into CSS for this to be useful implemented 07:47:55 nigel_: Question of whether this mapping should be normative, unsure how much real world difference it makes 07:48:03 nigel_: Other recommendation from TAG was that if there were styling requirements 07:48:13 nigel_: then it would be really helpful if there were CSS equivalents 07:48:41 q+ 07:48:41 nigel_: If things that we need in subtitle / caption word aren't in CSS, we ask CSSWG to add them 07:48:48 nigel_: this makes it easier to implment with a CSS backing 07:48:48 q? 07:49:05 nigel_: If we can get to any detail, even offline, want to know e.g. differences in line height semantics 07:49:25 myles_: I guess, we've looked into this a bit and our findings align with Florian's findings 07:49:32 nigel_: Our conclusions are in line with Florian's conclusions 07:49:42 s/nigel_/myles/ 07:50:07 q? 07:50:11 myles_: We would be hesitant to implement if not aligned with CSS 07:50:15 ack myles_ 07:50:35 (Myles represents Apple, works on WebKit) 07:50:44 Florian: Wasn't on TAG, don't know what they said 07:50:59 Florian: But rather than have you define things and us define things in parallel 07:51:15 Florian: better to define in terms of CSS, and if something's missing, then we add it 07:51:36 Florian: Wrt subtle differences, determining how subtle secondary, if they are normatively defined independently 07:51:54 Florian: then there will be differences, and even small differences are problems in deployment 07:52:19 Florian: Differences between different and broken are subjective 07:52:29 Florian: If the syntax layer needs to be different, this is a minor annoyance but fine 07:52:41 Florian: But in terms of semantics, don't redefine separately what's already defined in CSS 07:52:47 Florian: file bugs against us to add things 07:52:54 Florian: Could go through long list of details on every property 07:52:59 Florian: I took line-height as an example 07:53:14 Florian: but given you have normative prose, there are bound to be differences 07:53:15 q+ to mention the spec timing issues 07:53:22 q? 07:53:22 ack Florian 07:53:29 ack 07:53:49 nigel: I understan where you're coming from 07:54:00 nigel: From TTML WG PoV, it's not always so obvious how to add things to CSS 07:54:01 ack nigel 07:54:01 nigel, you wanted to mention the spec timing issues 07:54:23 nigel: but also there is pressure to get a new version of TTML out, and if we had to wait for CSS, wouldn't be able to satisfy our community 07:54:44 q+ 07:54:46 nigel: TTML2 could be seen as a req document, and align with CSS later 07:55:28 nigel: I've not heard any dissent from view that these reqs need to be met 07:55:42 nigel: So assuming there is a ?, we do need to support them in subtitles and captions world 07:55:55 nigel: As soon as we have access to CSS definitions we can add them back in 07:56:04 s/?/requirement 07:56:14 nigel: There is time, actually 07:56:24 nigel: We're in WD at the moment, the review endes in September 07:56:29 nigel: we wouldn't be in CR until after TPAC 07:56:40 nigel: If there is an opportunity to get some featues specified in CSS, could contribute to that in some way 07:56:46 nigel: then there is time to fill some of these gaps 07:56:53 nigel: most important ones that would be useful 07:57:02 nigel: filling line gap 07:57:08 nigel: text-resentation for ideographic scripts 07:57:10 nigel: ruby 07:57:15 nigel: font ??? 07:57:18 nigel: these would be useful 07:57:32 https://www.w3.org/wiki/TTML/CSSRequirements#disparity 07:57:39 https://www.w3.org/wiki/TTML/CSSRequirements 07:57:42 astearns: Not time to define new things in CSS, but time to review list of places where you're unsure if there's concordance 07:57:51 astearns: I saw some things, e.g. where we do have the feature 07:58:09 astearns: Would be nice to have syntax map, and semantics if possible 07:58:22 astearns: Would be good to have someone from group review list to check for actual gap 07:58:29 Florian: We have a bit of precedence with this, with EPUB 07:58:35 Florian: Where they couldn't quite wait for us 07:58:41 Florian: This is overall not a story that ends veyr well 07:58:52 Florian: Similarly to your situation,not all EPUB readers are browsers, but kinda 07:58:53 s/syntax map, and semantics/semantics map, and syntax/ 07:59:12 Florian: When you ask to support things that are not CSS but kinda it's problematic 07:59:43 q? 07:59:48 ack Florian 08:00:01 Florian: Originally they asked us for stuff, and if we didn't deliver fast enough they tried to define their own thing 08:00:18 Florian: But realized that doesn't work, so now are planning to just bug us to prioritize and fix things 08:00:24 Florian: Wrt differences we were discussiong 08:00:35 Florian: I wonder if it's worth doing, if we don't go all the way in 08:00:42 Florian: If we can bring it to the point that browsers can implement 08:00:45 Florian: Then it's worth 08:00:56 q+ to talk about browser display 08:01:02 Florian: But if it's not possible to implement in browsers, then making it less different is maybe not so useful 08:01:18 nigel: wrt displaying in browsers, they do 08:01:25 ack nigel 08:01:25 nigel, you wanted to talk about browser display 08:01:27 nigel: TTML has a profile IMSC 08:01:34 nigel: one of the implementations is a JS implementation with CSS 08:01:48 nigel: clearly there's a desire to present subtitles in CSS 08:01:52 s/CSS/browser 08:02:01 nigel: I imagine same would be true for TTML2 08:02:20 nigel: Experience of editor of IMSC had with creating imsc.js was that he ad to work around limitations of CSS quite a bit 08:02:30 nigel: e.g. putting each character in its own span to tweak its position 08:02:47 nigel: Some easier things to fix, like box-decoration-break 08:03:00 nigel: possibly just understaning layout options in CSS better would help 08:03:09 nigel: As you guessed, ppl will want to map to browsers better 08:03:23 nigel: browsers natively doing is maybe ??? 08:03:46 q? 08:03:53 nigel: Making decision based on whether browsers want to natively present TTML is maybe a step too far 08:04:05 nigel: just about whether to present TTML at all, e.g. using JS libraries 08:04:40 jet: It seems like we're a bit torn in that browser venders see it as obvious to render TTML using our existing layout engines 08:04:47 jet: but the consumers of TTML might want custom layout in the future 08:04:59 jet: e.g. never render markup in front of a face, where browsers wouldn't even know where to start 08:05:12 jet: Need to innovate in ways beyond just render text in a fixed location 08:05:24 q? 08:05:24 jet: Want to align on things like text rendering 08:05:39 jet: but polyfill things that we wouldn't know where to start dealing with 08:05:48 nigel: avoiding faces is done by author positioning 08:05:57 nigel: but sounds really cool 08:06:37 nigel: Hvae a question to you, 08:06:50 nigel: TAG said it would really be good if CSS would support requirements 08:06:54 nigel: Is that something you concur with? 08:07:20 Rossen: So long as the feature requirements that are specific to CSS come to us fit to overall model of what we're doing 08:08:00 Rossen: as long as they are coming as requests we will definitely review and consider 08:08:10 Rossen: for those that don't, not much we can do 08:08:18 Florian: For those already in the spec, you have a solution 08:08:43 Florian: But for us what would be most useful is not to tell us to support the solutionof the TTML group, but to take a step back and tell us the use case 08:08:59 Florian: Maybe the way you solved it is a perfect fit for CSS, maybe it's not but another approach would work 08:09:08 Florian: Question is does the thing you care about fit into CSS? 08:09:28 Florian: If so then maybe it will influence what we do in CSS, either importing wholesale or adjusting the capabilities otherwise 08:09:38 Florian: Having only the solution without understanding the use case would not help very much. 08:10:07 nigel: One more thing to add... sounds like there are some actions 08:10:19 nigel: Whatever those actions are, we've set aside time at TPAC 08:10:27 nigel: best day for us would be Friday 08:10:34 nigel: set aside time to invite to join us 08:10:46 nigel: to hopefully come to some resolutions 08:10:52 nigel: will send a formal invitation 08:11:07 nigel: could also do THursday if preferred 08:11:26 Rossen: We have some requests pending for TPAC, I believe thursday is mostly gonna be fore CSS Houdini meetings, so that's likely to fil lthe day 08:11:32 Rossen: Haven't settled on thursday or friday, so dpeends on that 08:11:42 Rossen: Already have some a11y and few more groups that want to meet with us 08:11:45 Rossen: But def send an email 08:12:28 nigel to lurk for a bit 08:12:35 Topic: CSS Break 08:12:52 ScribeNick: TabAtkins 08:13:38 fantasai: We had a request from Nigel to add a value for the box-decoratio-break property. CAn you explain? 08:13:57 github-bot: https://github.com/w3c/csswg-drafts/issues/1633 08:13:57 fantasai, Sorry, I don't understand that command. Try 'help'. 08:14:04 github: https://github.com/w3c/csswg-drafts/issues/1633 08:14:05 nigel: IMagine you're displaying subtitles, and for a11y you want to put a high-contrast background behind the text. Not on the whole

, just behind the lines. 08:14:27 nigel: You don't want the bg to be tightly wrapped to the text edges - you want it to extend slightly out for readability 08:14:32 nigel: But you cant predict the linebreaks. 08:14:38 nigel: That's okay righ tnow with b-d-b: clone 08:14:50 nigel: But then what if you have a span in the middle of the text with a different color bg. 08:15:09 nigel: And the break falls in the middle of that other span. 08:15:27 nigel: You want the span's bg to be what extends; you want to use padding to display that. 08:15:50 nigel: So the most relevant bg color to "extend" is from the innermost element at the break, not the element that sets b-d-b. 08:15:58 nigel: fantasai asked a good question. 08:16:10 nigel: Should it be "most nested" or "most nested thing that *counts", paraphrasing. 08:16:16 fantasai: I think we have this problem generally with fragmentation. 08:16:30 fantasai: At the break, you want to ahve a little bit of extra padding with the bg beneath it. 08:16:54 fantasai: It's possible that maybe we can solve this by just saying "add this amount of padding at the break". 08:17:06 fantasai: Whether that solves this is, do you need borders too? Or just backgrounds. 08:17:17 fantasai: Like a border around the inline that only closes if it's the innermost nested border? 08:17:21 fantasai: Seems weird, I guess not. 08:17:44 nigel: I think for border-radius you want [...]? 08:18:18 fantasai: If both have b-r; normally we'd just slice and get the green and black backgrounds overlapping eachother on a clean break. 08:18:34 fantasai: If only the green gets a border-radius, you'll see the black background peeking out from under the green. 08:18:38 fantasai: That's a problem. 08:18:49 Rossen: I think this is in conjuction with the line-padding property in TTML, right? 08:18:50 nigel: Yeah. 08:18:52 a general 'break-padding' property sounds like it could be useful... 08:19:26 Rossen: box decoration and fragmentation, you're talking about linebreaking, nto general box breaking 08:19:29 TabAtkins: It can be about boxes too. 08:19:30 I think it would be helpful to have a diagram in https://www.w3.org/TR/ttml2/#style-attribute-inlineAreaBreak that showed a rendering using each value for cases where there's a difference 08:19:35 Rossen: Sure, but that's not his requirement. 08:19:48 Rossen: Also something we don't have in CSS is line-padding that extends in every break. 08:19:53 dbaron, yeah, that's what I was thinking. But it doesn't solve the border-radius case he was describing 08:20:37 nigel: Line padding was introduced to IMSC when border-radius wasn't available in TTML; at that point the only styling you could do was bg-color and get a square box. 08:21:03 nigel: Now with b-r it's gotten more complicated, and probably need to extend it a little further than just the line-padding semantic, to include the other bg effects (or things that otherwise affect the background) 08:21:13 nigel: Your point about targeting line areas specifcially is well made. 08:21:32 nigel: If there was a way to say "for each line in this

, apply this styling" that would be really helpful, but that doesn't seem to exist yet. 08:21:48 fantasai: I think it would be relatively easy to describe as only things that work are background and things on the box, not background. 08:21:49 Here's nigel's example https://github.com/w3c/imsc-tests/blob/master/imsc1/png/linePadding2/0.000000.png 08:21:53 fantasai: Once inheritance applies it's hard. 08:22:07 fantasai: We have this problem with ::first-line; it's a mess, lots of bugs, spec isn't precise enough despite our efforts. 08:22:19 fantasai: But if it's just about "background here, put a b-r on it", it's not too hard. 08:22:33 fantasai: Not high prio to do in browsers, but wouldn't be too hard. 08:22:59 iank_: We don't have an architecture that can support that (styling lines individually). It's several years away. 08:23:23 bdc has joined #css 08:23:29 Rossen: The existing model of line boxes in most impls, certainly in Edge, is not easily extdendable to support this. Not impossible, but it would be quite hard. 08:23:45 Rossen: Tho this is a valid use-case and feature. 08:23:49 fantasai: What's line-padding? 08:24:34 Rossen: Imagine you have a span - I posted on of Nigel's examples - that adds bg to the current inline. And the span breaks. You can put padding on the span - you'll get padding at the start and end of the span. If it fits on one line, great; the bg will extend a little past the text. 08:25:01 Rossen: But if the text breaks in the middle, you have some padding on start of first fragment and end of last fragment, but all other broken edges have no padding. 08:25:10 Rossen: line-padding feature adds padding to every break-edge. 08:25:16 Rossen: Basically to the linebox itself. 08:25:27 Rossen: if the linebox has background, it extends. 08:25:36 fantasai: The linebox is wider than that actually, but I get what you're saying. 08:25:51 fantasai: Taht makes sense, and I see how adding border-radius would be tricky. 08:26:20 nigel: Doing just the inline-padding isn't the only place we want to do something with line areas. 08:26:36 nigel: Another feature, fill-line-gap, says "draw background areas between lines". 08:26:49 nigel: Hard now, because character heights are UA-dependent. 08:27:06 nigel: So can't specify a padding-top/bottom that correctly fills in the space between lines. 08:27:31 fantasai: Question I have - you ahve a line of text with some line-spacing, say 1.5. You're seeing there's a bg below the text, and a .5em gap between the lines. 08:28:02 fantasai: When asking to fill the linegap, you're filling that .5em space, what happens at the top and the bottom? Do you add .25em at each? So each line gets .25em of bg above and below? Or just between the lines? 08:28:10 nigel: At the moment we don't say. 08:28:22 fantasai: Ok, thiat's a really important question to answer in CSS. 08:28:31 fantasai: Second question, if two lines have different lengths, what happens? 08:28:36 line-box-margin: collapse 08:28:48 nigel: Probably we take whatever answer is most convenient. 08:29:00 nigel: But as far as I know you can't set a padding value, because you can't calculate it... 08:29:19 fantasai: We should specify that... 08:29:54 TabAtkins: Why's it hard? Just the diff between font-size and line-height, right? 08:30:22 fantasai: Not quite - the bg area isnt' the size of the line box. The area around an inline - in 2.1 there were two ways to calculate the area, based on font metrics, and impls might do different things. 08:30:40 Rossen: This is going a bit off topic, can we bring it back to b-d-b? 08:30:42 dustinm has joined #css 08:30:42 s/line box/line height box of the inline that's used for layout/ 08:31:39 -> https://github.com/w3c/csswg-drafts/issues/814 [css-inline] Define the content area of inline boxes #814 08:31:42 q? 08:32:03 TabAtkins: So it sounds like b-d-b: inner-clone badly solves border-radius issues, and limiting it to just background is better solved with a break-padding property? 08:32:26 break-padding also causes problems with border-radius 08:32:51 fantasai: So I think those are the main two request from Nigel, this and figuring out the fill-the-gaps issue. 08:33:05 fantasai: Which I think is best done by making impls interoperable, then just using padding on the element. 08:33:33 fantasai: If we have a consistent box height, then having a line-height of 1.5 and a padding on inline of .25em above and below *should* fix the gap; if it doesn't, we should fix that. 08:34:07 fantasai: And for the other issue of cloning spaces - it seems the solution you're proposing doesn't actually solve the problem. 08:34:39 fantasai: It's not just "clone most nested"; if there is b-r involved, you want to spam that innermost b-r all the way up, so the lower backgrounds dont' show up underneath the topmost's b-r. 08:35:23 Rossen: So yeah, the feature request is something we'll work on, probably as part of Break. We'll go from there! 08:36:17 Topic: letter spacing 08:37:05 Topic: tter-spacing should not apply to the end edge of a line/span? 08:37:10 kochi: Text 3 letter-spacing specifies that the letter-spacing after the last character of an element should be eliminated. 08:37:19 github-topic: https://github.com/w3c/csswg-drafts/issues/1518 08:37:23 koji: Concern that, while this is better, it may not be web compatible. 08:37:29 github topic: https://github.com/w3c/csswg-drafts/issues/1518 08:37:40 koji: Our team prefers it be opt-in, so existing pages still work but authors can choose the better model. 08:37:45 s/kochi/koji/ 08:37:55 all right :) 08:38:00 koji: It looks like Sebastian and François agrees 08:38:13 fantasai: I know it's different, I wanna know if it actually causes a problem. 08:38:25 fantasai: Adding extra stuff is extra cognitive laod on the author; it would be better ot just do the right thing. 08:38:39 koji: We have a bug requesting this feature for years. 08:38:57 koji: He wants to stop using negative margin to cancel the space. 08:39:13 koji: If we change things, his pages' compensation will instead ram the characters together. 08:39:26 fantasai: Right, question is how many people will have that problem, and how many will be *fixed* by the change. 08:39:33 q+ 08:39:52 fantasai: If you have a large amoutn of letter-spacing to cancel, so large negative margin, and there's text after, that's a problem. 08:40:15 fantasai: But if it's a small letter-spacing, it'll have less than ideal spacing but still *okay*, but lots of other pages will have improved letter spacing. 08:40:44 koji: I think it's a little self-contradicting - people want this feature to care about it, and people who care can apply negative margin today. 08:41:11 myles_: I don't think that's necessarily true 08:41:18 TabAtkins: I've never realized I needed to deal with this case 08:41:38 myles_: There's a diff between caring about letter-spacing, caring and noticing there's a problem, and caring, noticing, and trying to fix it with this hack. 08:42:06 myles_: What's stated in the spec is generally the correct result. I'd like to implement it, but I share fantasai's hesitation that we don't know how much will break. 08:42:08 ack fremy 08:42:13 fantasai: I'm not hesitant, I think we should try it. 08:42:18 q? 08:42:38 fremy: letter-spacing is used eveyrwhere on the web, so even if a tiny fraction care enough to use the hack, it'll still be a lot of web pages. 08:43:07 fremy: And browsers are mostly interoperable today. I don't think it's a huge problem to keep current spec, add new glyph-spacing property that works properly, and tell authors to use latter. 08:43:13 myles_: glyph-spacing is bad name 08:43:28 fremy: Sure, anything works. 08:43:43 myles_: I think making two solutions, one broken and one working, isn't great. We should investigate fixing the one. 08:43:54 fantasai: Someone has to ship it then. 08:43:57 myles_: Or crawl for it. 08:44:05 myles_: Look for letter-sapcing and negative-margin on the same element. 08:44:31 Florian: Hard to tell automatically if it's bad. 08:44:51 fantasai: Have to investigate the *inherited* letter-spacing value, and if negative margin on the element. 08:44:58 fantasai: That's the pages that are trying to work around it. 08:45:18 fantasai: But there's also millions of pages that aren't trying to fix it, and will look better when we change it. 08:45:25 q+ 08:45:29 fantasai: So it's a balance of how much bad it is. 08:45:31 q+ 08:45:41 fantasai: Slijghty worse appearance, or readability is affected. 08:46:01 fantasai: So you have to actually look at the page. 08:46:20 q? 08:46:36 bdc: Huge letterspacing is bad design by default, while negative letterspacing i soften used for proper kerning. 08:46:46 If it's mostly just slightly worse appearance, we're winning: there are many many more pages that aren't trying to compensate. 08:46:53 rego has joined #css 08:46:59 bdc: So there, we'd have the opposite issue - if we remove the space after last letter, we'd have bigger space between words than we currently have. 08:47:08 fantasai: If you apply letter-spacing to whole paragraph, no impact. 08:47:13 ack 08:47:14 q? 08:47:22 ack dbaron 08:47:29 dbaron: This isn't th efirst time it's brought up - maybe web compat, don't know, a little afraid of it. 08:47:38 dbaron: If it is web-compatible we should stick to the current design. 08:47:51 dbaron: If we wanna conclude it's not, we need more evidence than brought so far that it's not. 08:48:08 dbaron: Until we have evidence that it's not, we should stop trying to discuss it every six months. 08:48:09 agreed with dbaron 08:48:12 q? 08:48:16 ack fremy 08:48:17 +1 to dbaron 08:48:40 fremy: I've seen a lot of websites using letter-spacing for not letter-spacing itself; icon fonts and aligning, letter-spacing of 1px because "it looks better on my PC", ... 08:49:13 fremy: I'm concerned it'll be a lot of webpages, but I"m not sure how to figure it out. 08:49:37 I think dbaron made the point I was trying to make, but much more elegantly than I did 08:49:57 TabAtkins: Do a good collection of affected pages via a crawl, then we can just sample them to whatever accuracy you want. Basic stats. 08:50:10 or at least provide URLs to illustrative examples (didn't see any in the issue) 08:50:16 koji: I'm not clear on the next actions. 08:50:23 (illustrative real world examples, not artificial data URls etc.) 08:51:09 koji: I think someone has to do a collection and figure out whether it's problematic or not. 08:51:16 s/not./not?/ 08:51:38 myles_: Someone somewhere has to prove that an impl that follows the spec is not web-compatible. 08:52:22 TabAtkins: WG likes the current spec, and puts burden of proof on implementations to prove that it's not Web-compatible 08:53:36 TabAtkins: Need to evaluate pages where they have negative right margin that matches to the letter-spacing 08:53:46 TabAtkins: And then see if they are actually broken 08:53:57 koji: So who will do this? 08:54:08 myles_: Whoever wants to change the spec. 08:54:17 koji: Spec has been there for five years so far... 08:54:24 fantasai: Yeah, nobody has stepped forward to implement this. 08:54:29 fantasai: We want a spec and impls to match. 08:54:39 fantasai: So first option is somebody impls and ships and sees what trouble they have. 08:54:49 fantasai: Second is somebody does a crawl and checks the stats. 08:55:09 fantasai: Broken vs sligthy suboptimal; we dont' carea bout latter, because w'ell fix a bunch more pages. 08:55:23 fantasai: Third is we do what we did with control characters, where we all ship at same time. 08:55:45 Florian: Option 1 where things just ship, there are release channels for early info... 08:56:23 bdc: I don't see how the crawl is possible really - the margin might be a little different than th espacing, they might have negative spacing and positive margin... 08:56:36 fantasai: position margin is fine; it doesn't cause overlapping that hurts readability, just puts in a larger gap. 08:56:51 bdc: So I'm in favor of just keepign the spec as it is. 08:56:53 liam has joined #css 08:57:04 fantasai: So in favor of moving forward, do impls have a pref on which strategy to use? 08:57:19 koji: To me this is a nice feature, but not worth spending a week doing a crawl. 08:57:28 koji: So I'd much rather have another property that does opt-in. 08:57:33 fantasai: That won't give us useful information. 08:57:45 fantasai: Majority of people aren't paying attention to this, or aren't caring enough to do anything about it. 08:58:12 myles_: I think, going along with Elika, you can track the # of times you encouter a website that uses it, but that's only useful as a fraction, and you don't know the denominator. 08:58:31 myles_: I can say 1k websites use the property, but we don't know how many sites considered it and didn't use it because it was bad for them. 08:58:50 fantasai: [repeats three options] 08:59:38 fantasai: And I think the WG is generally agreeing that changing the spec isn't a valid fourth option. 08:59:52 Bert: Gradual change; reduce it by half this year, then quarter next year, eventually it's nothing. 09:00:32 Rossen: So I don't think we did very good with the third option. 09:00:43 Rossen: Anyone want to do option #1? 09:00:47 [crickets] 09:00:54 Rossen: Anyone wants to crawl? 09:01:15 [crickets] 09:01:22 Rossen: So we're at same position as before. 09:01:32 fantasai: Question on #1 - we had zero interest in impl and shipping it. 09:01:46 fantasai: But if someone was to give you a patch, you just had to ship it, then what? 09:01:57 myles_: I'm happy to investigate it. I'll impl and see if it doesn't work. 09:02:18 Rossen: Sounds good. 09:02:24 s/investigate it/investigate it, I want to make this work/ 09:02:24 I think Gecko would be happy to try taking a patch. 09:02:39 Probably don't have the resources to do it in the near future. 09:03:05 ACTION Myles to investigate changing letter-spacing impl to match spec regarding spacing at start/end of element. 09:03:06 Created ACTION-857 - Investigate changing letter-spacing impl to match spec regarding spacing at start/end of element. [on Myles Maxfield - due 2017-08-11]. 09:03:19
09:03:26 github-bot, end topic 09:03:38 ACTION: fantasai to write test cases 09:03:39 Created ACTION-858 - Write test cases [on Elika Etemad - due 2017-08-11]. 09:09:10 rachelandrew has joined #css 09:22:09 bdc has joined #css 09:23:51 Florian has joined #css 09:24:21 Topic: bidi mixed directions 09:24:51 Topic: letter-spacing and word-spacing applied to which side 09:25:03 github topic: https://github.com/w3c/csswg-drafts/issues/1517 09:25:16 koji: Problem from user perspective is that when letter-spacing is applied to a bidi-mixed string, Blink and Gecko has sometimes no l-s, sometimes double l-s, it's hard to predict. 09:25:23 koji: WK and Edge add even letter-spacing. 09:25:37 koji: It's not specced in CSS2, CSS3 defines quite different algorithm that solves this problem. 09:25:42 q+ 09:25:46 koji: But it requires some complex impl. 09:25:59 fantasai: CSS3 just says letter-spacing is applied after bidi reordering. 09:26:24 myles_: If we end up shipping what we resolved in the last topic, I tink that'll mean that the Blink behavior of switching which direction you add l-s to, you won't need anymore. 09:26:29 https://www.w3.org/TR/CSS21/text.html#spacing-props 09:26:39 myles_: bc then letter-spacing isn't on "left" or "right", it's on "inside". 09:27:08 fantasai: 2.1 defines it as "between characters" - double or nothing is just wrong. 09:27:08 CSS2.1 defines letter-spacing as "between" characters 09:27:52 CSS3 is more precise "between adjacent typographic characters, after bidi reordering". No ambiguity. 09:27:56 https://drafts.csswg.org/css-text-3/#letter-spacing-property 09:28:09 s/CSS3/fantasai: CSS3/ 09:28:19 myles_: So what's the proposal, making it legal to have double/nothing? 09:28:28 koji: Proposal is to match WK/Edge. 09:28:31 myles_: Oh, okay, great. 09:28:43 myles_: So that's what the spec already says, right? 09:28:54 koji: If spec says between chars, this might be an impl issue. 09:29:04 koji: Most impls apply it to the left or right of characters. 09:29:20 koji: Edge and WK apply it to the line-right direction, so always "to the right" regardless of direction. 09:29:44 fantasai: ANd if we apply the previous topic's resolution, the user can't tell whether it's line-left/right. 09:30:01 koji: Blink/Gecko apply it to end edge. 09:30:16 Florian: Can't you detect it with backgrounds? 09:30:41 fantasai: No, l-s doesn't occur at a boundary; the l-s at a boundary is determined by the element containing both of them. 09:30:44 s/end edge/end side of resolved bidi direction/ 09:31:00 dbaron: I think the current spec is solid, just a decent bit of work to implement. 09:31:15 astearns: So reading of issue is just that Blink/Gecko need to change behavior to match spec? 09:31:20 koji: Yes. 09:31:34 RESOLVED: No change, Blink/Gecko require bugfixes. 09:31:52 Topic: Applying letter-spacing after line breaking 09:32:10 github topic: https://github.com/w3c/csswg-drafts/issues/1509 09:32:14 koji: As fantasai just mentioned, diff between CSS2 and CSS3 is that 3 says apply l-s after bidi-reorder. 09:32:27 koji: But bidi-reorder applies after line-breaking, 09:32:40 CSS2.1 implied after bidi-reorder. L3 specifies explicitly 09:32:44 koji: Which can change the number of "between" spaces there is to add letter-spacing. 09:32:56 koji: So after we add letter-spacing, the line width can change, shorter or longer. 09:33:08 koji: So I think this is a worse issue than what it's trying to solve. 09:33:27 fantasai: You ahve to include the letter-spacing when figuring out sapcing and line-breaking. 09:33:42 fantasai: This is same as kerning. 09:33:48 koji: We don't redo kerning after bidi. 09:34:07 koji: Because changing line widths after break is really bad. 09:34:26 fantasai: Yeah, def don't want to change line-width afterwards, that's bad. 09:34:39 fantasai: So that measn you have to consider letter-spacing before breaking the line. 09:35:02 fantasai: But since bidi-reordering happens after breaking the line, you won't know where the letter-sapcing goes until after doing the reordering. 09:35:13 myles_: Do you have an example of this breaking? 09:35:24 koji: [looks it up] 09:35:35 antonp has joined #css 09:36:46 koji: Last bit of example 16 in Text. 09:37:07 koji: There's a 2em spaccing between the characters in the span, but reordering separates the letters. 09:37:29 myles_: I understand now. 09:38:07 fantasai: If you have that example, bidi-reordering puts two letters nexxt to each other that weren't next to each other logically, do you perform shaping and kerning between them? 09:38:23 myles_: Ours won't cross bidi boundaries. 09:38:59 koji: We're trying to do better at shaping across element boundaries, but only in logical sequences, before bidi reordering. 09:39:10 koji: I believe we're trying to match Gecko's behavior. 09:39:27 fantasai: Yeah, difficult; we're splitting up letters in an element, so where does the letter-spacing go? 09:39:43 fantasai: Per spec, you don't put the letter spacing between letters of the element and letters outside the element. 09:39:49 fantasai: So I see you point that it's hard to measure correctly. 09:40:10 koji: If we follow Edge/WK impl and resolve the previous l-s topic, there should be 2em space on the right of C. 09:41:07 TabAtkins: line-right edge - in logical order, it separates the letter from the next logical letter. 09:41:39 fantasai: Example: you ahve a para with 1em letter spacing. Inside you have a span with 0 l-s. Between the last letter of the span and first letter outside the span, there's 1em letter spacing, where does that attach? 09:42:05

f_o_obar_f_o_o

09:42:13 fantasai: Another span with borders and padding. You do linebreaking calcs. 09:42:38 fantasai: Then you cut the line and do bidi reordering, but it has b-d-b: clone. Now you have two pieces with padding around them, where befor eyou had only one. Now what? 09:42:50

f_o_o_bar_f_o_o

, rather 09:43:04 koji: I was reading b-d-b for the first time this morning, and thought of that exact problem. 09:45:55 dbaron: Okay, at bidi *resolution* time, the element would split into two separate fragments, and thus both get borders. 09:46:28 koji: But you don't know how linebreaking will happen yet. 09:47:09 TabAtkins: If there's only enough room for 4 letters, so the "c" and the aleph are next to each other, is that still two independent spans? 09:48:11 dbaron: We don't unclone them - they stay separate fragments. 09:48:27 http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cstyle%3E%0Aspan%20%7B%20border%3A%20medium%20solid%20blue%3B%20background%3A%20aqua%3B%20%7D%0A%3C%2Fstyle%3E%0A%3Cp%3Eab%3Cspan%3Ec%D7%90%3C%2Fspan%3E%D7%91%D7%92%3C%2Fp%3E%0A%3Cp%3Eab%3Cspan%20style%3D%22box-decoration-break%3Aclone%22%3Ec%D7%90%3C%2Fspan%3E%D7%91%D7%92%3C%2F 09:48:27 p%3E%0A%3Cp%3Eab%3Cspan%20style%3D%22box-decoration-break%3Aclone%22%3Ec%D7%90%3C%2Fspan%3E%3Cbr%3E%D7%91%D7%92%3C%2Fp%3E 09:48:42 http://software.hixie.ch/utilities/js/live-dom-viewer/saved/5292 09:48:46 dbaron: That might not be an intentional decision; they might have thought about it as normal linebreaking and this behavior just falls out. 09:48:56 fantasai: I think it's okay to allow impls to do that. 09:49:05 projector has joined #css 09:49:34 Rossen has joined #css 09:49:53 TabAtkins: So the c and aleh would still be considered separate fragments, even though they are adjacent 09:50:04 shans has joined #css 09:50:05 TabAtkins: and the letter-spacing between them would be controlled by the parent 09:50:35 sylvaing has joined #css 09:50:58 fantasai: I like this solution 09:51:05 leaverou has joined #css 09:51:23 TabAtkins: Wouldn't be too complicated, and would give sensible results in most cases and sensible-enough results in the rest 09:51:36 plinss has joined #css 09:51:38 TabAtkins: During bidi resolution, you split them into separate fragments, and behavior falls out from that 09:52:32 koji: So we'll lose the letter sapcing between bidi runs. 09:52:46 TabAtkins: If the bidi runs are in the same element, yes - they'll use the parent's letter-spacing. 09:53:59 Proposed that bidi resolution would result in splitting an inline in infinite space will always create two fragments, even if they end up adjacent due to line breaking. 09:55:40 Topic: line-break: break-all 09:56:10 github topic: https://github.com/w3c/csswg-drafts/issues/1561 09:56:20 Florian: line-break:break-all isn't a great name. Should we find a better name? 09:56:27 Florian: I think all names are bad, but I can't come up with a good one. 09:56:38 Florian: This value allows line-breaks everywhere. 09:56:57 Florian: word-break:break-all allows for breaks between letters, but not between punctuations, spaces, etc. 09:57:21 line-break is terminal wrapping, word-break is just hyphens-wherver-you-want 09:57:42 Florian: Trying to do better ignoring web constraints is hard, trying to do better *with* web compat is near impossible. 09:57:53 Florian: line-break:break-all is the newest one, with best chance of renaming. 09:58:00 Florian: Unforutnately it's got the best name, I think. 09:58:15 koji: I don't mean it's badly named, just that same keyword on similar property doing differently is confusing. 09:58:25 koji: Particularly if we have a shorthand for both hof these. 09:58:42 fantasai: shorthands can do custom syntax; we'll definitely redesign the whole thing if we do a shorthand 09:58:53 fantasai: Shorthand would be *great*, we can make it all make sense 09:58:57 zakim, shut up and go awya 09:58:57 I don't understand 'shut up and go awya', TabAtkins 09:59:12 koji: I understand it's possible, but if we're naming now, why choose "break-all"? 09:59:17 fantasai: We didn't have a better one. 09:59:28 koji: Line-break:terminal? 10:00:01 Rossen: anywhere? 10:00:07 Rossen: any? 10:00:09 Rossen: all? 10:00:24 TabAtkins: That would force a break between every character 10:00:27 [a few people like anywhere] 10:01:11 Rossen: anyone care? 10:01:16 TabAtkins: I think re-using the keyword is bad 10:01:22 [several other ppl care] 10:01:32 Rossen: So from the people paying attention, any objections to renaming break-all to anywhere? 10:01:36 dbaron: How widely implemented? 10:01:41 fantasai: Nowhere, it's new, we added it this year. 10:02:08 RESOLVED: Rename line-break:break-all to line-break:anywhere. 10:02:45 Florian: I have a PR for this change; other than me changing this keyword, can the editors approve it or tell me what's wrong? 10:02:48 fantasai: Yeah, at lunchb. 10:03:08 RESOLVED: After edits from this meeting, publish new WD of Text 3. 10:03:17 Topic: text-spacing fullwidth punctuation collapsing 10:03:35 github topic: https://github.com/w3c/csswg-drafts/issues/1668 10:03:46 Florian: In CJK, full-width punct takes a full-width box, but they visually fill half o fit 10:04:06 Florian: Japanese expects that when they're next to each other (like two close-parens), there will be a big space. 10:04:36 s/there will be a big space/there will not be a big space, they'll be collapsed visually/ 10:04:48 Florian: The font contains spaces, but it needs to be canceled out in some cases. 10:04:56 Florian: We have a rule in Text 4 that says when to do this. 10:05:08 Florian: One rule is overcomplicated. We did it wrong because JLReq wasn't specific enough. 10:05:24 Florian: Case is where you have a closing punct followed by an opening one: `)(`. 10:05:33 Florian: If you did nothing it's 2em long, we want 1.5em long. 10:05:43 Florian: Closing, half-space, opening. 10:05:50 fantasai: Collapse away the adjacent half space. 10:06:01 Florian: We specced that each is .75em long. 10:06:16 Florian: Proper is to keep all space on closing one, remove all space from opening. 10:06:25 Florian: Difference is barely observable, we should match. 10:06:38 fantasai: Did the people working on those things consider the case of different-sized fonts? 10:06:51 fantasai: Second paren is half the size of the first one, then what should happen? 10:06:56 Florian: That's where it becomes observable. 10:07:12 fantasai: I think probably 75% on each side isn't the right answer, so we should change it, but also not convinced we should always use the first. 10:07:34 Florian: Unsure. Murakami says to do it the other way, and InDesign does it the other way, so we should match. 10:07:46 fantasai: One thing we often do is look at print examples, and find where they're not handling cases. 10:08:07 fantasai: I think we should choose one or the other; we could use innermost or outermost... 10:08:12 Florian: They're same level. 10:08:47 fantasai: Always use bigger one? 10:08:55 myles_: That'll cause space to change when font-size animates? 10:09:03 TabAtkins: It'll do that no matter what. 10:09:22 Florian: I think we should match pubs, with a note about if someone has cases not considered, let us know. 10:09:39 fantasai: Korean mixes font sizes a lot; rather than ruby they just reduce font-szie 10:09:48 Florian: But they use latin punctuation, not full-width, so this doesn't apply. 10:09:57 myles_: I think it makes the most sense to do what everyone else does as a first pass. 10:10:09 fantasai: Happy with that if we follow up with JLReq to make sure they think about this case. 10:10:26 Rossen: ARe you current JLReq laiason? 10:10:36 Florian: Not yet, I have something later about that. 10:10:53 koji: I think previous spec is ambiguous, just says "put a half space between them". 10:11:10 Rossen: So can we resolve to accept change, put a note in, and follow up with JLReq? 10:12:00 RESOLVED: Accept change matching JLReq's punctuation spacing, put a note into the spec about maybe needing more complex stuff, follow up with JLReq about the topic. 10:12:21 Topic: Renaming the dynamic and static profiles of selectors 10:12:50 Rossen: Mail sent last Saturday. 10:13:02 https://lists.w3.org/Archives/Public/www-style/2017Jul/0039.html 10:13:12 https://www.w3.org/TR/selectors4/#profiles 10:13:59 TabAtkins: So I've seen enough feedback by now that I agree that "static/dynamci" is confusing. Dynamic makes people think of JS. Let's talk about it over lunch and come back? 10:14:17 Topic: Orthogonal Flow Constraint: viewport vs scroller 10:14:33 github topic: https://github.com/w3c/csswg-drafts/issues/1391 10:14:47 fantasai: We resolved to use the nearest scrollport height for orthogonal flow fallback height. 10:15:00 fantasai: But that can be auto. ICB is always fixed; we want this to be fixed as well. 10:15:25 Should it be the nearest scrollport that's non-auto height? 10:15:36 nearest scrollable definite-height ancestor? 10:15:51 dang, dbaron beat me to it 10:15:58 Rossen: When I was working on this, the logic I added was to keep looking for the nearest ancestor that imposes a fixed height or scroller, and if scroller is height:auto I think I keep going up. 10:16:07 Rossen: You can go figure out the viewport size, but that doesn't buy you much. 10:16:15 fantasai: I think you want it to be a size you can calc without doing layout. 10:16:21 Rossen: Which is doable if you find a fixed ancestor. 10:16:49 fantasai: If you look for fixed size and subtract mbp, you run into problems we saw before with stretch, where you get so much mbp you're zero size. 10:17:19 fantasai: Also, our goal if you're doing autosize is to not make it larger than what you can see in one screenful; goal is to fit a line of text they can comfortably read. Nearest fixed container might be larger than the viewport. 10:17:41 Rossen: But then you'd have that problem with other things 10:17:50 TabAtkins: The other things are intended to scroll vertically 10:18:17 fantasai: It's very important that a line length is less than the size of the viewport, so you don't scroll back and forth. 10:18:28 fantasai: So nearest fixed container might violate that. 10:18:39 fantasai: This is why we used viewport instead of some random number. 10:20:00 TabAtkins: If it's as big or smaller than the viewport, then even if it's not perfectly nice, the user can sroll it into place and be able to read comfotably 10:20:05 fremy: You're preventing people from using transforms. They might want large initial size, then scale it down. You'd prevent that. 10:20:40 TabAtkins: for transforms all bets are off 10:20:52 TabAtkins: We could clamp to smaller of the scrollport and the viewport 10:21:01 Rossen: Using smaller of fixed-height ancestor or viewport sounds okay. 10:21:15 bdc has joined #css 10:21:50 fantasai: If your parent is fixed size, we already clamp by that. 10:22:29 fantasai: But when we don't have a fixed size, we don't want to look up thru multiple layers of auto and find a size bigger than auto. 10:22:47 rego has joined #css 10:23:50 Proposal: orthogonal flow fallback height is min(100vh, nearest fixed-size scrollport ancestor's height), no caring about mbp or anything. 10:24:04 + logical swap for other ordering. 10:24:45 + available size of immediate container, which normally controls size 10:25:20 min(100vh, nearest fixed-size scrollport, available size) 10:25:36 fantasai: Looking at spec, you choose smaller of "containing block size" and "ICB size", and the issue/discussion was about replacing ICB size. 10:25:48 current CR is min(100vh, available size), previous resolution was min(available size, nearest scrollport) 10:25:53 TabAtkins: So just adding one more bullet to that list, for nearest fixed scrollport. 10:26:30 RESOLVED: Add "size of nearest fixed scrollport" to the list of things you clamp orthogonal flow inline sizes to, editting the CR. 10:27:32
10:27:39 github-bot, end topic 10:49:50 zcorpan-OOO-14Aug has joined #css 10:53:37 rachelandrew has joined #css 11:22:03 glazou has joined #css 11:22:18 Florian has joined #css 11:22:33 glazou has joined #css 11:23:25 Florian_ has joined #css 11:23:33 bdc has joined #css 11:34:30 scribenick: dauwhe 11:34:44 Topic: renaming selector profiles 11:34:45 https://github.com/w3c/csswg-drafts/issues/1694 11:35:02 astearns: dbaron added the issue, there was some discussion during lunch, but no resolution 11:35:03 github: https://github.com/w3c/csswg-drafts/issues/1694 11:35:09 ... let's try to put realistic suggestions in the issue 11:35:42 glazou has joined #css 11:35:42 Topic: dino suggestion on writing modes 11:35:59 s/writing modes/variables/ 11:36:07 github: https://github.com/w3c/csswg-drafts/issues/1693 11:36:36 dino: [approaches podium] 11:36:41 myles_ has joined #css 11:37:18 Karen has joined #css 11:37:39 ... I'll explain it backwards 11:37:51 ... we're proposing a new var function 11:37:59 ... instead of exposing user custom properties 11:38:05 ... these are defined by the user agent 11:38:16 ... "contstant" means you can''t change it 11:38:25 ... user wants to control type size on iphone 11:38:29 ... css can't detect that 11:38:46 ... you can query the UA value, and then use calc to respond 11:39:10 ... User agent properties 11:39:16 s/contstant/constant 11:39:19 ... rest is similar to CSS variables 11:39:52 ... I show lots of examples... font size, foreground/background color... 11:40:01 zcorpan-OOO-14Aug has joined #css 11:40:10 ... like user pref for black background/white text 11:40:24 ... some dyslexic folks want low contrast 11:40:36 ... so CSS could query UA and then respond 11:41:14 ... or we could use safe areas when projecting to screen of different size 11:41:25 glazou: it's coming from UA and system? 11:41:28 dino: yes 11:42:27 q+ 11:42:30 iank_: could you draw the safe area on the blackboard 11:42:35 q+ 11:42:35 dino: this has been a concept in TV 11:42:57 ... some TVs you wouldn't see the whole frame 11:43:09 ... so there was a title safe area, where you know pixels would always be visible 11:43:16 myles: modern TVs fake this, 11:43:42 dino: if you have a circular display, the safe area might be in the middle 11:43:44 ack myles 11:43:52 q+ 11:44:00 q+ 11:44:07 glazou: I like this 11:44:22 ... open question: could be extended to system colors? 11:44:24 ack glazou 11:44:26 q+ 11:44:32 ... we'd have to find common names for system colors on all platforms 11:44:44 q+ 11:44:44 q- 11:44:55 ... 2nd thing: I'd like to see a 2nd part with JS elements to detect system change events 11:45:01 dino: you can't do MQ 11:45:15 q+ 11:45:16 glazou: being able to detect theme change, or that you switched to night view.... would be color 11:45:19 ack bdc 11:45:25 s/would be color/would be cool 11:45:40 bdc: like underlying idea of prefers-reduced-motion MQ... 11:45:48 ... so why do we want a new thing? 11:45:59 dino: unlike MQ, you want to know a value 11:46:17 ... given one of these values, tell me when it changes 11:46:25 bdc: i don't see a difference 11:46:41 Florian_: i don't think so 11:46:57 ... reduced motion is not about make things slower... it's about doing something else 11:47:17 dino: for reduced motion, sometimes we fade in instead of moving in 11:47:41 ... we're generally not removing animations 11:47:53 q? 11:47:55 astearns: I want to ask about support 11:47:56 ack astearns 11:48:11 dino: this raises issue on css var spec 11:48:24 ... but I don't know where the property lists go 11:48:40 astearns: if we don't have access for @supports, how do we author? 11:48:41 you could always do @supports (color: constant(foobar)), no? 11:48:53 plh has joined #css 11:48:57 ack gregwhitworth 11:49:08 gregwhitworth: these are defined by the UA 11:49:26 ... how are we not going to end up with the -webkit- prefixes unless we agree on everything? 11:49:31 dino: these are new properties 11:49:48 ... just like a normal property 11:49:54 gregwhitworth: they'll be standardized? 11:49:56 dino: yes 11:49:57 q? 11:50:06 q+ 11:50:07 ... we want them to be universal 11:50:10 q+ 11:50:25 dino: don't know if they should be prefixed with -- 11:50:34 ack melanierichards 11:50:35 ack melanierichards 11:50:35 ... so they know they can't set, maybe it's ++ 11:50:40 q+ do we need `constant`? 11:50:44 melanierichards: let's say the ua stores the value 11:50:49 q+ 11:50:54 ... the user hasn't overwritten defeault value of foo 11:51:00 ... would it be undefined? 11:51:13 ... as a user, I'd only want the value when it was overwritten by the user 11:51:16 dino: good question 11:51:22 ack Florian_ 11:51:33 Florian_: it's a nice hammer we have here, we should be careful with it 11:51:47 ... the examples of things are less comfortable with, as they could be solved in other ways 11:51:58 dino: I'm mostly interested in font size and inset ones 11:52:12 Florian_: for font size, why don't you change REM 11:52:29 TabAtkins: REM is font size on root element, this is initial value 11:52:36 q? 11:52:42 Florian_: this will be one rem if not overridden? 11:53:00 Florian_: for inset, we've been discussing a similar problem, and were trying to solve some other way? 11:53:17 dino: haven't looked at other solutions 11:53:21 myles: what's the other one 11:53:38 s/as a user, I'd/as an author, I'd/ 11:53:49 Florian_: first, a media query for shape, another is another MQ about 'if I place something there, is it visible?' 11:54:03 ... third is using shape inside: display 11:55:03 q? 11:55:05 ack fremy 11:55:06 ... let's not rush into defining through this, as it might prevent us from exploring other solutions 11:55:14 fremy: I have same concern as surma 11:55:20 ... why don't reuse var function? 11:55:29 ... we could use namespace for var function 11:55:41 q- 11:55:49 ... so we don't need new function 11:55:55 ... just variable under new namespace 11:56:00 dino: i don't mind 11:56:15 ... but we used the name constant to remind user they can't change it 11:56:23 ... under the hood it uses same code as variables 11:56:39 ack Rossen 11:56:42 fremy: I think it's better to reuse namespace inside var 11:56:53 Rossen: thumbs up on the idea 11:56:56 dino has joined #css 11:56:58 ... we've had lots of requests 11:57:09 ... in terms of getting font size and background colors 11:57:14 fremy: e.g. { color: var(user preferred-color) } 11:57:15 ... respond to high contrast, etc 11:57:16 var(system safe-area-inset) 11:57:22 ... would be insteresting to see the path forward 11:57:32 ... and to summarize how much stuff you want to expose 11:57:35 q+ to ask do you need the word "constant"? Isn't 'contant(foo)' easier written as 'foo'? 11:57:59 q+ 11:58:09 TabAtkins: performance would be better than variables 11:58:19 ... you don't control the values 11:59:03 plinss: what about UA changing while you're animating? 11:59:06 q+ fallback 11:59:13 dino: we should have current color blink text :) 11:59:16 q- fallback 11:59:18 q+ 11:59:19 ack Bert 11:59:20 Bert, you wanted to ask do you need the word "constant"? Isn't 'contant(foo)' easier written as 'foo'? 11:59:42 Bert: constant looks like an identity function. can't you use the ID itself? use "fontsize"? 11:59:54 Florian_: we need comma fallback 12:00:15 fremy: if you have properties like font-family you couldn't use it 12:00:30 TabAtkins: this would add an unlimited set of global keywords to CSS 12:00:35 ... functions prevent that 12:00:48 gregwhitworth: one should be scroll-bar-width 12:00:57 ... arrow color, 12:01:05 ack glazou 12:01:23 glazou: I want to expand on unlimited sets of global name 12:01:49 q+ 12:01:53 ... we want to make sure nothing is shipped until everyone agrees on how it works 12:02:04 zakim, close queue 12:02:04 ok, astearns, the speaker queue is closed 12:02:14 ... let's keep it clean 12:02:51 TabAtkins: you only need a few smart devs with houdini, then everyone can use libraries 12:03:05 glazou: it's like what fremy said, it's a namespace 12:03:31 ... I think we can reach consensus on the names 12:03:38 astearns: two more 12:03:40 ack SimonSapin 12:03:57 SimonSapin: what about fallback? 12:04:04 dino: you could do comma zero 12:04:11 ack gregwhitworth 12:04:19 SimonSapin: fallback same as in var()? 12:04:22 dino: yes 12:04:25 gregwhitworth: I think our biggest request is high contrast, which we map to system colors 12:04:39 ... it became a problem because not everyone does high contrast theming 12:05:02 ... we may have foreground/background, do we need accent color and accent color2? 12:05:15 ... I foresee problems 12:05:21 ... so fallback is what you get 12:05:27 dino: I hear general agreement 12:05:40 ... concerns about constants vs var with namespace 12:05:51 ... melanierichards wants to know when user explicitly change 12:06:06 ... them, someone else wants to ahve events 12:06:16 myles: unset is same as "i don't know what you're talking about" 12:06:24 astearns: general consensus that this is interesting 12:06:29 Topic: grid issues 12:07:02 dino has joined #css 12:07:03 TabAtkins: we have grid issues 12:07:14 fantasai: the gap one? 12:07:32 https://github.com/w3c/csswg-drafts/issues/1696 12:07:46 topic: grid-gap 12:07:54 https://github.com/w3c/csswg-drafts/issues/1696 12:07:59 https://github.com/w3c/csswg-drafts/issues/1036 12:08:06 github: https://github.com/w3c/csswg-drafts/issues/1036 12:08:21 TabAtkins: we decided that grid gutter should be reset by shorthand 12:08:30 zakim, open queue 12:08:30 ok, astearns, the speaker queue is open 12:08:37 ... authors have given feedback that the opposite is true 12:08:53 ... so are annoyed to reestablish their gutters 12:09:06 ... so we propose to change that, and stop resetting gutters in shorthand 12:09:11 fantasai: that's the basis of that 12:09:17 ... the other issue is 1969 12:09:25 s/1969/1696/ 12:09:35 TabAtkins: the grip prop is already complex 12:10:13 ... worst case is having some gutters you didn't intend 12:10:35 ... a proposal to handle this and other author feedback is to rework how we handle gutters 12:10:47 ... rename them and apply them to all layout modes where it makes sense 12:11:00 fantasai: we had originally designed them for multicol 12:11:18 TabAtkins: didn't make sense for column gap to be reset by grid 12:11:32 fantasai: so we undo the link, undo grid prefix 12:11:48 ... make colgap and rowgap apply to flex containers 12:11:52 ... this is highly desired 12:12:06 TabAtkins: they want min spacing between flex items and flex lines, 12:12:20 fantasai: one comment is can we have one set of properties to make it easy to learn 12:12:30 astearns: is it hard to change flex distro algo? 12:12:33 TabAtkins: it's easy 12:12:57 fantasai: as a last point, nice to obsolete border-spacing 12:13:13 ... controls spaces between cells, and it inherits 12:13:21 TabAtkins: it's the only layout property that inherits 12:13:34 fantasai: if we could redesign, it wouldn't inherit, and would be logical 12:13:59 TabAtkins: normal would be zero by default, in grid and flex, and 1em in multicol 12:14:06 q? 12:14:18 ... because all the gridgap stuff has shipped, so we have to keep 12:14:24 the gap property is coming! https://lemontree.se/wp-content/uploads/2014/10/titles-Mind-the-Gap-Large.jpg 12:14:33 ... only thing we break will be grid gap reset 12:15:02 fantasai: we need shorthand for column gap and grid gap 12:15:16 Florian_: column-gap would be shorthand for grid-column-gap etc 12:15:30 fantasai: none of them inherit 12:15:43 bdc: there's a proposal for a new gap shorthand? 12:16:00 fantasai: the proposal is to alias grid-row-gap 12:16:06 astearns: it's not temporary 12:16:10 fantasai: it might be permanent 12:16:25 ... the goal is to use column-gap and row-gap, and have a shorthand for the two of them 12:16:37 fremy: track-gap 12:16:54 fantasai: people are using shorthand more often 12:17:04 ... we'll have to run some data, but we might be able to remove the longhands 12:17:11 TabAtkins: one less alias to maintain 12:17:20 Florian_: weird to use grid stuff to reset your flex 12:17:37 SimonSapin: they would be aliases? 12:17:42 TabAtkins: one is shorthand of the other 12:17:58 fantasai: page-break properties are shorthands of the break-* properties 12:18:11 SimonSapin: so these would be shorthands with one longhand each 12:18:22 TabAtkins: they'd both access the same underlying value 12:18:28 SimonSapin: what happens in CSSOM? 12:18:41 SimonSapin, https://www.w3.org/TR/css-break-3/#page-break-properties 12:18:56 astearns: sounds like there are 3 things 12:19:04 ... 1 changing what's set by grid shorthand 12:19:12 ... 2 adding connection between the various gaps 12:19:18 ... 3 is some shorthand for all this 12:19:27 TabAtkins: 4 doing table cleanup 12:19:37 ... but it would be nice to have everything use same gaps 12:19:53 astearns: are there any objections to changoing grid shorthand to not reset column and row gaps? 12:20:03 Resolved: change what grid shorthand resets 12:20:05 zcorpan-OOO-14Aug has joined #css 12:20:11 dbaron: who will be first to implement? 12:20:17 Rossen: we'll do it 12:20:41 bdc: might not break anything 12:21:03 astearns: will only change behaviour if they set gaps, used shorthand, etc 12:21:13 rachelandrew: most people are not using shorthands 12:21:23 plinss: they do whatever you tell them to :) 12:21:34 astearns: so edge is willing to go first? 12:21:38 s/whatever/pretty much whatever/ 12:21:43 ... we're yet to release the updated grid 12:21:46 s/them to/them to do at this point/ 12:22:08 Rossen: I wish we didn't have to do the aliases 12:22:41 astearns: the second thing: any more discussion on column-gap and row-gap applying to all layout modes with gaps? 12:23:32 astearns: there will be a communication issue 12:23:48 iank_: which layout modes? 12:23:57 TabAtkins: multicol, grid, flex, and maybe table 12:24:17 fantasai: multi-col, grid, and flex all respond to the column-gap and row-gap properties 12:24:30 dbaron: which property has the normal value? 12:24:40 TabAtkins: column-gap and row-gap 12:24:52 ... for multicol it will be 1em, which is no change 12:25:02 astearns: what does column-gap normal due in grid and flex? 12:25:07 TabAtkins: Zero 12:25:10 s/due/do/ 12:25:31 dbaron: column-gap already has a normal value 12:25:46 astearns: we're adding normal to row-gap 12:26:18 dbaron: this is renaming thing for grid back to the old multicol things 12:26:20 TabAtkins: yes 12:26:26 dbaron: same syntax? 12:26:30 TabAtkins: yep 12:26:37 ... adding normal keyword to row-gap 12:26:58 fremy: do we need grid-row-gap and grid-column-gap 12:27:08 ... they are not interoperable 12:27:13 TabAtkins: why 12:27:26 fremy: in the sense that lots of browsers don't support grid 12:27:49 ... so there are not a lot of websites that use grid, and they were made in the last six months 12:27:54 TabAtkins: maybe, 12:28:00 fremy: to me this is a breaking change 12:28:16 TabAtkins: if they are using grid-column-gap etc it will break things 12:28:25 ... we need to look into how often they are use 12:28:33 ... default to safe answer of aliasing them 12:28:42 Rossen: can we resolve? 12:28:58 astearns: any other comments on using these in grid, flex, and multicol 12:29:06 I agree with Tab, let's keep the aliases for now but look into dropping them 12:29:18 dbaron: this is new feature for flex? 12:29:25 TabAtkins: this is the most requested feature for flex 12:29:45 bdc: the gap shorthand property is part of this resolution? 12:30:13 astearns: we will have a shorthand, we're just not sure what it's called 12:30:23 fantasai: we don't have to figure it out now. one thing at a time 12:30:49 fantasai: proposed resolution; existing column-gap and new row-gap with same syntax apply to flex, grid, and multicol, and alias to current props 12:31:06 dbaron: is handling of percentagges between the two consistent? 12:31:17 Florian_: multicol didn't have percentage until recently 12:31:22 ... not implemented yet 12:31:50 ... spec says % should work in multicol 12:31:57 TabAtkins: the definitions are identical 12:32:01 astearns: no concern? 12:32:10 TabAtkins: they're the same 12:32:20 astearns: any objection? 12:32:47 Resolved: column-gap and row-gap apply to flex, grid, and multicol 12:33:13 bdc: we could use gap as the shorthand 12:33:33 TabAtkins: do we have three letter properties? 12:34:11 astearns: options for shorthand are "gap" or pre=existing "grid-gap" 12:34:38 the only 3-letter properties in Gecko are 'top' and 'all'. A whole bunch of 4-letter ones, though... 12:34:39 astearns: we have to maintain grid-gap as shorthand, but that could be a discoverability problem 12:34:45 https://lemontree.se/wp-content/uploads/2014/10/titles-Mind-the-Gap-Large.jpg 12:35:05 astearns: the proposal is to add a shorthand for column-gap and row-gap that is just gap and aliased to grid-gap 12:35:23 fremy: I don't know if we have a shorthand aliased to a shorthand 12:35:25 zcorpan-OOO-14Aug has joined #css 12:35:41 LOL 12:35:47 myles: the question isn't that you have it, it's that you can do it :) 12:35:55 s/Resolved/RESOLVED/ 12:36:08 astearns: any objection? 12:36:21 fantasai: I think it's unnecessary aliasing, but I won't object 12:36:33 Rossen: there's probably not a ton of content out there, 12:36:47 ... I would prefer not to ship grid-gap at all 12:36:56 ... I don't mind aliasing the grid ones for a while 12:37:22 ... given this is six months of a feature, I'd be surprised if we couldn't do this 12:37:47 rachelandrew: I'll update all my stuff. I've already tweeted :) 12:37:56 fantasai: rachel and Jen can get the information out there 12:38:11 ... but they can't create a forcing function for people who've already been trained 12:38:19 ... but microsoft can do this 12:38:29 Rossen: that means interop pain for us 12:38:57 fremy: I'd rather not write a bunch of aliasing code that we're going to remove in six months 12:39:21 fantasai: it's not going to be difficult for you, it will be difficult for authors 12:39:29 s/difficult/annoying/ 12:39:31 Rossen: I don' think this is a q of implementaiton 12:39:38 s/authors/authors during the transition/ 12:39:45 ... we'll decide about aliases internally 12:40:07 s/microsoft can do this/microsoft can do this by not shipping grid-*-gap/ 12:40:15 ... I won't promise we'll ship without grid-column-gap etc, but 12:40:27 astearns: the hope is that we're early enough that we can eventually remove 12:40:38 Rossen: we'll ship very soon 12:40:54 Florian_: grid is unusual in that most browsers shipped in a very short time 12:41:15 ... even though it's only six months, but a lot happened in those six months 12:41:27 s/we'll ship very soon/when we ship/ 12:41:55 iank_: the main compat risk is chrome mobile(???) 12:42:05 TabAtkins, can you run a search on occurrances of grid-row-gap and grid-column-gap? 12:42:18 astearns: proposed resolution: add gap shorthand 12:42:20 fantasai, probably 12:42:27 RESOLVED: add gap shorthand 12:42:38 astearns: do we want to talk about tables? 12:42:43 fantasai: we have a solid proposal 12:42:57 TabAtkins: a single convenient interface to everything that can have gaps 12:43:08 dbaron: the weird thing about border space being inherited 12:43:29 ... applies only to table with border-collapse : separate 12:43:51 ... border-collapse is inherited 12:43:58 ... most tables will be separated 12:44:14 fantasai: unless you are setting column-gap or row-gap on a table already, then there's no effect 12:44:21 ... the new propoerties don't inherit 12:44:43 dbaron: if applies to table, then will apply to sides of columns, and row gaps apply to tops/bottoms 12:44:52 fantasai: we're not saying border-spacing reads out from column-gap 12:45:05 ... if the value of column-gap is normal, then look at border-spacing prop 12:45:20 dbaron: that would be weird if it applied inside, but not around edge 12:45:41 ... the full value plus padding on table element 12:46:05 fantasai: actions are to have these acts to apply only to the interior 12:46:10 dbaron: I think that's a bad idea 12:46:33 TabAtkins: either don't apply at all, or affect outside? 12:46:37 fantasai: this is low-priority 12:46:45 TabAtkins: it applys to every table 12:46:51 astearns: one solution is to not change tables 12:47:02 ... that's my general rule: don't mess with tables 12:47:06 fantasai: fallback issue 12:47:18 ... table displays are used for fallback in flex/grid 12:47:26 ... since it acts similarly 12:47:40 ... we will have authors using flex or grid model with these gap properties 12:47:45 q+ 12:47:52 ... in implementations that don't support them, they will fall back to table 12:47:58 ... but they don't support new gap properties 12:48:04 gregwhitworth: so it won't matter 12:48:18 iank_: I find this strange because we're not messing with table 12:48:20 s 12:48:42 ack gregwhitworth 12:48:42 astearns: proposed resolution: don't have the new gap properties apply to tables 12:49:03 TabAtkins: where do these properties go 12:49:14 RESOLVED: Tables are not changed 12:49:26 TabAtkins: align is the best place 12:49:36 ... it only applies to things taht are content-distributed 12:49:44 ... grid and flex will have sections pointing to this 12:49:49 astearns: and multicol 12:50:00 rachelandrew: same as any of the align stuff 12:50:09 Florian_: we need to fix grid, but just add it to other spec 12:50:14 TabAtkins: we need a section in grid 12:50:20 Florian_: in flex maybe not 12:50:34 astearns: nothing to correct in flex, just informative 12:50:50 RESOLVED: Add gap properties to align spec 12:50:58 Rossen: how far along is this spec? 12:51:05 fantasai: trying to get to cr 12:51:45 astearns: I think we're done with gaps for now! 12:51:51 ... are there other grid issues? 12:52:02 Rossen: Do we want to go over many of them? 12:52:20 ... we don't have to discuss all of them now 12:52:42 astearns: keep remaining grid discussion to 30 minutes 12:52:44 https://github.com/w3c/csswg-drafts/issues/1320 12:52:48 https://github.com/w3c/csswg-drafts/issues/1319 12:53:13 Topic: percentage children of stretch grid items 12:53:16 github: https://github.com/w3c/csswg-drafts/issues/1319 12:53:50 TabAtkins: flexbox has special text defining if your flex item is stretched and flex item is definite height specified 12:54:03 ... grid doesn't have the same text, but some bits of it imply that 12:54:12 ... so it would be useful to have it apply to grid 12:54:31 ... easier 'cause it's sized according to tracks 12:55:18 ... rossen said this should work 12:55:27 ... for the same reason as flex 12:55:49 ... 1320 is the same thing 12:56:03 plh has joined #css 12:56:09 ... any opinions to the contrary? 12:56:13 (silence) 12:56:44 astearns: any objection? 12:57:21 RESOLVED: copy from flexbox to grid: do what 1320 says :) 12:57:41 RESOLVED: copy from flexbox to grid: do what 1319 says :) 12:58:03 fantasai: axis names is an editorial thing 12:58:12 topic: looking for next topic 12:58:20 ... we only use it in a couple of places 12:58:31 ... I don't think it's causing problems 12:58:43 ... there's a request to add a note, and we're fine doing that 12:59:45 https://github.com/w3c/csswg-drafts/issues/1149 12:59:51 Rossen: is there an issue about intrinsic ratio? 12:59:54 fantasai: 1149? 13:00:28 topic: Automatic Minimum Size for grid items should not min against content size 13:00:38 github: https://github.com/w3c/csswg-drafts/issues/1149 13:00:39 jensimmons has joined #css 13:01:15 TabAtkins: in flex we do to some effort to find minimum size 13:01:32 ... if it's image we try to figure out what information is important 13:01:47 ... this is useful because flex uses this to size the image 13:02:03 ... grid uses the info to size the track, and then lets the image size to the track 13:02:30 ... the big difference is say you have a specified size of 100px and intrinsic size is 50px 13:02:37 ... we use 50px in flex 13:02:47 ... grid doesn't have to worry about shrinking 13:03:26 ... "So, we think the right fix is to just change Grid's automatic minimum size to be the specified size if it exists, else the transferred size if it exists, else the content size." 13:03:57 ... this better matches author intent for automatic minimum sizing of images 13:04:06 (tab draws on whiteboard) 13:04:26 ... image is 50px 13:04:34 ... put in grid container, set to 100px 13:04:48 ... in flex, minimum value is 50, it's allowed to shrink to that 13:05:03 ... in grid, we prefer to say let's stick with 100, 'cause the author said so 13:06:01 ... and avoid risk of overflow 13:06:12 Rossen: additional piece: if you open the test case 13:06:35 https://test.csswg.org/suites/css-grid-1_dev/nightly-unstable/html/grid-minimum-size-grid-items-007.ht 13:07:02 TabAtkins: sets itself to 100px, but grid width is 10 x 10 13:07:21 ... if we went by previous algo, track would be 50px 13:09:33 ... maintaining aspect ratio is important 13:09:42 astearns: any other comments? 13:10:01 Rossen: this one has height set 13:10:38 ... current spec says minimum of instrinsic and transfer? 13:11:12 fantasai: use specified if you have it, content if you don't 13:11:18 TabAtkins: edge does it 13:11:31 ... any objections? 13:11:41 astearns: hearing no objection, 13:12:20 RESOLVED: is either it's defined size, content size, or transfer size 13:12:31 (do what 1149 says) 13:12:43 fantasai: there was one about stretching tracks 13:12:45 topic: find another topic 13:12:48 https://github.com/w3c/csswg-drafts/issues/1150 13:12:50 TabAtkins: have I seen this? 13:12:55 fantasai: 1150 13:13:19 Topic: Stretching tracks fails to feed back into sizing algorithm 13:13:24 github: https://github.com/w3c/csswg-drafts/issues/1150 13:14:19 fantasai: the issue here is that the stretch alignment property takes effect 13:14:23 ... at the end of the algo 13:14:34 ... you size the cols, then use size of cols to set height of rows 13:14:38 ... at the end you do alignment 13:14:43 ... that's generally fine 13:14:50 ... cause alignment don't change track sizes 13:14:56 ... but stretch does 13:15:20 ... if you start with this example, you have image with intrinsic size, col sizes to intrinsic size, then try to size the rows 13:15:36 ... and we use the size of the columns because there's an aspect ratio 13:15:55 ... and now the item that's 100% wide fills the track in that axis, but then overflows the row 13:16:15 ... the suggestion is that the stretching phase should be accounted for in the sizing algo 13:16:30 TabAtkins: makes sense 13:17:31 fantasai: we'll try to incorporate this into the algo, then will bring to group for review 13:17:41 TabAtkins: is auto track and stretch distro the only thing that does this? 13:17:43 fantasai: yes 13:17:49 TabAtkins: then this makes total sense 13:18:10 fantasai: the proposal is to handle the streching at each phase of stretch sizing 13:18:20 astearns: would it make sense to have a note in align? 13:18:27 fantasai: flex already has this 13:18:38 s/this/this kind of integration/ 13:18:44 myles_ has joined #css 13:18:57 Rossen: stretching and last baseline tend to have feedback back into the layout algo 13:19:09 astearns: Yeah, so should have a note pointing to the appropriate section of grid/flex 13:19:47 RESOLVED: integrate stretching into track sizing algo 13:19:54 fantasai: ONE MORE THING 13:20:01 topic: one more thing 13:20:12 ... we have several discussions about how baseline interacts with grid sizing 13:20:26 ... gonna try to make that work, and then bring back to WG for review 13:20:34 astearns: that sounds like the right hting to do 13:20:46 fantasai: the other was discussion with max on aspect ratio of images 13:20:56 Rossen: that might disappear with a previous resolution 13:20:59 fantasai: it's different 13:21:07 ... nothing to do with minimum size 13:21:24 ... the issue that max was talking about, you could set min size to zero and still hit it 13:21:43 ... we've resolved to reject feedback, but we assumed we have interop 13:21:47 ... I'll double-check 13:21:55 Rossen: next steps for grid 13:22:10 ... baselines is one of the potential behaviour changes coming 13:22:27 ... outside of those, are there any other major behaviour changes? 13:22:32 ... most issues here are editorial 13:22:37 fantasai: most of them are editorial 13:22:48 ... I won't know until I fix issues and do DOC 13:22:56 ... there are some fiddly auto-sizing things 13:23:06 astearns: let's take a gap 13:23:21

13:30:47 rachelandrew has joined #css 13:49:04 Topic: multicol 13:49:13 bdc has joined #css 13:49:21 astearns: rachelandrew will be editor 13:49:40 RESOLVED: rachelandrew to edit multicol 13:50:10 Topic: writing modes 13:50:21 astearns: normative change to CR draft 13:50:33 astearns: need a new CR and tests 13:51:05 RESOLVED: a new CR of writing modes after edits and tests 13:51:25 myles_ has joined #css 13:51:36 https://github.com/w3c/csswg-drafts/issues/1391 13:51:51 Topic: APL 13:51:57 https://www.kri.sfc.keio.ac.jp/en/lab/aplab.html 13:52:16 Florian: Advanced Publishing Lab started in Keio university 13:52:59 Florian: Japanese industry driving potentially a new CLJK req 13:53:15 s/CLJK/CJKlreq/ 13:53:24 Florian: group wants to inform CSSWG of their requirements 13:53:36 astearns: C & K in scope? 13:53:48 Florian: not sure, but likely 13:54:31 astearns: please update the group as needed 13:54:56 Topic: inline layout 13:55:19 github: https://github.com/w3c/csswg-drafts/issues/938 13:55:44 Florian: from weaknesses of vertcal rythm 13:55:56 Florian: found lineheight issues from that investigation 13:56:02 https://github.com/w3c/csswg-drafts/issues/938#issuecomment-314690847 13:56:08 Florian: I did a bunch of testing ^ 13:56:31 Florian: shows how browsers differ 13:56:39 Florian: more interop than expected 13:56:50 Florian: Safari & Edge are the same 13:56:56 Florian: Chrome differs 13:57:01 Florian: Firefox differs 13:57:20 Florian: when lineheight is a number or length vs. normal 13:57:26 lajava has joined #css 13:57:49 Florian: refers to diagram from Tokyo discussions 13:58:02 Florian: (see github issue for diagram) 13:59:10 Florian: can't figure out Chromium baseline alignment 13:59:21 Florian: why does chrome behave this way? 13:59:50 Florian: we should fork the issue for general lineheight 14:00:18 Florian: we need to define base behavior of lineheight 14:00:43 fantasai: because rhythm depends on lineheight 14:01:14 fantasai: because the trigger to round up for rhythm depends on the computation of line height 14:01:24 myles_: and you can double spacing in some UAs not others if those computations differ 14:01:27 fantasai: right 14:01:49 Florian: goal is general interop on lineheight 14:02:25 astearns: discuss divergence on lineheight:normal 14:03:04 Florian: can isolate individual bugs 14:03:24 ACTION: Florian to file bugs with each case 14:03:33 Error creating an ACTION: could not connect to Tracker. Please mail with details about what happened. 14:03:56 fantasai: we don't have a spec for these issues 14:04:19 astearns: but we have interop except for chrome 14:04:31 astearns: so Chrome should figure out whether there's a reason to diverge, or whether they will fix it 14:04:39 astearns: and then we can spec the result of that discussion 14:05:06 Florian: for lineheight:normal Chrome differs by using the top of the tallest used fonts 14:05:21 Florian: will file a bug on that one 14:05:41 koji: we need to see the test 14:05:53 Florian: we'll debug later 14:06:15 Florian: I had to find fonts with tall ascenders and long descenders 14:06:24 Florian: Firefox font metrics differ 14:06:31 Florian: not sure why 14:07:21 myles_: If a browser changes the metrics they read from a font, every web page will look different. At least for us, that would be almost certainly unlikely to happen. 14:07:31 myles: if a browser changes metrics per font, every web page will render differently 14:07:46 Florian: in some cases Firefox is the same 14:07:57 bkardell_ has joined #css 14:07:58 dbaron: platform API's differ for metrics 14:08:26 koji: everyone has 3 font metrics 14:08:44 Florian: Chrome & Safari same on Mac 14:08:56 Florian: Chome & Edge same on WIndows 14:09:25 myles: some fonts are just weird 14:10:00 myles_: For at least font on at leats one platform, at least one of the metrics of the font returned by the system API doesn't appear anywhere in the font 14:10:19 Florian: the tests aren't clear re: metrics, but does show the divergence 14:10:34 Florian: I checked the content box for inlines--also no interop 14:10:47 Florian: on Chrome, doesnt depend on font metrics or lineheight 14:11:07 fantasai: spec says content box can't depend on lineheight 14:11:35 Florian: Firefox depends on font metrics and not lineheight 14:12:19 Florian: notes Chrome bugs 14:12:29 fantasai: is it 1 em? 14:12:40 fantasai: 1 em is at least predictable 14:12:58 Florian: not 1 em 14:13:15 FWIW, Gecko has 4 platform-specific font backends: (1) FreeType (used on Linux and Android), (2) Mac (3) GDI (Windows) and (4) DirectWrite (also Windows) 14:13:16 Florian: more testing needed 14:14:03 Bert: CSS2 recommends 1em or height of the ascender to descender 14:14:12 ". The height of the content area should be based on the font, but this specification does not specify how. A UA may, e.g., use the em-box or the maximum ascender and descender of the font. " 14:14:16 dbaron: macOS has CoreText and CoreGraphics and they may disagree 14:14:20 (This is from CSS2) 14:14:28 https://www.w3.org/TR/CSS2/visudet.html#inline-non-replaced 14:14:41 myles_, I think we're using CoreText 14:14:53 astearns: it differs depending on the platform font subsystem 14:14:57 dbaron: 💯 14:14:58 myles_, er, wait, there's a pointer to both objects :-P 14:15:29 dbaron: 💯💯✅ 14:15:30 Florian: Firefox differs with Outlines 14:15:58 myles_, InitMetrics seems to use mostly CG* APIs 14:16:26 Florian: outline allows a lot of leeway 14:16:35 Florian: and Firefox diverges most 14:16:44 Florian: please review the tests 14:17:14 astearns: file the bugs and have the browser engineers challenge 14:17:45 fantasai: we want interop and sane behavior so file spec bugs not browser bugs 14:18:09 fantasai: resolve on content box height? 14:18:33 myles_, I think we use Core Text only for fonts with color bitmap glyphs 14:18:48 Florian: we have 3 behaviors, Chrome I can't figure out at all. Doesn't seem to depend on line height or font metrics 14:19:24 Florian: Firefox .... 14:19:25 astearns: if we file a Chrome bug, we can get interop 14:19:31 astearns: despite no spec 14:19:52 fantasai: we should specify what the TTML folks can use 14:20:12 I think there are probably much larger audiences than the TTML folks who care about this. 14:20:19 Florian: using ascender/descender lengths is unpredictable 14:20:41 dbaron, not sure who that is, but pretty sure they'd agree on having something controllable and predictable 14:21:13 dbaron: may be concerns re: e.g., accent marks 14:21:24 dbaron: and script-specific issues 14:21:24 s/accent marks/accent marks not hanging out of the background/ 14:21:39 s/script-specific issues/that might be more important for Vietnamese than for English/ 14:22:24 Florian: content box depending on font metrics is very unpredictable 14:23:10 Florian: we can resolve on Safari/Edge behavior re: lineheight:normal being a bug 14:23:54 Florian: lineheight != normal returns different sizes 14:24:24 astearns: curently not a spec violation 14:24:35 but we should probably make it one 14:24:49 fremy: we can't resolve if we don't know what to spec 14:24:54 I think it is a violation of https://drafts.csswg.org/css2/visudet.html#inline-non-replaced 14:25:19 fremy: please file more specific issues 14:25:47 Florian: we'll split the topic 14:26:03 dbaron: fair - "The 'height' property does not apply " does seem to be relevant 14:26:06 fantasai: file issues against CSS inline and CSS2 14:26:44 Florian: I tested 2 ways: line stacking and with border. same results 14:26:46 I guess it's violating the "should" that it's based on the font 14:27:16 fremy: spec proposes 2 solutions 14:27:46 fremy: not sure how we choose either 14:27:59 fremy: I need to check Edge code 14:28:31 fremy: but maybe we consider line-height to be intent from authors they want control 14:29:00 Florian: interop is fixable 14:29:20 Topic: CSS Rhythm 14:30:03 Ms2ger has joined #css 14:30:24 https://groups.google.com/forum/#!msg/mozilla.dev.platform/cnEN_sccXJY/1ddo5XifAwAJ 14:30:44 ScribeNick: fantasai 14:30:54 koji: I'd like dbaron to explain his opinion 14:31:09 dbaron: Current approaches are going to lead to things that are fragile wrt behavior between browsers, or even same browser on different platforms 14:31:16 dbaron: where you get double-spacing of line sin unpredictable situations 14:31:22 dbaron: There are alternative approaches which would not lead to this problem 14:31:33 dbaron: But I'm not interested in focusing on this right now 14:31:38 dauwhe: ? 14:31:46 dbaron: Right now not looking at anything 14:31:58 dbaron: I'm discouraging ppl from implementing this feature because I don't think it's something that should be implemented 14:32:05 dbaron: Same issue as [?] 14:32:19 s/[?]/double-spacing/ 14:32:26 dbaron: Some of the ways to solve it might be to use an entirely differnet design, whereas github issue is trying to keep the same design and trying to find small fixes for double-spacing 14:32:43 s/dbaron: Same/koji: Same/ 14:32:48 koji: Your concern is different font metrics causing different ? is the problem? 14:33:02 s/ ? / result / 14:33:03 s/dauwhe: ?/dauwhe: are you concerned about just the inline step sizing, or all of css rhythm? 14:33:12 koji: Original issue was line-height normal causing problems 14:33:20 Florian: There's a general problem and a specific case of that problem 14:33:39 Florian: general problem is when different font metrics or different ways to implement line height or things of that nature cause the layout to work just fine in one browser 14:33:47 Florian: and to be entirely double-spaced or randomly double-spaced in another browser 14:33:50 Florian: That's the general worry 14:33:52 or different font availability 14:33:58 Florian: within that space, this github issue identifies one case where this happens 14:34:06 Florian: if this is the only case where this happens, maybe dbaron's worry goes away 14:34:17 Florian: If there are more instances of similar worries, we'll need lots of patches 14:34:33 dbaron: Another major case is font availability, where you have a font available on one platform and not on others 14:34:40 koji: I heard one example 14:34:50 koji: but dbaron's concern seems to be a different case 14:34:52 Florian: it's the same 14:34:58 Florian: if line-height-step is a user-defined specific value 14:35:04 Florian: and line-height is a different user-defined value 14:35:08 Florian: then this is generally predictable 14:35:11 q+ 14:35:18 Florian: if line-height is smaller than line-height-step generally okay 14:35:35 Florian: If there's one line that has a superscript and double spaced that line it's kindof okay 14:35:43 Florian: but double-spacing entire the page is a problem 14:35:50 Florian: If you set [various combinations, varous results] 14:36:16 Florian: Different fonts, different ways to read metrics from the font, different implementations of what 'line-height: normal' 14:36:19 Florian: cause differences 14:36:30 q- 14:36:33 dbaron: I'm not sure that even line-height: is predictable, requires testing mix of elements 14:36:51 ... where some have font fallback 14:37:11 fantasai: another case that could cause problems is different line wrapping,e.g., if superscript and subscript end up on the same line 14:38:02 Florian: Point of feature is normalization of line heights so a few lines double-spaced probably okay, but all lines not good 14:38:18 Florian: primary font doesn't have CJK and other font does, then many lines with mix of fonts 14:38:24 Florian: line-height to specific number, it's okay 14:38:31 Florian: but if you have spans in the middle of that, you might trigger problem often 14:39:04 fantasai: it's broken if the author sets something precisely expecting no gaps in the general case; they'll be upset if they see gaps 14:39:16 fantasai: you won't have a case that's extremely painful for the user 14:39:27 fantasai: it's definitely broken if the author didn't expect any gaps but there were some. If there are few gaps there shouldn't be that much of a confusion 14:39:48 astearns: author shouldn't use this if they don't want double spacing 14:40:00 jet: on dev.platform, was a question of whether authors really want this feature 14:40:05 q+ 14:40:10 s/don't want/can't stand occasional/ 14:40:17 jet: Haven't heard demand from authors outside Koji here in this room 14:40:21 jet: Do people want that 14:40:31 Florian: People do want vertical rhythm, absolutely 14:40:34 jet++ 14:41:06 jet: Chromium has it behind a flag, have people been building websites with it and saying "yes I absolutely want this", haven't really seen that 14:41:10 ack fantasai 14:41:33 fantasai: people want vertical rhythm, but is this the feature that will solve it? 14:42:07 fantasai: we want this spec to be robust and integrate with the rest of CSS elegantly 14:42:22 fantasai: I don't think this feature fits that description 14:42:52 fantasai++ 14:42:59 fantasai++ 14:43:30 fantasai+^+^+ 14:43:48 fantasai: Our goal for features we design here in the CSSWG is to be flexible, robust, poweful, easy-to-use, and understandable 14:44:08 fantasai: We intend for them to fit within, integrate with, and enhance the CSS system 14:44:22 fantasai: Not be a hacky workaround to some particular issue 14:44:34 fantasai: I don't believe this feature fits that design requirement. 14:44:43 fantasai: Additionally, I don't think it does a good job of addressing the use cases 14:44:52 fantasai: Absolutely, people want control over vertical rhythm 14:45:17 fantasai: But their problems aren't largely about lines within a long wrapped paragaph of text being slightly off-kilter 14:45:33 fantasai: The breaks in rhythm are largely introduced by block-level interjections in the flow of text 14:45:44 fantasai: Things like headings, figures, tables, and block-quotes 14:45:51 fantasai: This feature does not address these use cases 14:45:57 q+ 14:46:28 fantasai: It at best allows a hack of turning these block-level elements into inline-blocks in order to use this feature to control rhythm. 14:46:50 fantasai: I don't believe this feature is well-designed. 14:46:58 q+ 14:47:16 astearns: I absolutely agree that block-level interjections are also a problem, but I don't agree that they're worse than line box stepping 14:47:36 fantasai: much of the jitter in line boxes is due to... 14:47:43 q? 14:47:46 ack dauwhe 14:48:05 koji: I thought kobayashi-sensei explanation in Tokyo was more understood 14:48:08 koji: discussion wasn't 14:48:12 koji: what he said was what Alan said 14:48:21 koji: not sure about Latin, but for Japan 14:48:42 q+ 14:48:54 koji: what he said was when block-level interjection is big enough he wants other factors wins over getting back to original rhythm 14:49:08 astearns: my impression was that his opinion was that it was acceptable but still not enough 14:49:17 koji: I talked with ppl who attended, ppl agreed with me 14:49:22 koji: maybe translation problem 14:49:46 koji: What he explained was vertical wrhythm when objects intervene 14:50:02 koji: Should be done like justification, so that each text block and image and blockquote are like characters in the "line box" of the page 14:50:20 koji: each space to have equal lenght is more important than returning to the rhythm 14:50:39 koji: line grid can do it, or maybe other features, but then have to adjust grid after intervening objects 14:50:51 q- 14:50:59 koji: but line-height-step or block-height-step doesn't have this problem 14:51:18 koji: What sensei didn't say, is making block height to step 14:51:51 dauwhe: A couple things, one is that I would love to see some East Asian examples of how this feature fixes problems of East Asian typography 14:52:04 dauwhe: examples have been in Latin, so hard for us to see the goal of this feature as designed 14:52:18 dauwhe: Also want to say that wrt Latin typesetting in general, I agree with fantasai 14:52:43 dauwhe: Last thing we want to change is line height of the blocks. This is the worst result, lowest priority. Prefer to adjust spacing around blocks 14:53:02 ack Florian 14:53:05 dauwhe: So I would like to see more targeted use cases for the case of East Asian, since in Latin this is not as appropriate 14:53:25 Florian: In Latin text, you have ascenders and descenders so the visual edges of the line is irregular 14:53:37 Florian: Whereas in CJK if the spacing is irregular, it is very obvious 14:53:51 q? 14:53:51 Florian: So a small superscript that sticks out and slightly shifts the line is really bad 14:53:55 dauwhe: it's pretty bad in Latin, too 14:53:59 q+ 14:53:59 Florian: So that is one part 14:54:06 Florian: Another response is to fantasai 14:54:24 Florian: wrt her design goals of CSS 14:54:32 Florian: Early incarnations of this feature were very much not robust 14:54:42 Florian: We have made changes to decrease its powerfulness to increase its robustness 14:54:46 Florian: I don't think it's robust enough yet 14:54:59 Florian: When I'm done with fixing interop on line height, then will look at robustness of this feature 14:55:23 Florian: I'm not sure we can make this feature robust enough, but either way this depends on how we fix interop of line height calculations 14:55:37 koji: We seem to be discussing two topics, one is fundamental design and the other is this problem of oduble spacing 14:55:53 Florian: The design of this feature makes it easy to use in some cases and very broken in others. If we can't fix this, we can't use this feature 14:56:25 koji: Fundamental to vetical rhythm that some authors want to take as much step as font metrics says 14:56:36 koji: if font is taller, want to take more steps, as much as needed to fit font 14:56:44 koji: whereas in some cases we consider accidental 14:56:50 koji: and that happens in line grid, too 14:57:02 q? 14:57:10 astearns: Same concern about accidental double spacing of everything is a problem both for rhythm and for line grid 14:57:28 astearns: and we can't take either of the proposals if accidental double spacing of everything is prevalent enough to be a problem 14:57:49 astearns: Accidental double spacing is prime example of the design flaw 14:57:53 astearns: still talking about double spacing 14:58:00 koji: what if double spacing happens in line grid, too? 14:58:20 myles_: I don't think anyone has made the argument that line grid should ship instead of this 14:58:31 myles_: people are simply objecting to this feature on its own merits 14:58:32 ack Rossen 14:58:34 (or lack thereof) 14:59:04 Rossen: First comment about jet's comments 14:59:18 Rossen: What jet mentioned earlier about lack of examples / requests, we've had a lot of requests internally 14:59:26 Rossen: mostly ppl building multicol based layouts 14:59:33 Rossen: fairly impossible to make things align in terms of line breaks 14:59:42 Rossen: To that point, what fantasai said earlier whas right on the money 14:59:57 Rossen: Most of the problems aren't due to lines, they're mostly due to headings and other blocks that are not multiples of line height 15:00:01 headings are not lines? 15:00:22 astearns, no, but I can't explain and minute... 15:00:28 :/ 15:00:42 (I know they're blocks) 15:00:53 Florian: his comment was looking for evidence that this particular solution addresses the use case, not evidence that the use case was important 15:01:01 s/his/jet's/ 15:01:19 Rossen: I was hoping to know, it's been already 1.5-2yrs that we've been working on this 15:01:23 q 15:01:25 q? 15:01:41 Rossen: It's certainly the case that in CJK the use cases seem to be predominatnly based on just lines and line sof text without that much blocks or other things int he flow that contribute to irregularity 15:01:50 Rossen: in those coases perhaps line grid makes sense, maybe that's the best thing to do there 15:01:57 Rossen: at the same time, most of the objections I hear constantly against it 15:01:57 q+ to ask how long has Chrome been shipping it behind a flag? and shouldn't we see at least experimental sites using that in the wild by now? 15:02:03 Rossen: are based on the other sets of requirements 15:02:35 Rossen: which are for multicol block-level stuff we were talking about 15:03:01 fantasai: No, there's two sets of objections one is the block-level concerns the other is the robustness concerns 15:03:07 ScribeNick: TabAtkins 15:03:20 fantasai: part of the robustness concerns is all this non-interop stuff for line-height in general is part of it 15:03:29 fantasai: Other thing is that the way we do line-height calcs in general creates jitter. 15:03:45 fantasai: So even if we have line boxes with same height, that doesn't the jitter case that CJK needs us to solve. 15:04:17 fantasai: So even without browser variance, even with a strict vertical rhythm, within the linebox the line moves, and line-height-step doesn't fix that. 15:04:17 Rossen: Many of the requests that we (Microsoft) has had for this style of feature are caused by interjecting blocks in between many flowing lines of text. [myles: therefore those aren't solved by this particular solution] 15:04:35 fantasai: So if your concern is within a paragraph keeping a rhythm, we need to fix interop *and* maintain the baseline-to-baseline height. 15:04:41 q+ 15:04:57 fantasai: Beacuse of the way we center content in the linebox, if the content is slightly larger but doens't spill out of th elinebox, it'll center. 15:05:11 s/center/jitter/ 15:05:19 koji: If you solve that, even when you do, if the font-size is differnet, you'll still need line-height step. 15:05:34 koji: So it doesn't seem to be a reason not to do line-height-step. 15:05:56 fantasai: The only case you need l-h-s is if, in the middle of a paragraph, you want to double-size a particular line because it includes larger content. 15:06:06 q+ 15:06:13 ack tantek 15:06:13 tantek, you wanted to ask how long has Chrome been shipping it behind a flag? and shouldn't we see at least experimental sites using that in the wild by now? 15:06:14 I could bring back line-box-contain with stepping extensions that I think would be more robust, at least for some values of line-box-contain. 15:06:17 tantek: How long has Chrome been shipping this behidn a flag? 15:06:21 koji: a year or so 15:06:40 tantek: For a feature we all agree conceptually there's demand for, we should have seen at least a handful of experimental demo sites using them. 15:06:49 tantek: We haven't seen that, or if we have, please provide the urls. 15:07:10 tantek: Second is, I'm increasingly concerned with shipping features that *almost* work, but are fragile and easily break. 15:07:30 tantek: Having witnessed all the float/columns confusion, having it break easily, that makes people distrust CSS as a whole. 15:07:42 tantek: Would be unfortunate to have the whole concept damaged as a result. 15:08:01 tantek: So that's why providing the block-level solutions might make it *just* dependenable enough to make it usable in production. 15:08:12 tantek: It won't be perfect, but can it be *reliable enough*. 15:08:34 astearns, the reason I'm saying that headings aren't lines isn't that they aren't made up of lines, of course they are. But generally the problem isn't havng each individual line snap to a multiple of the base line height, it's having the heading as a whole snap to that multiple. 15:08:47 astearns, because for headings you don't want to have large line heights or gaps between the lines 15:08:52 fantasai: let's talk about this after 15:08:58 koji: I tried to talk to some webdevs; my feeling so far is that the experimental flag buidling sites works in US, but not in intl, where pops are smaller and people are less willing to spend effort helping standardization. 15:09:01 astearns, you usually want them quite tightly spaced, in fact, because they are a larger font size 15:09:12 koji: So they generally say "we'll try when it ships, but can't spend much time before that". 15:09:23 astearns, but you want space around them, and you want the total space taken up by the heading -- like the total space taken up by a figure or table or blockquote -- to fit into the rhythm 15:09:35 koji: For robustness, as far as I understand, your "robustness" is different from fantasai's concept. 15:09:37 tantek: Could be. 15:09:44 koji: I think you're more about accidental jumping. 15:09:59 koji: I think earlier we were talkinga bout, when we get the future stack thing - if it gets off the grid, it accumulates. 15:10:12 koji: That part is design - Japanese vertical rhythm is different from Latin's. 15:10:14 ack Florian 15:10:33 Florian: Earlier fantasai was saying that this feature isn't quite good enough; while it solves locally the size of the line, it doesn't do the position. 15:10:44 Florian: Earlier feature did address that, but made it more fragile. 15:10:54 astearns: It solved that using the baseline ratio. 15:11:01 Florian: So that's a bit of the difficulty with this feature. 15:11:14 Florian: I haven't given up hope, but I don't know if at the end of the process it'll still be useful. 15:11:35 Florian: Currently kinda useful and kinda fragile; was earlier more usefula nd more fragile; will it be useful at all? 15:11:51 Florian: So we have a feature that's either too fragil eand not useful enough, or one that's too difficult to figure out. 15:12:09 Florian: Otoh, there's a simple and useful feature that solves the block side of the problem, which we most agree isn't quite enough. 15:12:20 Florian: But I don't think anybody thinks the block feature is insufficiently robust, or not useful. 15:12:26 Florian: So I recommend people start on that, rather than being stuck. 15:12:38 Florian: As to whether this is still useful when it's robust, dunno. 15:12:51 Florian: IN parallel, I think it would be nice to try and make line-grid simpler in terms of impl. 15:13:01 Florian: Nobody's been willing to bite the bullet yet. 15:13:08 Florian: If someone can find a magic solution, prizes! 15:13:19 fantasai: I don't think that finding the third solution is as impossible as you think. 15:13:25 q+ 15:14:03 fantasai: First, we need to solve the jitter problem. 15:14:09 fantasai: We're wasting our time if we don't solve that. 15:14:20 fantasai: Requirement for any solution, and it's not specific to l-h-s or line-grid 15:14:24 fantasai: We just need to fix line layout. 15:15:01 fantasai: We need to continue and prioritize the work that florian has been doing, to fix line layout. 15:15:11 fantasai: Second, we need examples of where this specific feature is a solution to a problem. 15:15:24 ack fantasai 15:15:39 fantasai: I think this is solving a problem of fixing line-heights within a wrapped paragraph, by doubling the spacing of that line, and I dont' think anyone wants taht in general. 15:15:44 ack dbaron 15:15:56 dbaron: I think one thing we should look at to address this is having whatever the solution is be a bit more of a mode switch than what we're looking at. 15:16:04 dbaron: To some degree line-grid is such a mode switch. 15:16:22 dbaron: 14 years ago I had a proposal for line-box-contain, in the ED for linebox for a decade, shipping in Safari for a bit... 15:16:34 dbaron: That tried to add all the detail for how to consider what should affect the linebox. 15:16:44 dbaron: But to a good extent there's only three values that are important. 15:16:59 dbaron: One is what we do in quirks mode, one is what the specs say, one is what devs actually want. 15:17:13 dbaron: it's a little complicated, but it's in the spec, hard to find. 15:17:20 astearns: So in addition to box-sizing, we should have line-sizing? 15:17:24 dbaron: Not where I was going. 15:17:43 dbaron: One of the things is that you have a property that says "i want a line grid at a certain size". Whether it's a full-fledged grid or a slightly weaker thing. 15:18:08 dbaron: I suggest that, once that grid is established and for all the blocks that use it (presuming you can turn it off for some descendants), we switch line layout to another mode. 15:18:17 dbaron: WE stop stupid things, like honoring line-height on inlines. 15:18:18 dbaron+++++++++++++++++++++++++++++++++++++ 15:18:22 myles_: +++++ 15:18:34 tell it, brother! 15:18:43 dbaron: Only honor line-height on boxes. Honor border or margin-box size on inlines, so if they actually overflow the line, they make it bigger. 15:18:54 dbaron: But if you're at line-height:1.25, you don't get the 1.25 buffer on them. 15:19:02 dbaron: And from there we can figure out baseline alignment to the grid. 15:19:36 dbaron: So I think having a non-inherited proeprty that establishes a line grid or step-sizing space, is better than an inherited mode switch, like line-box-contain was, because it serves another purpose as wlel. 15:19:49 dbaron: While it has some mode-switching purposes, mode-switches aren't that great. Doesn't cascade well. 15:19:52 dbaron++++++++ 15:19:58 dbaron: Has some of the effects of a mode switch, but not all of them. 15:20:47 iank_: A new inline layout... 15:20:53 dbaron: Not that different. Still doing inline layout. 15:21:12 dbaron: line-box-contain had a bunch of values that were like "block", "inline", "replaced", "text", "ruby", "glyphs"... 15:21:24 dbaron: When you did your linebox height calc, you looked at the list and only considered those. 15:21:32 dbaron: The standard behavior is "block inline repalced" i think 15:21:42 https://www.w3.org/Style/Group/css3-src/css3-linebox/#LineStacking 15:21:45 dbaron: Quirks mode is more like "text replaced" or something 15:22:00 dbaron: But people don't really want inlines considered at all, you just don't want glyphs to overlap by default. 15:22:22 dbaron: The principle isn't complicated, it's just a new step in line layout that controls what you consider. 15:22:37 dbaron: The mode switch would be about changing what you consider in that step. 15:22:50 myles_: I think it's still in WK prefixed... 15:22:55 iank_: It's removed from Blink. 15:23:07 astearns: See if it helps enough for this use-case? 15:23:10 myles_: Which? ^_^ 15:23:10 q+ 15:23:19 s/Which/Which use case/ 15:23:38 Florian: Having discussed a variant of this for several times, I think coming back in a few months with the same discsussion isn't helpful. 15:23:52 Florian: I think it's clear that koji and fantasai disagree on whether robustness is important/etc. 15:24:12 Florian: I think it's important if koji could show sites using this feature in ways that trigger double-spacing, and say "yes, this is what the author wants". 15:24:28 fantasai: No, you want sites using the feature that show why this is good, and the other alternatives aren't necessary. 15:24:48 astearns: We want to evaluate the shipping solution, to see if it addresses the use-case. 15:24:58 astearns: We have a shipping solution, we should have evidence that it's enough for some set of people. 15:25:13 Florian: And specifically, I want to see these examples hit the conrer cases, without authors getting bad results. 15:25:29 astearns: Whether the extant examples hit the corners or not, we can use them to push them into the corners. 15:25:31 s/aren't necessary/can't solve it/ 15:25:40 nigel has joined #css 15:25:48 Florian: Other than that, I don't think it'll be useful to have elika tell koji it's not useful, and koji saying it is... 15:25:57 koji: I'm saying tha trobustness is different between Latin and CJK. 15:26:13 Florian: Sure, I'm not trying to rephrase; it's just that rehashing the same discussion without new info isn't useful. 15:26:30 Florian: In the meantime there are concrete things we can work on, like improving lineboxes. Maybe dbaron's stuff 15:26:42 Florian: In the meantime just rehashing is harmful, it blocks us from doing similar things. 15:26:49 tantek: I think this conversation has brought up some new stuff. 15:26:58 fantasai: My and dbaron's points were brought up in Tokyo. 15:27:04 (A public link: https://www.w3.org/TR/2001/WD-css3-box-20010726/#the-line-box-contain ) 15:27:10 Decent amount of vertical rhythm libs in CSS & JS: http://kyleshevlin.github.io/shevy/ 15:27:16 tantek: I think some new stuff, like eamples that use it 15:27:21 astearns: And I think line-box-contain is new. 15:27:33 tantek: So I think it's not fair to say it's a complete rehash. 15:27:51 astearns: But I agree we need examples, "this community won't turn on a flag" isn't a good enough response. 15:28:18 koji: Why doesn't printed material show this? 15:28:33 astearns: We need examples of *this particular solution* trying to solve things. 15:28:54 Florian: Looking at print doesn't help here; it illustrates there is a problem to solve, but not that this solution in particular solves the problem. 15:29:31 koji: Word isn't print - if you look at a word doc with different installed fonts, you get a similar problem. 15:29:44 Florian: Usually that happens because of switching between Word and OpenOffice, and people hate it. 15:30:08 Florian: I'm saying that showing examples of *other* things doesn't help us see if *your* solution solves stuff. 15:30:21 koji: If you require that of every i18n feature, we'll never get it done... 15:30:30 Florian: We're not asking for everything, just for controversial things. 15:30:40 myles_: And there's another possible solution - dbaron's l-b-c. 15:30:54 astearns: Even without another, this particular solution has enough controversy that we want to see successful use of it in the wild. 15:31:11 I meant line-grid in addition do dbaron's idea 15:31:15 astearns: Anything else to go into? 15:32:05 worth noting -webkit-line-grid is on chromestatus 15:32:13 none of the rhythmic sizing props are 15:32:21 github: https://github.com/w3c/csswg-drafts/issues/938 15:32:32 ^not sure if chromestatus shows experimental flag items or not 15:32:40 koji: Yeah. There are mutliple issues in here. 15:32:50 koji: ONe issue has a proposed solution, shane and tab came up with. 15:33:12 koji: It's about avoiding accidental jumps. 15:33:28 koji: I undersatand it doesn't solve all, but I want people to udnerstand the proposal and see if it solves part of the problem. 15:33:47 TabAtkins: So the ultimate problem is that when line-height is normal, it's unpredictable 15:34:02 TabAtkins: So if you set a line-height-step anywhere near the normal value, might look good on your screen not on others' 15:34:27 TabAtkins: proposal is that if lineh-height is normal and result of that would give you a light-height stlightly over your normal line-height 15:34:35 TabAtkins: based on some UA threshold of fuzziness 15:34:49 TabAtkins: Instead of doubling spacing, reduce to line-height-step 15:35:02 TabAtkins: It should hopefully correct any accidental slight overlap that you run into 15:35:11 astearns: why UA-defined squishiness 15:35:21 TabAtkins: figure out the right value later 15:35:51 TabAtkins: if we can agree on one later, great, but otherwise don't want to sink the proposal by arguing over value right now 15:36:08 Florian: I believe I understand the proposal but don't understand why it helps 15:36:22 Florian: If one browser normal is slightly smaller than step, and in toher browser slightly larger, then it helps 15:36:46 Florian: But if in your browser it's slightly larger than normal, but in other browser it's even more larger than normal 15:36:55 Florian: then you get single spacing in yours and double sizing in the other 15:37:10 Florian: So it changes the numbers that trigger the problem, but it doesn't make the problem go away 15:37:45 TabAtkins: Think set of cases that get fixed are goingto be more common than set of things that get broken 15:37:57 TabAtkins: In order tog et broken as you say, you need to set line-height-step smaller than your line-height 15:38:12 fantasai: Line height normal is unpredictable though 15:38:30 Florian: Line height: normal isnt' between 1-1.2, it comes form the font. It might be 2.7 15:38:49 q+ 15:38:54 Florian: within i18n contexts it varies a lot, even though you don't see it that much in Latin (aside from fantasy fonts) 15:39:11 q+ 15:39:20 TabAtkins: Ignoring fantasy fonts and Zapfino 15:39:23 ack Florian 15:39:23 fantasai: i18n 15:39:41 TabAtkins: You said there's larger variation in the consequences of the line box size due to non-Latin character set default fonts 15:39:50 Florian: I believe so, and I think Koji claimed that before I did 15:40:09 ack myles_ 15:40:20 fantasai: I suspect you're more likely ot get that variation in Tibetan and Thai and other fonts that have lots of diacritics 15:40:30 myles_: I agree that fuzzy matching is a good way to solve language problem 15:40:41 myles_: Implementation knows exactly where all the lines go, so implementation has all the information it needs 15:40:51 myles_: rather more than the author even, cuz author doesn't have font metrics 15:40:58 myles_: so reasonable to have implementation make lines fit well 15:41:26 myles_: previous conversation needs to be resolved before we take this though 15:41:33 ack koji 15:41:34 TabAtkins: might want to evaluate solution with this in mind tho 15:41:56 koji: I agree with myles that the accidental jump issue has needs to deal with some heuristics 15:42:08 koji: because in some cases we want to squash really tall fonts 15:42:32 koji: implementation can experiment and maybe a few years later we find very good values and want to standardize it but at this point better to experiment and get feedback 15:42:55 astearns: your experimental implementation, if you can get people to use you can get data on utility of squishiness 15:43:14 koji: Does that solve previous concerns? 15:43:27 astearns: Would anyone object to objecting with this? 15:43:48 astearns: 2nd, would squishiness as described make anyone more interested in this feature? 15:43:52 myles_: not for us 15:44:13 s/objecting/experimenting/ 15:44:16 astearns: So this squishiness doesn't help other implementers be interested in line-height-step, but seem to be no objections to Google experimenting with it 15:44:35 Florian: No objection to experimentation, less certain about adding it to the spec 15:44:44 koji: If not in the spec, we can't ship it 15:45:16 Florian: I don't want to ship this without a flag unless we have strong evidence that it is less dangerous than people have expressed worries about 15:45:36 Florian: changes to the spec discussed so far don't make me convinced 15:45:56 koji: Why can't you at least suspect it helps? 15:46:02 Florian: I suspect it does not 15:46:08 Florian: I expect it breaks some fixes some and it's a wash 15:46:15 Florian: If it fixes lots and breaks few, pls demonstrate 15:46:36 myles_: Do we need a resolution for Chrome to experiment behind a flag? 15:46:46 Florian: No, they want it in the spec so they can ship it without a flag 15:47:55 astearns: They don't need our permission to experiment, would need permission to add it to the spec even though the consensus of the group is not that the feature is at a point that is OK to ship without a flag 15:48:37 koji: Issue was browsers hard-coded differences in line height calculations triggering different steps, we're trying to solve that, so Chrome doing it doesn't help 15:48:50 astearns: you didn't convince Florian, but myles seems to agree it might help 15:48:52 myles_: please ignore me 15:48:58 bgirard has joined #css 15:49:05 s/please ignore me// 15:49:05 s/myles_: please ignore me// 15:49:30 dbaron: I agree with Florian's concern that it seems to mostly be moving the threshold and not actually fixing the bug 15:49:57 Florian: I didn't mean that in the long run Chrome should have it and others shouldn't add it, I'm suggesting that the only implementation we have experiment 15:50:03 myles_: 100% of implementations will experiment 15:50:14 Florian: Add squishiness, come back and tell us if it improves the situation 15:51:06 fantasai: Koji's pointing out that we want to find out if there's a problem with interop. Chrome can't find a problem with interop by itself 15:51:54 TabAtkins: To simulate differences in how normal gets interpreted, swap around the font list. 15:52:01 fremy: Or switch from Mac to Windows 15:52:14 astearns: OK, think we're done with rhythm 15:52:41 Florian has joined #css 15:52:54 Meeting closed. 15:53:10 RRSAgent: stop logging 15:53:10 I'm logging. I don't understand 'stop logging', gsnedders. Try /msg RRSAgent help 15:53:20 RRSAgent: stop