- From: Dirk Schulze <dschulze@adobe.com>
- Date: Sat, 12 Jul 2014 06:23:10 +0000
- To: Tab Atkins Jr. <jackalmage@gmail.com>
- CC: www-style list <www-style@w3.org>
On Jul 11, 2014, at 8:41 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > Ugh, I am the WORST. Reposting this with correct tag and subject line. > This thread is now dead, don't post to it. Ok. > > On Fri, Jul 11, 2014 at 11:34 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: >> Earlier today I saw a Twitter thread started by Lea >> <https://twitter.com/LeaVerou/status/487350702386479105> about how she >> commonly accidentally types the name of the transform she wants as the >> property (like "rotate: 45deg;") and then has to go back and correct >> it afterwards. Several other devs chimed in that they do this as >> well, and I know that I've done it a few times (especially when using >> SVG - I use "transform='translate(...)'" so often that I commonly try >> to name the attribute "translate" first). >> >> Since this is something that devs trip over so much, it might be worth >> accommodating it in the syntax. I think we can do this compatibly >> with the current syntax. Here's a proposal: >> >> * Turn 'transform' into a shorthand for the longhand properties >> 'transform-list' (taking the current syntax), 'rotate', 'translate', >> 'skew', etc (one for each transform function). 'transform' maintains >> its current syntax, and is only capable of directly setting >> 'transform-list' (by copying its value straight over), but it resets >> the other properties. ('perspective' already exists and is not reset >> by 'transform', so we'd need to keep it separate, as a legacy >> exception. This makes sense anyway, as the reason we have a separate >> 'perspective' property in the first place is that you often want it to >> cascade separately from the rest of the transform.) >> >> * The various specialized properties have value grammars equal to >> their current argument grammars (plus a "none" value), and work in the >> same way. Properties are either aliases (if their functions are >> equivalent, like translate() vs translate3d()) or longhand/shorthands >> (if some functions set components of a more general function, like >> translate() vs translateX()). (Should we maintain the function naming >> exactly, so you get a property name like 'translateX', or convert to >> dashes, like 'translate-x'? I'm leaning toward maintaining the name >> exactly.) >> >> * The specialized properties apply in some arbitrary predefined order. >> The matrix interpolation decomposes them in the order >> translate/rotate/scale/skew, so we'd do the same, I guess. >> 'transform-list' would apply last. >> >> This proposal not only addresses a common authoring mistake (read as: >> usability hazard), but it also lets off some of the pressure for >> better handling of list-valued properties, as it would let authors >> independently cascade 'rotate' against 'translate', etc. It doesn't >> do everything, and we'll need to handle indexed longhands eventually, >> but at least we can delay longer while addressing one of the most >> persistent sources of complaints on this front. >> >> Thoughts? >> >> ~TJ >
Received on Saturday, 12 July 2014 06:23:40 UTC