I used to be wanting 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 bought… this:
OK, hyperlink rot is a factor and occurs on a regular basis. Maybe the location wants slightly URL designing? However no, it’s not that in any respect. I searched a bit and located Jared White’s submit saying that <selectmenu>
isn’t any extra, which got here by means of Una’s submit over on the Chrome Developer Weblog in search of suggestions on a “customizable choose”. And Adam Argyle’s bought 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 taking a look at 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 submit, I see that there are extra methods to pick totally different <choose>
elements, together with:
<selectedoption>
(the present choice)<possibility>
(which now accepts HTML in between the tags!)possibility::earlier than
possibility:checked
(slightly confusion right here with the chosen possibility)
<button>
(the little chevron arrow marker thingy)
So, maybe Chrome is extra of a fan of extending the native <choose>
with further CSS options for choosing the prevailing elements quite than shifting ahead with a very new aspect. That’s cool, as one in every of Una’s demos reveals how we nonetheless get the default <choose>
conduct even when a browser doesn’t help the brand new selectors.