[CSS] Concept of flows.

At the moment various CSS properties are trying to compete for the same
entity - block/box flows:

'display' - indirectly but still;
'writing-mode :  horizontal-tb | vertical-rl | vertical-lr | horizontal-tb'
'flex-direction:  lr | rl | tb | bt | inline | inline-reverse | block | 
block-reverse' and/or
'grid-columns' and 'grid-rows' (grid module),
etc.

It appears as something is definitely wrong/missed in overall CSS design
- it shouldn’t be that redundant.

Conceptually there are four 'flows' that we know about so far:

1. glyphs and inline blocks flow (inside line box) -  lr | rl | tb | bt
2. flow of line boxes - lr | rl | tb | bt
3. block flow -
                        vertical | horizontal
                        | flex-vertical | flex-horizontal
                        | flex-vertical-wrap | flex-horizontal-wrap
                        | table/rows
                        | "template".
4. "super"-flow - paginated flow / multi-column flow and CSS regions.

Probably it makes sense to define just four properties for each entity
above?

It could be something simple as:

inline-flow :  default | ltr | rtl | ttb | btt
line-flow : default | ltr | rtl | ttb | btt
etc.

where the 'default' value will be computed using 'direction' property
that defines general directionality.

If some values of 'block-flow' require parameterization then we can use
function in the same manner as for example gradients:

block-flow:  flex-vertical(ttb);

Such four properties will establish pretty strong foundation for
further evolution.


-- 
Andrew Fedoniouk

http://terrainformatica.com

Received on Tuesday, 28 June 2011 06:03:48 UTC