demo · v142
Listbox Mode & Stylable Tree
The parity work in Chrome 142 was a prerequisite for the bigger Open UI agenda: a fully stylable <select>. With mobile and desktop now agreeing on what "listbox" and "in-page" modes mean, pages can opt into appearance: base-select and target ::picker(select) without forking CSS per platform. Below: default modes (dropdown, listbox, multi) next to the same options rendered via the opt-in base-appearance tree.
default UA rendering
size=1
size=5 (listbox)
multiple
appearance: base-select (Chrome 142+)
same options, ::picker(select) styled to the editorial palette. Pre-141 mobile would ignore these rules.
supports appearance:base-select
—
device pointer type
—
Mobile pre-Chrome 142 forced the native picker even with custom appearance attempts. With parity, the same rules govern both.
relevant CSS
select {
appearance: base-select;
}
select::picker(select) {
appearance: base-select;
background: white;
border: 2px solid black;
box-shadow: 4px 4px 0 black;
}
option:checked { background: blue; color: white; }