[whatwg] restricted palette for input type=color
Ian Hickson
ian at hixie.ch
Wed May 2 15:50:03 PDT 2012
On Mon, 7 Mar 2011, Markus Ernst wrote:
>
> A content management or blog system for a corporate website allows to
> set font and background colors. The designers define allowed color sets
> the way that the corporate design guidelines are respected, and that the
> text is always readable - e.g. three light color shades for backgrounds,
> and two corporate colors and black for text.
You don't really need a colour picker for that... it's more a <select>
than a colour picker. Or a series of radio buttons. If the presentation is
more the concern, then we should probably rely on Web Components to solve
the problem (styling a <select> with a new presentation, e.g.).
> While searching the list archives, I found a message from Ian Hickson:
> http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2008-November/017482.html
> He suggested to use a select element for the purpose of a restricted
> color set.
Good to know I'm consistent. :-D (I wrote the reply to the above paragraph
before reading this paragraph!)
> Here's why I think it would be worth to reconsider this position:
>
> - A select element would display color names or values instead of
> showing the colors, which does not make it a suitable UI for choosing
> colors.
That's a presentation issue, though. We should let CSS and/or Web
Components fix that; we shouldn't add new semantics for each desired
presentation.
> - Restricting the color palette is actually almost as common a task, as
> defining start and end dates of a date picker, and for sure more common
> than defining a step in a date picker. Now we have the benefit of this
> specialized color input element, it is a pity if it lacks customization
> potential.
The step in the date picker is something that was basically supported just
because we had to define what step="" did anyway since we had it for
numbers.
I don't disagree that it might make sense to limit the colour palette
(e.g. "only things with a brightness greater than 50%") for type=color.
But that's a different use case, and a different feature, than the one
given above.
> - The fact that most CMS do not have restricted color sets so far, does
> not mean there is no demand for it, but rather shows the difficulty of
> customizing tools such as TinyMCE. It is a hassle for CMS implementors
> (who are often not highly skilled JS programmers), if they are expected
> to respect corporate design guidelines.
I don't follow. Right now (before type=color is widely implemented) it's
easier to provide a limited set of colours than all colours. Surely then
we should see more CMSes have restricted colour sets if it's a matter of
difficulty.
> - I assume that restricting a color set in an existing color picker is
> not too hard to implement (of course I have no evidence for this
> assumption).
That's, generally speaking, not a concern.
On Tue, 8 Mar 2011, Jukka K. Korpela wrote:
>
> I guess this would then have to be an attribute of datalist, making it
> possible to restrict the set of available choices whenever a datalist is
> used. How about "exclusive"? I would expect this to be reasonably easy
> to implement and potentially useful for other <input> types, too.
>
> For example, consider a date picker. Quite often, whether trying to make
> dates or selling flights, there is a known set of (non-consecutive) days
> that are possible, so we would like to write, say,
>
> <input type="date" id="date" name="date"
> value="2011-04-01" list="datelist">
> <datalist id="datelist">
> <option value="2011-04-01" label="April 1st">
> <option value="2011-04-08" label="April 8th">
> <option value="2011-04-09" label="April 9th">
> </datalist>
>
> This is currently conforming, though no browser seems to make use of the
> datalist. A good implementation would open up a calendar for April, with
> only days 1, 8, 9 selectable and day 1 highlighted. Many existing
> applications use such interfaces, so there is apparent need for them.
It certainly exists. How common it is, I don't know. It's a subset of
sites with date pickers, which itself is a pretty small subset of sites
with forms, which is a subset of pages.
It's definitely something worth keeping in mind though as we look to
where we might extend this feature. I haven't added it yet, because we're
still not at a point where these form controls are very mature.
If anyone wants this particular feature prioritised, a good way to start
would be documenting existing sites that have date pickers that do this
kind of thing.
On Wed, 9 Mar 2011, Jukka K. Korpela wrote:
>
> <Select> is generic, like <input type="text">, as opposite to <input
> type="date">, <input type="color"> etc. So an implementation cannot
> implement <select> in a content-aware way, like a date or color picker,
> but it can (and hopefully will, but it is not required to) implement
> e.g. <input type="date"> with associated <datalist> as a date picker
> with some dates highlighted and possibly (when the proposed new
> "exclusive" attribute is used) all other dates grayed out.
This isn't a complete picture. Sure, browsers won't automatically render a
<select> in a manner specific to the data type of the values. But with
some CSS and Web Component definitions, that can be changed. A <select>
with countries could render as a map, a <select> with dates as a custom
calendar, a <select> with colours as a custom colour picker.
The point is that at the HTML level, the <select> element has the right
semantics: pick one from a list. What is is presented as is a separate
concern for a higher level of the stack.
On Wed, 9 Mar 2011, Diogo Resende wrote:
>
> I was thinking.. what about allowing big time spans, like: from April
> 1st to June 30th? Giving that the date has "-" as date element
> separators we could not use YYYY1-MM1-DD1-YYYY2-MM2-DD2. Couldn't this
> be useful? Even more common might the usecase where a date must be from
> some date onward (or until some date). How is this addressed?
If you just have one time spam, <input type=date> already supports that.
On Wed, 9 Mar 2011, Diogo Resende wrote:
>
> That is perfect for 1 date scope. What if I have a meeting to schedule
> in a month (eg. March) and (according to other meeting attendees) the
> meeting can only happen from 10-15, 19, 20-28 and 30. Do I have to make
> a data-list with every possible day? What if I would like to set a
> future event that cannot happen on weekends?
That's a pretty complex widget. I don't know that we'd want an HTML
primitive to support this kind of thing; it might be best to just let
authors develop their own for that.
On Thu, 10 Mar 2011, Aryeh Gregor wrote:
>
> <input type=date pattern=2011-03-(1[0-59]|2[0-8]|30)>
That's pretty crazy, using a string pattern matching tool to do
range-checking on structured numeric data. :-P
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list