W3C home > Mailing lists > Public > www-style@w3.org > January 2013

Re: Styling HTML placeholder attribute

From: Lea Verou <lea@w3.org>
Date: Thu, 24 Jan 2013 02:34:32 +0200
Cc: Philip Walton <philip@philipwalton.com>, www-style list <www-style@w3.org>
Message-Id: <8CBC22B6-5056-4D96-95A1-ED32A36B7631@w3.org>
To: Sylvain Galineau <sylvaing@microsoft.com>
Aha! Sylvain is right here. The only case where you *don't* get a transition is when you start typing so you transition from input:focus:placeholder to input:focus. But then you don't need a transition, because the text itself changes, so even if there was one, you wouldn’t see it!
This could be a problem with other effects (e.g. changing the background), but not with text color. And I've shown previously why background has more serious problems with the alternative approach. ;)

Lea Verou
W3C developer relations
http://w3.org/people/all#leahttp://lea.verou.me ✿ @leaverou






On Jan 24, 2013, at 02:24, Sylvain Galineau wrote:

> Not sure what you expect from your Firefox example; once a control has focus it should lose its placeholder state as soon as the user types, right? So you’d be transitioning from input:placeholder to input:focus:placeholder until the latter stops matching and then you’re going to something else?
>  
> From: Philip Walton [mailto:philip@philipwalton.com] 
> Sent: Wednesday, January 23, 2013 4:14 PM
> To: Lea Verou
> Cc: Tab Atkins Jr.; Brad Kemper; Sylvain Galineau; Mounir Lamouri; www-style list
> Subject: Re: Styling HTML placeholder attribute
>  
> FWIW, I'm not necessarily advocating that placeholders should be transition-able, I was merely pointing out a possible reason in favor of pseudo-elements other that just opacity.
>  
> Lea, building off your example, here was the point I was trying to make about the differences with transitions between pseudo classes vs elements.
>  
> Firefox version w/ pseudo-class (notice when you delete text the transition is messed up)
> http://dabblet.com/gist/4616098
>  
> Webkit version w/ pseudo-element (this is much nicer and more intuitive IMO)
> http://dabblet.com/gist/4616106
>  
> And Sylvain, I agree 100% that mimicking the exact behavior of popular jQuery plug-ins should not be a design goal. It was just an example.
>  
> 
> On Wed, Jan 23, 2013 at 3:43 PM, Lea Verou <lea@w3.org> wrote:
> Ah, I see, if you set input:placeholder { transition: .2s color; } then you'd only get a transition only when the placeholder shows and not when it disappears, which is far more common. Is that it? 
> If so,
> a) Is it that significant?
> b) It could be solved via a CSS animation, especially if we introduce something like color-opacity. That however will be problematic when the user changes the effect, they'd have to overwrite the animation too. :(
>  
>  
> Lea Verou
> W3C developer relations
> http://w3.org/people/all#leahttp://lea.verou.me ✿ @leaverou
>  
>  
>  
>  
> 
>  
> On Jan 24, 2013, at 01:35, Philip Walton wrote:
> 
> 
> Sorry if I wasn't clear. I was implying that the transition effect wouldn't be possible unless it were a pseudo-element.
>  
> But I do take your point that a downside of allowing users to set transitions is it also allows them to set anything they want (including borders and backgrounds like in your example).
>  
> 
> On Wed, Jan 23, 2013 at 3:24 PM, Lea Verou <lea@w3.org> wrote:
> AFAIK, that’s how most browsers implement placeholders today (UX-wise), and it has nothing to do with whether they use pseudo-classes or pseudo-elements. 
> Why can't that styling be done in CSS? It’s just a color change. Yes, it's easier with opacity because it keeps the same color, but that only holds true for today and it's not a placeholder-specific problem, as I detailed in my previous email.
>  
> Another thing: Using a pseudo-element has serious problems when padding is involved [1]. Most inputs in real-life websites have padding > 0. Setting a different background or border for the placeholder state is a reasonable use case and shouldn't be this hard to do properly.
>  
> IMO, using a pseudo-element & opacity for this looks like a hack trying to circumvent a limitation of the language (setting the color alpha individually) that should probably be addressed directly. I've read the entire thread carefully and I didn't see any other argument for using a pseudo-element besides that.
>  
> [1]: http://dabblet.com/gist/4615583 
>  
> Lea Verou
> W3C developer relations
> http://w3.org/people/all#leahttp://lea.verou.me ✿ @leaverou
>  
>  
>  
>  
> 
>  
> On Jan 24, 2013, at 00:47, Philip Walton wrote:
> 
> 
>  
> On Wed, Jan 23, 2013 at 2:24 PM, Lea Verou <lea@w3.org> wrote:
>  
> 2) Is there any other use case for a pseudoelement apart from opacity? I can't see any, but my imagination might be limited. :)
>  
> Before most browsers supported placeholders, it was pretty common to see jQuery plugins polyfill this behavior. A common effect was to have the placeholder start at a gray color, fade out when you focused on the element, and then disappear completely as soon as you typed a single character.
>  
> This would be impossible to achieve in pure CSS unless the placeholder were a pseudo-element.
>  
> Here's a demo plugin that's pretty similar to what I used to see a lot:
> http://jsfiddle.net/6HQWv/
>  
>  
>  
>  
Received on Thursday, 24 January 2013 00:34:35 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:21:04 GMT