[css-flexbox] Renaming flex-basis:auto for less confusion

At the last f2f, we discussed the fact our current usage of "auto" in
'flex-basis' is sub-optimal.  For one, it means that it's impossible
to explicitly ask for "auto" sizing behavior from 'flex-basis': you
have to set "flex-basis:auto" to make it draw from 'width', then set
"width:auto" to transmit the auto-sizing behavior to it.  For two, as
illustrated in the previous sentence, "auto" in 'flex-basis's computed
value means something *completely different* to "auto" in its used
value, which is confusing and weird.

Minutes link: <http://lists.w3.org/Archives/Public/www-style/2014Jun/0107.html>

fantasai and I were to propose a new keyword for the "use
width/height" behavior, leaving ''auto'' to mean a flex-basis of auto.
To avoid breaking content, the 'flex: auto' shorthand declaration
would continue to mean what it does, expanding to 'flex: 1 1
main-size', and we're relying on the assumption that hardly anybody is
explicitly specifying the longhand 'flex-basis: auto' and relying on
it to pull in a non-auto width/height value.

We suggest ''main-size'' for the new keyword. dbaron pointed out that
the term "main" doesn't actually show up in the author-facing API, but
it does show up *everywhere* in the spec itself, so hopefully this
will be adequate.  We can bikeshed this name further if necessary.

The spec has been provisionally updated accordingly.

This is also provisional based on whether there's too much
"flex-basis:auto" code in the world that's paired with a non-auto
'width' value.  Chrome's Use Counter data shows decent usage of
'flex-basis', unfortunately (.5% of page-loads), but we don't
currently have any way to track whether that 'flex-basis' declaration
sets it to 'auto', and whether 'width' is simultaneously non-'auto'.

~TJ and fantasai

Received on Tuesday, 1 July 2014 16:01:57 UTC