[CSSWG] Minutes Seattle F2F Tue 2014-01-28 PM II: Flexbox,
, Serialization and Shapes from fantasai on 2014-02-04 (www-style@w3.org from February 2014) (original) (raw)
Flexbox
Tab explained that the flex distribution algorithm is changing for flex totals between zero and one (non-inclusive). Intent is to make this range continuous (rather than discontinuous, as currently). Reviews on recent changes to Flex Distribution Algo are welcomed.
Discussed problem of implied minimum size of flex items, which has gone back and forth a couple times as various cases come up for consideration (and was left open since Eliott's post on it last year). http://dev.w3.org/csswg/css-flexbox/issues-cr-2012.html#issue-23
RESOLVED: No change to Flexbox spec for handling
(but see below).
Styling
- RESOLVED: In Display Module, define br { display-box: contents; content: '\A'; white-space: pre; } to work. (This should result in change to handling of 'display: none', and change to HTML spec once published.)
Serialization of Shapes
RESOLVED: Serialize a computed shape value per the email above.
RESOLVED: New LC for Shapes with a 3-week period.
====== Full minutes below ======
Flexbox
Scribe: fantasai
TabAtkins: There's an issue in Flexbox where it doesn't interact well with animation in certain cases TabAtkins: e.g. start with inflexible items, then try to animate an item to flex: 1 TabAtkins: the item snaps from inflexible to taking all the free-space immediately TabAtkins: Same thing for shrinking; it's discontinuous between 0 and non-0 TabAtkins: To change it I made a small tweak to flex algorithm, which afaict makes zero difference to all existing cases where sum of flexes is either zero or is 1 or greater TabAtkins: but is continuous between 0 and 1 TabAtkins: dholbert agrees with the problem and the rough solution to the algorithm TabAtkins: If anyone has opinions on that, or have an implementation, please review
TabAtkins: There's another issue, but we don't understand it well yet http://dev.w3.org/csswg/css-flexbox/issues-cr-2012#issue-23 TabAtkins: dholbert thinks Chrome's behavior is more sensible than Firefox's in this case. We haven't quite figured this out yet TabAtkins: So won't bring it up now
TabAtkins: Also have issue of min-size of flex items fantasai: Rossen and I did some interesting testing fantasai: IE does what Alex proposed -- min-size of min-content, except when overflow is scrolling TabAtkins: Ok... I will talk to our implementers TabAtkins: I think we can make the change, because doesn't affect [...]
The
Element (Blast from the Past)
fantasai:
element issue
http://dev.w3.org/csswg/css-flexbox/issues-cr-2012.html#issue-28
TabAtkins: Issue comes up when creating anonymous flex items
TabAtkins: Flex item creation splits things on element boundaries:
each child element becomes a flex item, and runs of text
between get wrapped in anonymous flex item
TabAtkins: e.g. foo bar creates 3 flex items
TabAtkins: However, if you replace with
, then it's all one
flex item
TabAtkins: In chrome it's because
is treated kindof like text
dbaron: We do this for
, but also for some MathML stuff
dbaron: There is a rule for Flexbox that conversions that happen for
computed value of display
dbaron: Inlines that are children of a flexbox have their computed
display changed to block
dbaron: So that span there is display: block
dbaron: Then code comes over that does this
dbaron: It runs over what should go into an anonymous frame
dbaron: by using a test of "does this participate in inline layout?"
dbaron: span with display : block doesn't
dbaron: but
does
dbaron: I believe the same is true for some MathML elements
SteveZ: Doesn't
start a new block?
TabAtkins:
is weird goo
plinss: Logically behaves same as page break, line break, whatever
plinss: Like having a line-break-after property on it
plinss:
is an element. Should get a box. Should be an element
with a line-break-before element
SimonSapin: Can we remove the magic from
and spec it?
florian: Is it an element?
plinss, Tab: yes, it's an element in the DOM
dbaron: It gets its own box, it's just an interesting sort of box. :)
TabAtkins: Firefox, for example, will honor 'display: none'. Chrome
doesn't.
dauwhe: We use display: none on
a lot
to force a line break in
one format, set to display: none in other formats.
HTML spec says br { content: '\A'; white-space: pre; }
TabAtkins: Ok, we somehow need to figure out that
works in this
way...
dbaron: I'm not saying our behavior is desirable
fantasai: What else do we use inline slurping for?
dbaron: block-in-inline splitting, maybe?
TabAtkins: I guess, would you want to change so that
becomes
a flex item?
dbaron: I'd be fine with that if it makes more sense
...
dbaron: If in between foo and bar you have a span that is floating
or absolutely positioned, it's out-of-flow and doesn't count
TabAtkins: So right now flexbox and reality don't agree
TabAtkins: Also, we need to define what
does
...
fantasai: what are reasons why HTML's definition doesn't work?
plinss: If we make it CSS-defined, then changing display or other
properties has to be respected
fantasai: Spec for
will require lots of testing.
has lots
of weirdness. I don't remember what they all are, just
remember it had a lot of weirdness
...
TabAtkins:
is describable in CSS. fantasai: No it's not. Next to a float it's not TabAtkins: It's just a BFC fantasai: No, width 50% on
is 50% of the available line width (considering floats), not CB width TabAtkins: Hm, not in Chrome.
TabAtkins: Anyway, are people ok with
becoming a flex item on
its own?
TabAtkins: Rossen?
SimonSapin: Can we agree that we need a spec for
?
fantasai: I think we need to investigate why the HTML definition
doesn't work
dbaron: I'm not sure that it doesn't. But might have some perf implications
plinss: Fine to make magic by default, as long as can opt out of magic
TabAtkins: Rossen confirms that IE does the same for
TabAtkins: We might need to make it magic
fantasai: display-box: contents; content: '\A'; white-space: pre; TabAtkins: Hm, that might work... [side discussion of interaction with display-box and display: none] [currently display: none won't work on this, but people seem to prefer that it does] dbaron: [something about quirks mode] plinss: We don�t need to define quirks mode. Someone points out the quirks mode spec.
RESOLVED: No change to current behavior for issue 28, work on making
work as described above, no change to Flexbox only to
Display
Shapes Serialization
astearns: I had a serialziation proposal. http://lists.w3.org/Archives/Public/www-style/2014Jan/0572.html astearns: fantasai and David looked at it, I made slight adjustments based on feedback. astearns: I'd like to resolve to go with this email's wording, and take Shapes to LC again.
dbaron: You said IE and FF use keywords instead of lengths. dbaron: Were you testing keyword input? dbaron: There's a distinction between preserving what's specified and changing it. dbaron: I don't see anything that converts - in our computed style code we serialize out percentages. astearns: I looked at gCS of a declared style that used keywords. fantasai: No, we looked at declared style.
astearns: My goal is to harmonize what we do with a value in Shapes and bg-position. astearns: The only commonality we saw is that the older version preferred 2-value over 1-value. astearns: Browsers seemed split over keywords vs percentages. astearns: I saw a split, and have a slight preference for lengths, so I used lengths. dbaron: For declared style, we preserve an inputted keyword. dbaron: For computed, we do length/percentages. krit: Should we harmonize that? dbaron: We do two versions of everything.
astearns: I could take this and say it's how to serialize the computed style. astearns: I'd like to normalize the computed output. dbaron: We probably ought to have a larger discussion about serialization between declared and computed. dbaron: I'm fine with this for computed.
dbaron: I feel like we may want slightly better round-tripping for declared values. astearns: So would you be okay with this section noting that it's for computed style, and not defining for specified? dbaron: Yeah. I'd probably be okay with saying it's for declared as well, but I'm not crazy about it. astearns: We'll probably do that in our impl anyway. But I'm fine with normatively defining it to be the computed value. astearns: And nothing else. krit: Computed style is a good start - if we can get farther, that would be great. astearns: I think anything further we do should be a global thing, not just for shape functions.
RESOLVED: Serialize a computed shape value per the email above. RESOLVED: New LC for Shapes with a 3-week period.
krit: Any chance we can specify serialization for all properties? dbaron: What I was clear about when Anne tried it is that it will take research. dbaron: We can't take the lazy-spec approach that requires impls to break interop. krit: We did an interop-breaking change for currentcolor. dbaron: We had good reasons for that, we have a good reason to believe it won't break things, and we'll do experimentation. dbaron: Higher chance of breakage for serialization change, and it's everywhere. krit: What if browsers aren't currently interoperable? dbaron: Then we can do new things. dbaron: We had a problem with Anne's rule [...] dbaron: Where browsers are currently interoperable, we should be explicit about deciding to change it. dbaron: We should also think about the magnitude of the code changes required. dbaron: A spec with a small rule that leads to thousands of lines of code changes is different than a rule that leads to a small amount of code changes. dbaron: Anne's general rule was probably not tested sufficiently given the magnitude of the required changes. florian: Make sure you think about rule serialization too, not just properties.
Received on Tuesday, 4 February 2014 09🔞51 UTC