The WG resolved to go with another option brought up during the call, and use 'space-between' and 'space-around' for the “Edges flush” and “Equal margins” cases, respectively.
There are three possible behaviors for distributing items evenly along an axis:
Edges flush
|[item]<-------->[item]<-------->[item]|
Equal spacing
|<--->[item]<--->[item]<--->[item]<--->|
Equal margins
|<-->[item]<---->[item]<---->[item]<-->|
Note: In Flexbox, you can get the equal-margins effect with auto
margins, but only if you want the minimum spacing to be zero. Which might be sufficient for this level, but would be a candidate for future extension.
Related prior art:
text-justify: distribute; /* edges flush */
ruby-align: distribute-letter; /* edges flush */
ruby-align: distribute-space; /* equal margins */
background-repeat: space; /* edges flush */
Flexbox currently uses justify
to mean “edges flush” and distribute
to mean “equal margins”. This has two problems:
distribute
value of text-justify
means “edges flush”, which is inconsistent.We need keywords that clearly and unambiguously specify each of the behaviors (or at least two, really, since only two are wanted).
There are several proposals for distinguishing “edges flush” vs. “equal margins” behavior:
justify
vs. distribute
distribute
vs. distribute-space
distribute-flush
vs. distribute-space
distribute
vs. space