[css-values] Deprecating the 3-value <position> form

The 3-value position form (which allows things like "left 20px 50px"
as an equivalent to "left 20px top 50px") is barely used, but
extremely confusing, and makes it very difficult to use <position>
alongside anything else - it's too often grammatically ambiguous.

There seems to be at least moderate agreement that this form is a
mistake (at least, between me, fantasai, Alan, and Dirk).  Would
anyone mind if we deprecated it, making it a quirk of
background-position, and just define <position> to only have the 1/2/4
value clauses?

This would mean that radial-gradient() and object-position, the only
other current consumers of <position>, would be affected.  I think
this is acceptable.

Doing this would allow <position> to be mixed with other values more
easily, as something like "<position> <length>" is no longer
ambiguous.  It would also let us define a <3d-position> sanely
(compatible with 'transform-origin').

(Well, unfortunately, transform-origin currently allows 1/2/3/4/5
value clauses, where 3/5 are 3d.  Sane would be 1/2/3/4/6, with 3/6
being 3d - 3 is just 3 lengths, 6 is 3 keyword+length pairs.  The
5-value form suffers from ambiguity again.)

~TJ

Received on Wednesday, 9 October 2013 00:35:56 UTC