W3C home > Mailing lists > Public > www-style@w3.org > September 2011

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

From: Ojan Vafai <ojan@chromium.org>
Date: Thu, 22 Sep 2011 17:08:46 -0700
Message-ID: <CANMdWTubUbO6EQz+nEwq232QbeQfcVNNHwUBpq--Yie5TCF+iQ@mail.gmail.com>
To: Andrew Fedoniouk <news@terrainformatica.com>
Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, www-style list <www-style@w3.org>
Can you give use-cases where logical directions are insufficient. It's hard
to argue against "for ttb systems use of only logical directions in Grid is
plainly wrong" because it doesn't actually say what's wrong or what
use-cases don't work.

On Fri, Sep 16, 2011 at 8:58 PM, Andrew Fedoniouk <andrew.fedoniouk@live.com
> wrote:

>
> -----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 Friday, 23 September 2011 00:09:31 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:44 GMT