- From: Christopher Tom <cctom@hawaii.rr.com>
- Date: Tue, 02 Jan 2007 18:00:50 -1000
- To: www-style@w3.org
I am not sure what the status of the Text Layout module is so I decided
to post this here. This is my suggestion for the basis of a working
draft of CSS Text Layout Level 3. It is derived from Elika Eternad's
Robust Vertical Text Layout paper for Unicode[1].
CSS Text Layout Level 3
Three properties and two classes of scripts describe the layout of text
by this model. The natural layout for each script determines its
default property values and classes.
Properties:
Block progression direction specifies the direction in which successive
lines of text are stacked.
Examples:
Latin, Arabic - down
Mongolian - right
Chinese, Japanese, Korean - left
Inline progression direction specifies the direction in which successive
glyphs are placed within a line of text.
Examples:
Latin - right
Arabic - left
Mongolian, Chinese, Japanese, Korean - down
Text orientation specifies the direction which the glyphs' "up" points
towards.
Examples:
Latin, Arabic, Mongolian, Chinese, Japanese, Korean - up.
Classes:
Relative scripts are scripts for which there exists an invertible
transformation between the inline progression direction and text
orientation. This transformation defines the natural relation between
the two properties among all possible values.
Examples of transformations from text orientation to inline progression
direction:
Latin - 90 degrees clockwise rotation
Arabic - 90 degrees counterclockwise rotation
Mongolian - reflection across the line of text
Independent scripts are scripts for which the inline progression
direction and text orientation are independent of each other.
Examples:
Chinese, Japanese, Korean are independent scripts.
The CSS properties for Text Layout Level 3:
Name: block-progression
Value: up | down | left | right | natural
Initial: natural
This property describes the block progression direction.
up - block progression direction is up.
down - block progression direction is down.
left - block progression direction is left.
right - block progression direction is right.
natural - block progression direction is the script's default.
Name: inline-direction-horizontal
Value: left | right | natural
Initial: natural
This property describes the inline direction for horizontal lines of
text. It applies only when the block progression direction is up or down.
left - inline progression direction is left.
right - inline progression direction is right.
natural - inline progression direction is given by the
transformation of text-orientation-vertical if it exists and is
horizontal. If not then the inline progression direction is given by
the script's default if it is horizontal, otherwise it is right.
Name: inline-direction-vertical
Value: down | up | natural
Initial: natural
This property describes the inline direction for vertical lines of
text. It applies only when the block progression direction is left or
right.
down - inline progression direction is down.
up - inline progression direction is up.
natural - inline progression direction is given by the
transformation of text-orientation-vertical if it exists and is
vertical. If not then the inline progression direction is given by the
script's default if it is vertical, otherwise it is down.
Name: text-orientation-vertical
Value: up | down | left | right | natural
Initial: natural
This property describes the text orientation.
up - text orientation is up.
down - text orientation is down.
left - text orientation is left.
right - text orientation is right.
natural - when block-progression is up or down, if
inline-direction-horizontal is not natural and the script is relative
the text orientation is given by the inverse transformation of
inline-direction-horizontal otherwise it is the script's default. When
block-progression is left or right, if inline-direction-vertical is not
natural and the script is relative the text orientation is given by the
inverse transformation of inline-direction-vertical otherwise it is the
script's default.
[1] http://www.unicode.org/notes/tn22/
Note: the choice of right as the last case for natural
inline-direction-horizontal is fairly arbitrary, if possible something
like inheriting the direction of the surrounding text might be more useful.
Does anyone have a suggestion for turning this into an actual working draft?
Received on Wednesday, 3 January 2007 12:54:58 UTC