Re: [csswg-drafts] Styling form control pickers (#10440)

The CSS Working Group just discussed `Styling form control pickers`, and agreed to the following:

* ``RESOLVED: `appearance:base` will apply to the in-page parts (only) of all form controls (including `<select>`), and, to avoid forwards-compat problems, must ship simultaneously on all form controls.``
* ``RESOLVED: `::picker(keyword) { appearance: base }` will apply to form control pickers as an opt-in to styleable pickers of the named control type, with the control-type keyword allowing per-control-type incremental shipping of styleable pickers. To avoid forwards-compat problems, we will consider a keywordless variant only once all form controls can be opted in.``
* `RESOLVED: If appearance: base on all in-page controls is not ready in time for <select>, we may add appearance: base-select whose behavior is equivalent to appearance: base, but only applies to <select> and its picker (::picker(select)), individually.`

<details><summary>The full IRC log of that discussion</summary>
&lt;chrishtr> gregwhitworth: please help out Joey &amp; team if you can<br>
&lt;chrishtr> jarhar: have a comment proposing and linking back to Elika's proposed resolution, we'd like to resolve on that<br>
&lt;chrishtr> jarhar: is anyone against adopting this resolution?<br>
&lt;gregwhitworth> q?<br>
&lt;chrishtr> jarhar: first: appearance: base will apply to the in-page parts of form controls, and to avoid compat problems must be shipped for all controls<br>
&lt;una> q+<br>
&lt;fantasai> https://github.com/w3c/csswg-drafts/issues/10440#issuecomment-2303554166<br>
&lt;fantasai>     appearance:base will apply to the in-page parts (only) of all form controls (including &lt;select>), and, to avoid forwards-compat problems, must ship simultaneously on all form controls.<br>
&lt;fantasai>     ::picker(keyword) { appearance: base } will apply to form control pickers as an opt-in to styleable pickers of the named control type, with the control-type keyword allowing per-control-type incremental shipping of styleable pickers. To avoid forwards-compat problems, we will consider a keywordless variant only once all form controls can be opted in.<br>
&lt;fantasai>     If appearance: base on all in-page controls is not ready in time for &lt;select>, we may add appearance: base-select whose behavior is equivalent to appearance: base, but only applies to &lt;select> and its picker (::picker(select)).<br>
&lt;chrishtr> jarhar: the ::picker(...) function will opt overlay pickers to base style, parameterized by control<br>
&lt;emilio> q+<br>
&lt;emilio> ack una<br>
&lt;chrishtr> jarhar: appearance:base-&lt;control> would opt in a specific in-page control if needed for incremental adoptoin<br>
&lt;chrishtr> una: currently the implementation / discussion then opting in the picker without the base, then nothing will happen. Want to make sure we have consensus on that behavior.<br>
&lt;chrishtr> fantasai: are you saying that you want to make sure that if the picker is opted in but not the base element, then the picker opt-in will have no effect?<br>
&lt;chrishtr> una: yes.<br>
&lt;chrishtr> masonf: think this falls out of the existing definition, but yes need agreement<br>
&lt;chrishtr> una: second question: resolution says appearance: base will apply to all, but we don't  have a full list of controls<br>
&lt;chrishtr> fantasai: currently only have a specific opt-in for just base-select, but hopefully the rest in one go<br>
&lt;chrishtr> una: what about the date picker or color picker? would we have to block on that?<br>
&lt;chrishtr> fantasai: no, because appearance: base for non-picker opts in just the in-page aspects of the control<br>
&lt;chrishtr> fantasai: if you want the styleable version of the picker then then you'd need to separately opt in that<br>
&lt;jarhar> q?<br>
&lt;chrishtr> una: why can't we have appearance: base for pickers only?<br>
&lt;chrishtr> fantasai: for web compat reasons<br>
&lt;gregwhitworth> q+<br>
&lt;chrishtr> emilio: I think what Una was asking was opting in via appearance:base just on the picker because it requires ::picker<br>
&lt;sanketj_> q+<br>
&lt;chrishtr> emilio: what I understand Una saying is that if you restrict it to ::picker(select) then it'd be just for select anyway<br>
&lt;jarhar> q?<br>
&lt;chrishtr> fantasai: if we're introducing the base-select keyword anyway then it doesn't matter much<br>
&lt;chrishtr> emilio: agree<br>
&lt;gregwhitworth> ack emilio<br>
&lt;fantasai> s/then it doesn't matter much/then why would we risk the compat of making base valid at all/<br>
&lt;chrishtr> emilio: want to make sure that we're not resolving that appearance:base-select on the in-page element would opt in the picker also<br>
&lt;chrishtr> chrishtr: correct, it does *not* opt in the picker alkso<br>
&lt;chrishtr> dbaron: there are only 3 modes: both auto, in-page base, and in-page + picker base<br>
&lt;fantasai> 1. Native styling of in-page and picker - do nothing (`appearance: auto`)<br>
&lt;fantasai> 2. in-page base, native picker -> input { appearance: base; }<br>
&lt;gregwhitworth> ack sanketj_<br>
&lt;fantasai> 3. in-page base, styleable picker -> input, ::picker(type) { appearance: base; }<br>
&lt;dbaron> s/both auto/both not base/<br>
&lt;chrishtr> sanketj_: clarifying question: we're saying that appearance:base applies to all controls but only applies to in-page. then we have appearance-&lt;name> that opts in just one thing?<br>
&lt;chrishtr> sanketj_: will we able to incrementally opt in additional controls?<br>
&lt;chrishtr> fantasai: setting aside base-select as an exception, there would not be a per-control opt-in syntax<br>
&lt;chrishtr> fantasai: second part is that ::picker has a per-control syntax for all pickers<br>
&lt;chrishtr> sanket_: worried we'd get into a state where if we did one more control we wouldn't be able to add it incrementally<br>
&lt;chrishtr> fantasai: because select is ready soon to ship we have a carve-out for it<br>
&lt;chrishtr> fantasai: select also has a picker that is real DOM elements in base mode<br>
&lt;masonf> Proposed resolution: `select {appearance:base-select}` opts in the in-page &lt;select> element. `::picker(select) {appearance:base-select}` opts in the picker for &lt;select>. Future in-page controls will be opted in together, via `* {appearance:base}`. Future pickers will be opted in individually, via `::picker(controltype) {appearance:base}`.<br>
&lt;masonf> q+<br>
&lt;masonf> q+ to discuss my new proposed resolution text<br>
&lt;chrishtr> sanketj_: arrangement I would prefer is that until appearance:base is available for all controls then we'd have per-control opt in via the dashed syntax<br>
&lt;una> q+<br>
&lt;chrishtr> fantasai: yes it doesn't allow that for that. but if in the future something big comes up then we can reconsider it<br>
&lt;chrishtr> fantasai: webkit representatives believe we can do it in one go for in-page controls<br>
&lt;gregwhitworth> ack masonf<br>
&lt;Zakim> masonf, you wanted to discuss my new proposed resolution text<br>
&lt;chrishtr> sanketj_: would prefer text in the resolution allowing future opt-ins<br>
&lt;fantasai> I think we should take the resolutions 1-by-1<br>
&lt;gregwhitworth> ack gregwhitworth<br>
&lt;fantasai> +1 masonf<br>
&lt;gregwhitworth> ack una<br>
&lt;chrishtr> mason: propose to resolve. resolutions never preclude future reconsideration<br>
&lt;dbaron> (maybe clarify in the last sentence that opting in the picker also requires opting in the in-page control)<br>
&lt;chrishtr> una: third point does seem to still be ambiguous?<br>
&lt;masonf> Proposed resolution: `select {appearance:base-select}` opts in the in-page &lt;select> element.<br>
&lt;una> 👍<br>
&lt;chrishtr> fantasai: that's just an ambiguitity in my texxt, Mason's is clear<br>
&lt;astearns> +1<br>
&lt;gregwhitworth> Proposed Resolution: `appearance:base` will apply to the in-page parts (only) of all form controls (including `&lt;select>`), and, to avoid forwards-compat problems, must ship simultaneously on all form controls.<br>
&lt;masonf> +1<br>
&lt;fantasai> +1<br>
&lt;chrishtr> +1<br>
&lt;una> SGTM<br>
&lt;gregwhitworth> Proposed Resolution: ::picker(keyword) { appearance: base } will apply to form control pickers as an opt-in to styleable pickers of the named control type, with the control-type keyword allowing per-control-type incremental shipping of styleable pickers. To avoid forwards-compat problems, we will consider a keywordless variant only once all form controls can be opted in.<br>
&lt;fantasai> +1<br>
&lt;gregwhitworth> RESOLVED: `appearance:base` will apply to the in-page parts (only) of all form controls (including `&lt;select>`), and, to avoid forwards-compat problems, must ship simultaneously on all form controls.<br>
&lt;gregwhitworth> Proposed Resolution:` ::picker(keyword) { appearance: base }` will apply to form control pickers as an opt-in to styleable pickers of the named control type, with the control-type keyword allowing per-control-type incremental shipping of styleable pickers. To avoid forwards-compat problems, we will consider a keywordless variant only once all form controls can be opted in.<br>
&lt;masonf> +1 to the second proposed<br>
&lt;fantasai> +1<br>
&lt;chrishtr> +1<br>
&lt;zcorpan> +1<br>
&lt;una> SGTM<br>
&lt;gregwhitworth> RESOLVED: `::picker(keyword) { appearance: base }` will apply to form control pickers as an opt-in to styleable pickers of the named control type, with the control-type keyword allowing per-control-type incremental shipping of styleable pickers. To avoid forwards-compat problems, we will consider a keywordless variant only once all form controls can be opted in.<br>
&lt;masonf> Proposed resolution: If appearance: base on all in-page controls is not ready in time for &lt;select>, we may add appearance: base-select whose behavior is equivalent to appearance: base, but only applies to &lt;select> and its picker (::picker(select)), individually.<br>
&lt;masonf> (note the individually)<br>
&lt;masonf> +1<br>
&lt;fantasai> +1<br>
&lt;una> +1<br>
&lt;emilio> +1<br>
&lt;zcorpan> +1<br>
&lt;chrishtr> +1<br>
&lt;bkardell_> +1<br>
&lt;chrishtr> LINUX!<br>
&lt;gregwhitworth> RESOLVED: If appearance: base on all in-page controls is not ready in time for &lt;select>, we may add appearance: base-select whose behavior is equivalent to appearance: base, but only applies to &lt;select> and its picker (::picker(select)), individually.<br>
&lt;chrishtr> sanket_: just want to make sure that we can come back later and reconsider things in general<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10440#issuecomment-2332063450 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 5 September 2024 15:39:45 UTC