Re: [css3-writing-modes] a third option for implementing logical properties

Koji Ishii wrote:
> I'm proposing another one for the discussion. This proposal is almost identical to the combination of exiting proposals in its syntax, so it doesn't look new, but the implementation is changed and consumes less memory than any other proposals.
> 
> This proposal has a switch between physical/beas/tobi per element, not per property. Logical values are stored in the same memory as physical values, therefore there're no additional memory consumptions. To cascade, nothing is changed. To compute values, it uses the value of a new property to determine the mode of the element.
> 
> The syntax of this proposal borrows either the one in John/Murakami-san's proposal:
>   margin: before 1em (alias to margin-top: 1em)
>   margin: inside 1em (alias to margin-left: 1em)
>   margin: beas 1em 2em 3em 4em (alias to margin: 1em 2em 3em 4em)
> or the one in the current editor's draft [1], but implement them as aliases to existing properties.
>   margin-before: 1em (alias to margin-top: 1em)
>   margin-inside: 1em (alias to margin-left: 1em)
> 
> Either way, since they're just aliases, there're no new additional properties, nor the additional flags per property.
> 
> One new property is used to compute the value:
>   directional-mode: physical | [ beas || tobi ]


Why do this?

Why not have the physical to logical value keyword in the writing-mode 
declaration itself?

   writing mode: vertical-lr logical;

   writing mode: vertical-lr physical;


For the first case, physical values (with four directions) are rotated 
90 degrees clockwise.

   top = right
   right = bottom
   bottom = left
   left = top


I do note that in the previous editor's draft, these four direction of 
values, top, right, bottom, and left were the only set of values that 
are mapped differently between physical and logical. If something had 
only two values in a set, either left and right or top and bottom, 
they were already mapped to there respective side with inline 
progression (side left and side right). It was mentioned in at least 
three different places. Now I find with the latest draft that it 
appears once in 8.1 but under the heading.

   Logical Directional Values: before, after, start, end.


> If the value of this property is ''physical'', nothing is changed since CSS 2.1.
> 
> If the value of this property is ''beas'', the value of 'margin-before' is used as written in the current editor's draft, and so on. The values for 'start' and 'end' need to be changed from the current editor's draft if the value of this property is ''tobi''.


Why are you concerned with start and end values in vertical-lr?

Why do 'beas' or 'tobi' have to be discuss for cases where there is 
only vertical-lr layout?

If 'beas' or 'tobi' is allowed in the current editor's draft, what 
extra needs to be added for dual layouts? What I mean by this is where 
we have both vertical-lr and horizontal-lr layout on the same page.



-- 
Alan http://css-class.com/

Armies Cannot Stop An Idea Whose Time Has Come. - Victor Hugo

Received on Monday, 1 November 2010 15:22:14 UTC