- 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