Re: Suggestion for generic CSS vendor prefix

On Mon, Mar 22, 2010 at 3:07 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> On Mon, Mar 22, 2010 at 2:21 PM, Robert O'Callahan <robert@ocallahan.org> wrote:
>> If there is a problem we need to solve here, it's that for some properties
>> there's a long gap between the syntax and behavior freezing and the spec
>> going into CR, at which time unprefixed implementations are officially
>> allowed. Fixing that requires a change in policy and/or process.
>
> Indeed, THIS is where we can help authors out.  A unified draft prefix
> will *not* do any good, and will instead be painful to authors who
> don't realize that browsers may implement the property differently at
> first, or may implement different drafts.  (The suggestion of using
> draft, draft2, draft3, etc. doesn't help here, because different
> browsers may still end up with different behavior based on the same
> draft, before interop problems are discovered and clarified.)
>
> Though it wasn't in this particular email, I find it darkly amusing
> that a common example of a ridiculous situation that would be fixed by
> a single draft prefix is border-radius, when Firefox's behavior for
> -moz-border-radius is *not* what the current draft says.

Someone over in the comments on ppk's latest blog post[1] brought up
an *excellent* suggestion for how to maintain the current vendor
prefix situation, but reduce the pain for authors: CSS Variables!

You want to use border-radius, but have 5 different vendor-prefixed
versions, plus the unprefixed version?  Just write a Variables block
that contains all of the property variants, and pop that in whenever
you need it.

This does suggest parametrized Variables, though.  I know that CSS
preprocessors like LESS[2] allow this through their mixins (in fact,
border-radius is the example mixin on their homepage).  The current
Variables spec doesn't allow these, though.  However, the current
Variables spec implements what LESS calls Variables (appropriately
enough), so it seems that the current Variables spec is probably doing
what it should do, and we should create a separate CSS Mixins spec to
address this.

Thoughts?

1: http://www.quirksmode.org/blog/archives/2010/03/css_vendor_pref_1.html
2: http://lesscss.org/

~TJ

~TJ

Received on Tuesday, 23 March 2010 15:32:20 UTC