-
Notifications
You must be signed in to change notification settings - Fork 699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css-display-4] Initial value of reading-flow
#11396
Comments
By automatically, I'm assuming that the default behavior of Given that masonry is new, there wouldn't be an issue there as we could define the behavior from the outset. I outlined some thoughts for the masonry/reading-flow interactions in this issue. Having automatic behavior would I think mean we needed to have the behavior more like flex, and have a Changing the defaults for dense packing might cause a compat issue. My gut feeling tells me that where people have used dense packing they aren't too worried about the ordering, given that you essentially lose control of it anyway, but we probably need to look into it. The default would likely need to follow the I think in both cases adding a keyword to |
The CSS Working Group just discussed
The full IRC log of that discussion<TabAtkins> rachelandrew: this bunch of issues... a lot rely on masonry<TabAtkins> rachelandrew: we have an open PR for the html spec <TabAtkins> rachelandrew: we're trying to get to whether these outstanding issues are liekly to change the html changes <rachelandrew> https://github.com//issues/11328 <TabAtkins> rachelandrew: we might just resolve that it's probably not going to change the API shape <TabAtkins> rachelandrew: for this first one, the initial value fo reading-flow <TabAtkins> rachelandrew: in general "normal" means behaving as we do now, tab order follows the dom <TabAtkins> rachelandrew: we ahve automatic layout methods, like grid-auto-flow dense that can fill in gaps, masonry can similarly have funky ordering <TabAtkins> rachelandrew: with these, it kinda feels like we'd want to go with the visual ordering instead of source as a default <TabAtkins> rachelandrew: so that's the question here - do we think that's a good idea? <TabAtkins> rachelandrew: probably means with masonry we'd have a masonry-flow value for the property <TabAtkins> rachelandrew: dense grid might cause some compat issue, but you probably already don't care abou thte osurce order since you dont' have much control over it <TabAtkins> rachelandrew: and then we'd need a value to explicitly opt back into source ordering <astearns> ack fantasai <TabAtkins> fantasai: i think one of the key questions for html integration is, do we envision cases wher edefault ordering isn't he source order <TabAtkins> fantasai: html spec is currently written with a binary change - if you do reordering, THIS happens, if not, THAT happens <TabAtkins> fantasai: if the default behavior reorders, we can't go down the reordering path <TabAtkins> fantasai: even if you don't actually change the order of anything, the behavior changes <TabAtkins> rachelandrew: yes, it means if you didn't do any actual reordering you'd be in this slightly changed state <TabAtkins> rachelandrew: but not sure why that makes a huge difference if it's initial or not <TabAtkins> fantasai: there's a scoping of tab navigation that happens if you're in the reordering version <TabAtkins> fantasai: we can't just turn that on for everything all the time <TabAtkins> rachelandrew: it's not all the time, the proposal is it only does visual order *for these intrinsically reordered display modes* <TabAtkins> fantasai: okay, might make sense. right now HTML relies on initial value to know whethe ror not to do the thing; need to isntead rely on a CSS concept of if it *is* reordered. <TabAtkins> (is being reordered, that is, whether the order actually chages or not) <TabAtkins> fantasai: I think dense packing might be the trickiest case... <TabAtkins> fantasai: if you have a collection that's dense packed, most of the time you dont' care about specific order <TabAtkins> fantasai: but if you're doing a combo layout where parts are epxlicitly and the rest are dense packed, you might really care about where the explicit items are in reading order <TabAtkins> fantasai: and want them in source order, but not care about the auto placed ones <TabAtkins> rachelandrew: i think that's bleeding into the next issue <TabAtkins> rachelandrew: whether we change the default behavior is a different issue <TabAtkins> rachelandrew: we could decide dense grid has sailed and can't change the default, but that's still separate <TabAtkins> fantasai: i think it interrelates somewhat. if we ahve a lot of those cases it's a compat issue. <TabAtkins> fantasai: so like if the order matches the standard order, we treat it as not reordered. maybe that's less problematic <TabAtkins> rachelandrew: I think we need to make sure this concept that HTML is relying on is defined in CSS, not just looking at the initial value <TabAtkins> Di: I think that makes sense <TabAtkins> Di: I think in HTML right now we're only caring about whether or not there is a reading-flow container, so this wouldn't change much on the html side <TabAtkins> Di: on elika's question about order being the same between stadnard and reordered, cna't think of a way to do that <TabAtkins> fantasai: i think it would be good to restrict the extra behavior to the parts that are reordered, fi there are any <TabAtkins> fantasai: currently if you *might* be reordering things, you get it on all the places <TabAtkins> (i disagree) <TabAtkins> fantasai: might be better to instead only get the scoping changes on the parts that are reordered <TabAtkins> q+ <emilio> TabAtkins: I disagree <emilio> ... I don't think we want to have different behavior on elements in the same reading-flow container <emilio> ... depending on whether has moved <emilio> ... moved is confusing, if you swap #2 and #3, which one of them moved? <emilio> fantasai: both <fantasai> 1 2 3 4 5 vs 1 2 4 3 5 => 3 & 4 moved (don't match their original positions) <emilio> TabAtkins: generally having the scoping be different in the same container, where the container is what controls it, seems off <emilio> ... the specific case where there's a dense grid when some things are placed and others auto-placed <emilio> ... seems like that could be achieved by having a default reading flow value for grid that achieves that <TabAtkins> (3&4 being the moved elements is *not* obvious. It's exactly as possible that 3&5 are the ones that moved, just both moved *after* 4 and happened to maintain their releative order) <TabAtkins> astearns: should we decide on just for masonry? <TabAtkins> fantasai: that's not defined yet <TabAtkins> astearns: we already have values that opt you into visual order. <TabAtkins> astearns: if we dont' have an algo for that, we need that anyway, so we're not adding additional difficulty. <TabAtkins> rachelandrew: there's a lot that falls out of this that needs to be decided on an individual layout basis <TabAtkins> rachelandrew: q is jsut whether this is only a css issue, not an html, or both <TabAtkins> rachelandrew: i think it's just css. html should only be considered with whether there is a reading flow container, regardless of whether that's from an initial value (+ othe rproperties) or an explicitly set reading-flow value <TabAtkins> rachelandrew: so hopefully we can resolve on that part <TabAtkins> TabAtkins: so proposed resolution: HTML should depend on teh *presence* of a reading flow container, regardless of how CSS defines that to come aobut <florian> q+ <TabAtkins> q- <florian> q- <TabAtkins> astearns: objections? <TabAtkins> RESOLVED: HTML should depend on the *presence* of a reading flow container, but defer to CSS about exactly what causes that. |
Given resolution at #11208 (comment), maybe we need to consider how property reading-order affect reading-flow's initial value. What do we think of supporting the following values for
Then, normal will be interpreted as follow:
1-2 would help to handle reading-oder while 3-4 are to solve the current issue. On a side note, maybe |
I added a use counter for GridAutoFlowRowDense and GridAutoFlowColumnDense. Given the Chrome Canary data, it looks like: Given this, I think it might be a good idea to have dense (and masonry) be opted in to grid-rows or grid-columns. But since this would introduce a behavioral change (and potentially a performance issue) and we should be careful about such changes, maybe this can be specced first, but we don't include it with the first rollout of CSS reading-flow. It could be rolled out around or ahead of releasing Masonry. |
I think that this issue should only be handling the masonry/dense packing cases. Proposed resolution: First, update the existing keywords by:
Second, update how the
|
|
|
+1 on using a different keyword for this than Sebastian |
To hopefully close the loop on this issue:
So, if the WG approves, we'd like the following resolutions:
|
Fwiw the above sounds good to me :) |
We had in the past discussed the possibility of the initial value of
reading-flow
handling some things automatically, e.g.dense
packing in Grid or maybe some aspects of Masonry layout. (In that case we'd add an additional keyword to represent strict source ordering.) Opening this issue to track that question.The text was updated successfully, but these errors were encountered: