After a lot of feedback, I think we should revert min-width's initial
value back to 0.
Our intention for the min-width behavior was admirable - in most
situations it wouldn't affect anything, but when the author didn't
take small sizes into account, they'd overflow the flex container
rather than just shrinking to nothing, and the user could just scroll.
Unfortunately, both assumptions are violated in practice.
One of my coworkers has been using Flexbox for quite a while to build
internal analytics displays, and nearly all of the problems he has
with Flexbox end up being that he needs to apply a min-*: 0 somewhere.
I helped troubleshoot something *today* where that happened, and it
was extremely difficult to figure out because there were nested
flexboxes, and they *all* needed to have the right behavior before the
page stopped breaking. In the meantime, because the initial value for
'overflow' is "visible", not "auto", there's no indication of what's
actually going wrong, and no way to scroll to the overflowing stuff.
Then, this afternoon, I got *another* coworker asking me about the
exact same problem - things weren't shrinking when he thought they
should be.
These are not isolated cases. As far as I can tell, pretty much
everyone hits this on their first attempts at using flexbox, and it's
not at all clear what's causing the problem or how to fix it. This is
simply a major usability hazard, and in my experience vastly outweighs
the minor edge-case usability boon it was intended to provide.
Based on this experience, I think we should revert this decision, and
remove the special 'min-*' behavior from Flexbox. Everything should
default to 0 min size.
Chrome strongly supports this change, as Ojan has been yelling at me
about it for months. ^_^
~TJ