I used to be trying over an older article Patrick Brosset penned for us introducing <selectmenu>
, a brand new proposal on the time for a extra style-able cousin to <choose>
. From there, I clicked the linked-up <selectmenu>
explainer and acquired… this:
OK, hyperlink rot is a factor and occurs on a regular basis. Maybe the location wants a little bit URL designing? However no, it’s not that in any respect. I searched a bit and located Jared White’s put up saying that <selectmenu>
is not any extra, which got here by the use of Una’s put up over on the Chrome Developer Weblog searching for suggestions on a “customizable choose”. And Adam Argyle’s acquired a beautiful demo devoted to it, no shock there.
I’m solely sharing the hyperlinks for now however plan to spend a while with it and jot down notes on Open UI’s new web page for the Customizable <choose>
. I loved trying on the boilerplate from Adam’s demo as a primary look:
choose {
&, &::picker(choose) {
look: base-select;
}
&::picker(choose) {
transition:
show allow-discrete 1s,
opacity 1s,
overlay 1s allow-discrete
;
}
&:not(:open)::picker(choose) {
opacity: 0;
}
&:open::picker(choose) {
opacity: 1;
@starting-style {
opacity: 0;
}
}
}
I see the ::picker(choose)
there that’s driving all of it. If I sneak a peek at Una’s put up, I see that there are extra methods to pick out completely different <choose>
components, together with:
<selectedoption>
(the present choice)<choice>
(which now accepts HTML in between the tags!)choice::earlier than
choice:checked
(a little bit confusion right here with the chosen choice)
<button>
(the little chevron arrow marker thingy)
So, maybe Chrome is extra of a fan of extending the native <choose>
with extra CSS options for choosing the prevailing components moderately than shifting ahead with a totally new component. That’s cool, as one in all Una’s demos reveals how we nonetheless get the default <choose>
habits even when a browser doesn’t help the brand new selectors.
Direct Hyperlink →