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

The CSS Working Group just discussed `Styling form control pickers`.

<details><summary>The full IRC log of that discussion</summary>
&lt;emilio> jarhar: last time we talked about appearance: base and base-select and applying it to `::picker()`<br>
&lt;emilio> ... looks like both me and fantasai proposed some text we can resolve on<br>
&lt;emilio> ... I think we have some subtle differences between the proposals<br>
&lt;emilio> ... we don't want to burden the dev to force them to apply appearance: base to put appearance in two different places<br>
&lt;emilio> ... I think that's the fundamental disagreement<br>
&lt;emilio> annevk: I think it's hard to go into this with this discussion without knowing Google's longer-term vision<br>
&lt;jarhar> q?<br>
&lt;masonf> q+<br>
&lt;emilio> ... on our vision the picker and the controls are individually styleable<br>
&lt;emilio> ... but Google has mostly focused on select<br>
&lt;jarhar> q+<br>
&lt;astearns> ack masonf<br>
&lt;emilio> masonf: few things, I think we really like the idea of doing it all at once, but it sounds difficult<br>
&lt;jarhar> would putting appearance:base on ::picker() also apply to the main element work?<br>
&lt;emilio> ... I'm glad it seems ok to do appearance: base-select to carve out of that<br>
&lt;emilio> ... I think we should do the same for other controls<br>
&lt;emilio> ... one thing we've discovered with &lt;select> is that they're not independent<br>
&lt;emilio> ... it's difficult to allow customization of the in-page thing<br>
&lt;emilio> ... without accounting for the whole popup and everything<br>
&lt;emilio> ... e.g. for date pickers the most common use case is displaying something else along the date<br>
&lt;dandclark> q+<br>
&lt;emilio> annevk: that feels like a new semantic capability for that control<br>
&lt;una> q+<br>
&lt;emilio> ... we're just talking about styling the page controls as they are today<br>
&lt;emilio> masonf: our opinion is that for most things styling the picker is the main wanted feature<br>
&lt;emilio> ... e.g. if you want a flag on a `&lt;select>` option<br>
&lt;emilio> annevk: we might be seeing different feedback<br>
&lt;emilio> ... I've seen feedback where authors are just trying to get basic form styling working accross UAs and that's hard<br>
&lt;emilio> ... it has been hard for a long time, even just having full control of the box<br>
&lt;emilio> q+<br>
&lt;jarhar> q?<br>
&lt;emilio> masonf: I've heard the same feedback for stuff like checkboxes<br>
&lt;jarhar> q-<br>
&lt;emilio> ... but it's possible, people do it, they put that work<br>
&lt;ntim> `::picker(select) { appearance: base }` is pretty straightforward to write honestly, and you can already write whatever styles you want on `select`<br>
&lt;emilio> ... the things that are impossible are the things people complain about<br>
&lt;emilio> ... and are the things we should focus<br>
&lt;emilio> ... if we just did some of the work for the date picker for example then we'd have complains about not having done the work for the popup<br>
&lt;emilio> annevk: that seems it'd need additional markup which could be the opt-in<br>
&lt;emilio> ... we will continue to add new features to these controls<br>
&lt;emilio> ... to me the sooner we get the appearance: base stylesheet<br>
&lt;emilio> ... the better, then we have the infra for new markup features we can opt them into that<br>
&lt;emilio> masonf: I think that might be too optimistic, devil is in the details<br>
&lt;emilio> ... I want to have the appearance-&lt;control> fallback plan in place<br>
&lt;astearns> ack dandclark<br>
&lt;emilio> dandclark: echoing what masonf said, the feedback we get is about styling the control<br>
&lt;emilio> ... the thing that worries me is the long-term dev experience<br>
&lt;emilio> ... if we do base-{select,range,...} there's a path to make appearance: base apply to anything<br>
&lt;chrishtr> q+<br>
&lt;astearns> ack una<br>
&lt;emilio> ... if we have the different picker stylability, do we have the same long-term possibility of not having the double opt-in?<br>
&lt;emilio> una: echoing a lot of what dandclark mentioned<br>
&lt;emilio> ... one thing that hasn't been brought up is how intrincate the picker and the buttons are<br>
&lt;emilio> ... splitting that opens a can of worms for a lot of the controls<br>
&lt;masonf> Anne: british airways uses native &lt;select> and therefore *can't* style the popup<br>
&lt;emilio> ... even for annevk's example, they don't do it because they can't<br>
&lt;annevk> q+ To say that discoverability as to whether appearance:base applies to a picker would also be lost if it's not toggled separately.<br>
&lt;emilio> ... I think that's a testament of why they need to be tied together<br>
&lt;emilio> ... the more that we dig into it the most nuances we find<br>
&lt;emilio> ... the pickers are very tied to their controls<br>
&lt;ntim> I think people tie the pickers more to modals rather than their in-page controls when it comes to writing design systems<br>
&lt;astearns> ack dbaron<br>
&lt;emilio> dbaron: there was something annevk said about the complaints developer have being things about simple styling<br>
&lt;emilio> ... I think one of the things that happens when you focus on the complaints that people have is you focus on things that people could /almost/ do<br>
&lt;emilio> ... there's another way to look at it<br>
&lt;emilio> ... why are authors building their own widgets rather than using the native?<br>
&lt;masonf> Great viewpoint. Developers build their own: selects, date pickers, color pickers, etc...<br>
&lt;emilio> ... I think that's an important q because using the built-in has a lot of advantages<br>
&lt;emilio> ... and when you ask that you get to different conclusions<br>
&lt;chrishtr> q?<br>
&lt;astearns> zakim, close queue<br>
&lt;Zakim> ok, astearns, the speaker queue is closed<br>
&lt;emilio> ... hard for me to say what the Google strategy is, but I think there's a lot of thinking about figuring out what to do about these users and making them possible<br>
&lt;emilio> ... and I think that explains some of the different conclusions about why tying them together is important<br>
&lt;emilio> ... that might involve other semantic changes, like what masonf mentioned about date pickers<br>
&lt;astearns> ack emilio<br>
&lt;dbaron> ScribeNick: dbaron<br>
&lt;jarhar> q?<br>
&lt;dbaron> emilio: I think I also added myself to the q to react about styling in-page buttons being difficult.<br>
&lt;dbaron> emilio: I think that's true of many controls, such as range.<br>
&lt;dbaron> emilio: but others are fairly consistent<br>
&lt;dbaron> emilio: and to be honest the ones I'm aware are difficult to style are the ones that don't have pickers, like range and slider and progress etc.<br>
&lt;dbaron> emilio: people want to do cool stuff with them<br>
&lt;dbaron> emilio: I think I'm with una that splitting customizability, esp. if we allow pages to use appearnce:base only on the picker, that seems like a can of worms we don't want to get into.<br>
&lt;dbaron> ScribeNick: emilio<br>
&lt;astearns> ack chrishtr<br>
&lt;emilio> chrishtr: I'd like to focus on the points of agreement<br>
&lt;emilio> ... looking at the latest comments<br>
&lt;ntim> emilio: I brought this up last time, but using the native picker can be a design choice<br>
&lt;emilio> ... fantasai rephrased everything to three bullet points<br>
&lt;emilio> ntim: that's the opposite of what I meant tho<br>
&lt;emilio> ... the main disagreement is about whether the select keyword would apply to both or just the select<br>
&lt;emilio> ... I wonder if we can resolve on what fantasai commented on the issue, then discuss about having a single or two opt-ins<br>
&lt;emilio> annevk: I think you can get it in one line :)<br>
&lt;dbaron> fantasai's comment was https://github.com/w3c/csswg-drafts/issues/10440#issuecomment-2303554166 (I assume)<br>
&lt;ntim> This is the opt-in in how we ideally see things: `::picker(select) { appearance: base }`<br>
&lt;ntim> or `select, ::picker(select) { appearance: base }` if you the base stylesheet on the select<br>
&lt;emilio> annevk: I still don't have a satisfactory answer on how to make appearance: base apply to everything without tackling all pickers<br>
&lt;emilio> ... like color<br>
&lt;emilio> ... I like the focus on the individual controls<br>
&lt;emilio> ... but it misses looking at the whole<br>
&lt;emilio> ... which is what leads to this clash<br>
&lt;una> q+<br>
&lt;emilio> ... for the color thing you need to know "is there a picker", opt in the picker, did the UA decide to honor my request for custom picker<br>
&lt;Zakim> annevk, you wanted to say that discoverability as to whether appearance:base applies to a picker would also be lost if it's not toggled separately.<br>
&lt;emilio> ... so appearance base would end up computing to auto on the picker for e.g. color inputs on a watch<br>
&lt;ntim> Then in the future once all the pickers are styleable, people can just use `::picker`, along `dialog` and whatever modal-like things exist<br>
&lt;emilio> astearns: any reservations on fantasai's comments<br>
&lt;emilio> emilio: I think the second point is the concern una and myself were talking about, which would allow a base-appearance picker without a base-appearance control<br>
&lt;emilio> una: I think we don't want to block &lt;select> on figuring out the color picker for example<br>
&lt;emilio> chrishtr: it's not blocking, we would just not support the ::picker(color) syntax<br>
&lt;emilio> emilio: not sure we want the ::picker() { appearance: base } unconditionally<br>
&lt;emilio> astearns: let's bring this back to the issue and try to get consensus there<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-2305134763 using your GitHub account


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

Received on Thursday, 22 August 2024 16:05:46 UTC