- From: Dael Jackson <daelcss@gmail.com>
- Date: Thu, 23 May 2024 19:37:06 -0400
- To: www-style@w3.org
- Cc: public-open-ui@w3.org, pastithas@google.com
========================================= These are the official CSSWG minutes. Unless you're correcting the minutes, Please respond by starting a new thread with an appropriate subject line. ========================================= OpenUI-WHATWG/HTML-CSSWG meeting ================================ CSS UI- appearance: base to enable interoperable styling of controls/components (Issue #5998) ------------------------------------------------------------ - The group resumed the conversation to reach a decision as to if the best approach to styling of controls/components is opting in via a CSS property - Anne shared a presentation outlining webkit's vision for appearance:base ( https://annevankesteren.nl/temp/stylable-form-controls.pdf ) to ground the group in a common purpose and language. - The biggest concern with the presentation was the approach to pickers - Pickers were presented as being specced later than other elements and some folks thought it needed to be tackled earlier. - The feature rollout for pickers was discussed and it was clarified that the proposal intended a pseudo element to allow detection. - A separate issue will be opened to address pickers so this discussion can continue. - There was discussion around the difference in implementation between appearance:none and appearance:base to avoid some compat problems. - Achieving the full vision may require HTML work, but there was agreement that the opt-in should be in CSS. - RESOLVED: Use css to opt into styleable mode ===== FULL MEETING MINUTES ====== Agenda: https://lists.w3.org/Archives/Public/www-style/2024May/0018.html Present: David Baron Tantek Çelik Keith Cirkel Daniel Clark Brecht De Ruyte Chris Harrelson Robert Flack Mason Freed Aditya Keerthi Travis Leithead Tim Nguyen Olli Pettay Simon Pieters Alan Stearns Miriam Suzanne Anne van Kesteren Luke Warlow Scribe: chrishtr OpenUI-WHATWG/HTML-CSSWG meeting ++++++++++++++++++++++++++++++++ CSS UI ====== appearance: base to enable interoperable styling of controls/components ----------------------------------------------------------------------- github: https://github.com/w3c/csswg-drafts/issues/5998 masonf: Joey is doing most of the work on these issues, but is out today so I'm covering masonf: There are a number of questions for the styleable form controls area, but 5998 will help to make concrete progress on a key question about opt-in masonf: this is about opting in via a CSS property masonf: there are various other ways to opt in that were proposed on the issue, and I'd like to get a resolution that the css property is the way forward masonf: We could as subsequent resolutions agree on the names of the property and values, but using a css property is the key next step <dbaron> Joey's slides 2 weeks ago were https://lists.w3.org/Archives/Public/www-archive/2024May/att-0000/appearance_base_select.pdf astearns: Should we go to the presentation now for Anne? annevk: Need about 10 minutes for the presentation chrishtr: annevk does this make sense as a goal? annevk: oh yes; the presentation talks about the long-term vision, and styling is a part annevk: Styling opt-in via css makes sense fantasai: Deck is about general concepts, best to get started <astearns> https://annevankesteren.nl/temp/stylable-form-controls.pdf annevk: We've been discussing styleable form controls within the webkit team annevk: Want to lay out a long-term vision for all controls, not just select annevk: Gives direction for what we want for web developers in this area annevk: Motivation: markup for form controls is haphazard, want to be uniform and consistent annevk: also want to hear from others what they think annevk: Terminology: in page controls are part of the layout tree, and then there is the picker which is overlaid on the page for some controls. smaug: Pickers in an OS window or different process, or in-page? annevk: Depends on the situation annevk: There is a "base" style sheet annevk: style sheet will be wireframe-like, meets a11y and i18n criteria, supports dark mode annevk: It's a starting point from which developers can add enhancements annevk: needs various pseudo elements and opt-in annevk: Opt-in would be appearance: base, which also opts into the base style sheet annevk: for styling pickers we were thinking that these need pseudo elements for overlay boxes annevk: Maybe these styles are available for appearance:none mode as well as appearance:base annevk: might introduce inline control theming first and then add styling for pickers later annevk: Think we might be able to do all of the in-page controls in a timeframe of 1-2 years annevk: including base style sheets annevk: After that would be pickers, but might not be able to do them all at once or quickly annevk: Would be great to hear more long term visions from others; alignment and agreement will ensure good web developer and user experience annevk: Don't mean to impede or slow down the progress made on select annevk: We can do both the short term work already done for select as well as define a pattern for other controls astearns: Point of order, would like these presentations to be in the issues before the meeting rather than presented live without opportunity for prior feedback and discussion masonf: +1 to that point masonf: Thanks for the presentation, the deck looks mostly aligned with what my team was thinking masonf: One possible departure is pickers masonf: One important design consideration we think is important is being able to put arbitrary content in pickers if they are not part of the page masonf: The in-page part of the select is styleable (but only allows text content, which is a restriction) masonf: the picker is the main area that is not styleable masonf: Not sure the priority is in the right order therefore, since the deck proposes doing in-page first and then pickers fantasai: Want to provide some more context about what webkit is proposing fantasai: Incremental rollout is important, that is a consideration. fantasai: Talked with Tim and Jen about all this and there were some concerns about DX of per-control values fantasai: want the end state to be easy to use fantasai: want things to be consistent, so that might meaning shipping stuff in a batch fantasai: For pickers it might be hard but think we can do all of the form controls at once for in-page parts. This is part of why the proposal for 2-phase fantasai: Agree that the picker being styleable earlier for select since that's a strong need for developers; and also it's a lot easier to do because the parts all have representation in the DOM fantasai: ::picker pseudo element suggestion is not enough to style all pickers and there'd need to be pseudo elements for the important parts of them also, ::picker is just meant to represent the overlay box itself florian: I like the direction this is going in, was previously nervous about base-* florian: seemed like a design smell to enumerate all form controls as values florian: we ended up having some special values in the existing appearance property due to compat florian: Perhaps we do need a few special cases to get there, and we could do that if needed for specific controls that are hard to evolve without compat problems florian: There is a desire for more flexible content to put into controls florian: Want to talk more about the ability to opt into more flexible content rendering as triggered by a css property florian: could work, but want to learn more about it florian: If pickers need to be done not all at once can we do it with one value? <fantasai> Slides: https://lists.w3.org/Archives/Public/www-archive/2024May/att-0004/stylable-form-controls.pdf <emilio> Why not different pseudo-elements like ::select-picker and so on? <fantasai> emilio, 2 reasons - 1 have a common prefix to represent the set, and 2 - want to have the ability to style them all (eventually) <emilio> fantasai, doesn't that introduce the same compatibility issue you're trying to avoid? (where we add a new picker in the future that now get weird styling the author didn't expect?) <fantasai> emilio, ::picker(*)? Yes, which is why we wouldn't introduce it now and take it under consideration for later. <TabAtkins> Ah, I didn't get that ::picker(ident) was a specialization there, okay. <zcorpan> Would @supports(::picker(select)) work? <fantasai> zcorpan, @supports(selector(:::picker(select))) should work, yes <Luke> Does * or ::picker(*) match any of the pickers? I would assume no? <fantasai> Luke, not currently, no but we may get there if we can make them enough of them styleable that adding that later wouldn't cause compat problems annevk: Replying to feature detection for pickers, idea was to have multiple values, but they would be part of the pseudo-element name, not the value of a css property annevk: If your platform or browser doesn't support it yet then the pseudo element would not be present annevk: for example, ::picker(file) might not exist ntim: `::picker(select)` would be exist along with all the HTML parser changes / <selectedoption> Chrome has worked on, but in our vision, what opts in rendering the picker customization would be `::picker(select) { appearance: base/none }` (not `select { appearance: base-select }` dbaron: When you were talking about the in-page then pickers plan, one point I'd like to raise is that the demand for customizing pickers depends on the form control dbaron: For example, developers don't seem to really want to customize a color picker right now, but they do really want to customize date pickers dbaron: they also want to customize content for date pickers, e.g. by supplying pricing associated with dates annevk: This might involve new html elements, is that what you're saying? dbaron: Not sure, but maybe dbaron: If we work on pickers and then need to change in-page aspects, then would we need a second phase of opt-in and lose the opportunity to upgrade? annevk: Don't think so because the changes would be semantic/HTML, and so should be allowed to extend existing built-in modes and not just the styleable mode annevk: There will need to be a base style sheet and then for each additional feature there might be additions to style sheets accordingly <ntim> dbaron- Our vision allows for tackling pickers first (through `::picker(datetime) { appearance: none/base }`) flackr: Interesting that you brought up non-in-page pickers flackr: Would that mean allowing custom content in non-in-page pickers? flackr: For select we're pursuing in-page pickers to make them customizable with content, but appearance: auto and date pickers are in another window annevk: In styleable mode the picker would be part of the layout tree chrishtr: In other words, in styleable mode everything would be part of the document layout tree; the distinction in the deck Anne presented is just about project ordering and features, not about rendering model emilio: Do you envision appearance: base for buttons being different than appearance: none? how much change to style sheet? fantasai: For simple controls the difference from existing style sheets would be minimal. For radio buttons it'd likely be more substantial because currently they disappear in 'appearance: none' emilio: Difference between appearance:none and base not particularly important, we can just agree on styles that are shared in most cases? fantasai: appearance:base should be wireframe, doesn't need a reset style sheet, meets basic requirements, but not at all opinionated fantasai: appearance:none has compat problems, hence appearance: base changing styles emilio: Aware of Google's implementation approach which seems sensible, would the changes envisioned by webkit work with that? annevk: Joey's approach should work for anything? masonf: Yes but devil may be in the details emilio: Could result in overly complicated browser engines if there are a lot of or complicated styles in appearance:base mode brecht_dr: Idea of the picker that raised confusion for me was that in open ui we played around with elements targeted with css brecht_dr: Will we be able to do this in general, and allow no-datalist markup? brecht_dr: The proposal seems compatible with this, is that right? annevk: Seems so, but new pseudo elements also needed sometimes? or maybe optgroup etc can be targeted directly annevk: Base style sheet also works with existing controls, so should be able to target anatomy of the existing controls fantasai: We'd probably want a pseudo element for the drop-down arrow fantasai: Should be consistent with the datalist model, shouldn't need to care whether developer provided that element or not brecht_dr: If there if flexibility in the system then perhaps picker and in-page should be released at the same time for a control to make things simpler for developers? fantasai: appearance:base for all things can be done, but also bringing up the picker for select because it's important and further along, and also because the components of the picker are already in the DOM -- we don't have to figure out the internal structure of the picker with pseudos or something, it's right there in the page fantasai: If we use ::picker(select) { appearance: none; } to opt into styling select, then we don't need to introduce 'appearance: base' to enable styling the picker Luke: Some things said resonate. Won't solve every problem with CSS, need HTML changes also Luke: Makes sense to do in-page first generally, and in particular because there are lots of controls without significant pickers Luke: lots of customizing for date pickers is new behavior, not just CSS Luke: Base styles is a good start rather than the finish Luke: Like the idea of the ::picker pseudo selector/element, solves some future compat problems Luke: Considering buttons, there are differences today among browsers and platforms, matching in appearance:base mode would be great Luke: Wondering again how much can be in CSS masonf: Question: my understanding from the presentation is that with ::picker there'd be a standardized shadow dom masonf: also heard there would be arbitrary content, could you clarify? astearns: Let's discuss picker questions in a new issue masonf: Sounds good <fantasai> mfreed, we don't have a specific plan for the various pickers, we just want to use ::picker() as a way to opt into styling them one at a style masonf: Proposal is to avoid having separate values for appearance because that's not ideal, and then boil the ocean and would be hard to do all at once astearns: What I heard is let's boil as much as the ocean as we can but being reasonable. e.g. maybe we can special case a few situations like select fantasai: Not trying to boil the ocean, just trying to boil the minimum amount of ocean necessary to give developers a good experience annevk: Not saying we should extend all form controls in as fancy a way as select needs, just that we'd achieve the basic styleability of existing controls masonf: Think this might end up more complex than anticipated, because we might need a new element for even simple cases when we realize it should be possible fantasai: Still need to style existing elements <fantasai> If we're concerned about select specifically, the issue is styling the picker, so we would use `::picker(select) { appearance: none; }` <masonf> The concern is that people do *{appearance:base} and then it breaks later when a browser starts supporting it. <zcorpan> What I wanted to say: (1) if priorities suggest doing in-page pickers for only some of the controls, we can have `base` and `base-foo` (for all controls when implemented) so authors can feature-check with @supports but also can use `base` for any control. (2) Does appearance: base turn off button layout magic or no? zcorpan: Should we use appearance: base as a trigger to turn off button layout emilio: Didn't Ian have a plan to do that w/o new CSS? chrishtr: Yes <zcorpan> light-dark()-like seems OK florian: Should we do it in CSS? Yes. Need more discussion about details <masonf> +1 RESOLVED: Use css to opt into styleable mode astearns: I would like to have a separate issue for ::picker() <ntim> I think `::picker(select) { appearance: none }` would allow Chrome to ship select first, without introducing a new `appearance: base-select` value or trying to tackle the whole of `appearance: base` first <tantek> I tried different 'appearance' values for different clusters of controls as well as specific controls, literally in the earliest versions of the appearance property. This does not work for various reasons. Unfortunately most of that experience (though documented in www-style / w3c-css-wg / various CSS UI drafts) is 20+ years old <tantek> here you go, wow literally 20 years ago merely days ago: https://www.w3.org/TR/2004/CR-css3-ui-20040511/#system
Received on Thursday, 23 May 2024 23:37:39 UTC