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

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 ]

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''.

Other portions than "8.2. Additional Logical Properties" are not changed from the current editor's draft.


PROS:
* The amount of additional memory is the least within current proposals
* No changes in the cascading process from CSS 2.1
* The overhead to calculate values is the least within current proposals because the switch between physical/beas/tobi is per element

CONS:
* The switch between physical/beas/tobi is per element, not per property
* 'margin-start', for instance, doesn't work as logical property if 'directional-mode' is not set to ''beas''


I hope this proposal helps our discussions further.

[1] http://dev.w3.org/csswg/css3-writing-modes/


Regards,
Koji

Received on Sunday, 31 October 2010 22:14:19 UTC