Re: [css3-flexbox] Too many flex-flow values?

-----Original Message----- 
From: Tab Atkins Jr.
Sent: Friday, September 16, 2011 1:22 PM
To: www-style list
Subject: Re: [css3-flexbox] Too many flex-flow values?

>On Wed, Sep 7, 2011 at 6:41 PM, Tab Atkins Jr. <jackalmage@gmail.com> 
>wrote:
>> Every time I look at the 'flex-flow' property, I get a headache.  I
>> think there are too many options there.  You can specify the flow
>> directions purely logically, purely physically, or an interesting
>> mixture of the two.
>>
>> I've already logged an issue in the spec about dropping the mixed
>> physical/logical options, so we have only the all-logical and
>> all-physical ones.  That would significantly simplify the syntax
>> without, I think, actually killing any useful options.
>>
>> Can we go further?  Grid Layout doesn't care about your pitiful
>> physical direction - the orientation and direction of rows and columns
>> are *always* tied directly to logical directions.  'flex-flow' would
>> be *so* much nicer if we could do the same:
>>
>> flex-flow: [ row | row-reverse | column | column-reverse ]
>>           [ wrap | wrap-reverse ]?
>>
>> *Are* there any significant use-cases that aren't addressed by this?
>> If so, why aren't these problems with Grid Layout as well?
>
>Based on the feedback in this thread, I'm going to remove the physical
>and semi-physical directions, and stick with solely the four logical
>directions.

Please don't do that. I've seen in practice scenarios where
use of physical directions (explicit flow direction definition)
is the must.

I would suggest to use something like this:

flex-flow: horizontal
flex-flow: horizontal(auto)  // same as above, uses value of 'direction'
flex-flow: horizontal(ltr)     //  explicitly ltr
flex-flow: horizontal(rtl)     // explicitly rtl

And about 'row' and 'column'...

This:
  flex-flow: row | column
makes not that much sense.

As far as I understand the intention of 'row' and 'column' names is to
be able to use *the same* style sheets/fragments for ltr/rtl *and* ttb 
layouts.

I don't think such a sharing is feasible at all.

HTML/CSS layout model is a *vertical* endless "tape" - something
that has width but no height. By nature. Including human vision nature.

So HTML/CSS layout space *is* anisotropic - properties of horizontal
dimension quite different from vertical one.

You can switch LTR->RTL relatively easy ("simple" symmetry)
but LTR->TTB switch require principal changes.

TTB writing systems still use "vertical tape" media model where text
layout using very different principles than ltr/rtl ones.

So it is *very* optimistic to think that you can share the same more or
less complex logical  system of styles between LTR/TTB layouts.
No way in real life.

So that 'row' and 'column' in flex-flow is just a naïve attempt
but not a real solution, sorry.

>
>In particular, the feedback that convinced me was the fact that Grid
>Layout uses only logical directions, and Webkit claims it is actually
>easier for them to do pure logical (while it's neutral for IE).
>
>The fact that we don't have logical margins/width/etc means that this
>still doesn't allow you to design a writing-mode independent site, but
>that seems to be a problem we have to solve generally anyway, so I
>don't feel that partially working around the problem within Flexbox
>would be very productive.  (If this is a convincing objection, then we
>should drop the logical directions entirely, and change Grid to be
>physical as well.)
>

Use of *only* logical directions in Grid is conceptually wrong.

For ltr/rtl versions it probably makes sense to use logical
directions but for ttb systems use of only logical directions in
Grid is plainly wrong.

-- 
Andrew Fedoniouk

http://terrainformatica.com 

Received on Saturday, 17 September 2011 03:58:54 UTC