- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Tue, 26 Jul 2011 15:17:57 -0700
- To: fantasai <fantasai.lists@inkedblade.net>
- Cc: www-style@w3.org
On Tue, Jul 26, 2011 at 10:19 AM, fantasai <fantasai.lists@inkedblade.net> wrote: > On 07/25/2011 11:46 AM, Tab Atkins Jr. wrote: >> >> Here's a slightly different suggestion inspired by something Shane >> worked out. This one avoids any possible confusion with invalid >> combinations, and I think is easier to read: >> >> flex-direction:<orientation> [<horizontal-dir> <vertical-dir>?]? >> <orientation> = _rows_ | columns | horizontal | vertical >> <horizontal-dir> = ltr | rtl | _forward_ | reverse >> <vertical-dir> = ttb | btt | _forward_ | reverse >> >> The first keyword, which is required, gives the general orientation - >> the first two are writing-mode dependent, the latter two are physical. >> It specifies the axis on which the flexbox items will be laid out; >> lines will be stacked in the opposite axis. >> >> The second and third keywords, which are optional, specify, >> specifically, the direction in the (physical) horizontal axis and the >> vertical axis. By doing it this way, you avoid any of the "mixing >> physical and logical" confusion - it's perfectly well-defined and easy >> to mix them, since you're specifically saying "use the logical >> direction in the horizontal axis" or whatever. > > Actually, you're still making a mess. Even if it is a well-defined mess. > > flex-direction: rows forward reverse; > > This will go forwards on the main axis if the writing mode is horizonal, > and backwards on the main axis of the writing mode is vertical. That > doesn't make any sense. Ah, I had a glimmering that I'd run into a problem like that, but I didn't give it enough thought. Thanks for pointing it out. Do we have use-cases for mixing physical and logical directions? We want to use logical directions for things like an ltr/rtl horizontal bar, but if this was embedded in a japanese page I suspect we'd want it to go vertical. If we stop trying to mix them, then this gets way simpler: flex-direction: [ [ ltr | rtl ] || [ ttb | btt ] ] | [ forward | reverse ]{1,2} If we do want to continue mixing them, then take my previous idea, and split the syntax so that you specify the directions in horiz/vert order when using a physical orientation, or main/cross when using a logical orientation: flex-direction: [ [rows | columns] [forward | reverse]{1,2} | [horizontal | vertical] [ <horizontal-dir> <vertical-dir>? ]? ]; But really, you, Alex, and I need to sit down with a whiteboard. ~TJ
Received on Tuesday, 26 July 2011 22:18:44 UTC