Re: [csswg-drafts] [various] Holistic review/proposal of color-modifying things (#3807)

The CSS Working Group just discussed `Holistic review/proposal of color-modifying things`, and agreed to the following:

* `RESOLVED: start a new Color Adjust draft`
* `RESOLVED: Add forced-colors MQ to MQ spec`
* `RESOLVED: Add forced-color-adjust property as an opt to into new spec`

<details><summary>The full IRC log of that discussion</summary>
&lt;dael> Topic: Holistic review/proposal of color-modifying things<br>
&lt;dael> github:<br>
&lt;dael> TabAtkins: fantasai and I have been watching with mild concern as various color modifying things have come about. Wanted to make sure they all corrdinated. Put together an issue that reviews all of it. For the most part people are doing same and that's good. Have a few suggestions that are minor<br>
&lt;dael> TabAtkins: Dark mode- The spec Rune put together based on our plan which basically matches Safari is good except long names. Hvae suggested shorter names. preferred-color-scheme we wanted to call color-scheme. That's about it for dark mode.<br>
&lt;fantasai> s/preferred/supported/<br>
&lt;dael> TabAtkins: MS high contrast prop works pretty well<br>
&lt;dael> TabAtkins: Set of system colors we support has a few with appropriate names. Outlined those in issue with additional color names if we want to give access to authors via MQ<br>
&lt;dael> TabAtkins: If doing forced color scheme and bg is light or dark should also trigger light or dark mode MQ.<br>
&lt;dael> TabAtkins: You can do things like remove shadows based on it being dark or whatnot<br>
&lt;dael> TabAtkins: Question about inverted colors, but should discuss sep<br>
&lt;dael> TabAtkins: Main thing. Suggestion of modified names<br>
&lt;dael> TabAtkins: [ issues]<br>
&lt;dino> 🎁+<br>
&lt;dael> TabAtkins: Main thing is first this suggested shortened name for dark mode and meta tag. Only shipping impl is Safari b/c they shipped before a spec. No one else has shipped. So resolution if we change names or not.<br>
&lt;dael> smfr: Reason we choose prefers; we need to make clear to authors this is user's preferred appearance for the page. Similar to preferred reduced motion MQ.<br>
&lt;dael> TabAtkins: MQ is good. It's supported-color-scheme property and meta we want to rename.<br>
&lt;fantasai> @media (prefers-color-scheme: light | dark | no-preference)<br>
&lt;fantasai> color-scheme: only? &amp;&amp; [light | dark | &lt;custom-ident>]+<br>
&lt;fantasai> &lt;meta name=color-scheme content="(same values)"> sets initial value of 'color-scheme' on the root<br>
&lt;fantasai> proposal ^<br>
&lt;dael> dino: I was going to say MQ has been in MQ spec for a long time<br>
&lt;dael> astearns: Given that, smfr is rename okay?<br>
&lt;dael> AmeliaBR: It's drop 'supported' in 'supported-color-scheme'<br>
&lt;fantasai> If we can change system colors to compute to themselves, then 'color-scheme' changes the used values of the system colors on the element. If not, 'color-scheme' on the root does so for the whole page. In either case, the affected system colors are at least the set defined for "high contrast".<br>
&lt;dael> florian: But not for MQ?<br>
&lt;fantasai> 'color-scheme' must also affect input &amp; scrollbar styling.<br>
&lt;dael> AmeliaBR: MQ keeps 'preferred'<br>
&lt;dael> smfr: Think okay<br>
&lt;fantasai> s/preferred/prefers/<br>
&lt;dael> fremy: Wondering, on the issue color-scheme is written as a singular. Is that intentional?<br>
&lt;dael> TabAtkins: Property names are always singular so we went with that.<br>
&lt;dael> fremy: Okay, sounds good. If you thought about it I'm fine<br>
&lt;dael> astearns: Other discussion on if we should have 'supports' in prop name?<br>
&lt;dael> dino: Not changing values, jsut removing prefix?<br>
&lt;dael> fantasai: We also fixed the grammar. Current allows light or dark or only keyword. Defined to parse and not throw out additional IDs.<br>
&lt;dael> TabAtkins: As far as we know this matches what you intended<br>
&lt;dael> smfr: Sounds fine<br>
&lt;fantasai> Proposal is to rename supported-color-scheme to color-scheme<br>
&lt;dael> dino: Reading in #3807 in light/dark color scheme proposal. That's what to look at?<br>
&lt;dael> TabAtkins: Yeah<br>
&lt;dael> dino: I think we're okay with that<br>
&lt;dael> smfr: Allow only to be at end?<br>
&lt;dael> TabAtkins: Either spot because it matches general CSS. only light and light only make sense<br>
&lt;dael> astearns: Other questions about change from supported-color-scheme to color-scheme ?<br>
&lt;fantasai> smfr, you can't do "light only dark"<br>
&lt;fantasai> smfr, but "only light dark" and "light dark only" are fine<br>
&lt;dael> Rossen_: Reviewing this prop it aligns closely with some internal work we did on this in terms of wordsmithing and aligning. Thanks for taking the time TabAtkins and fantasai. It aligns with how I hoped this would mash together and make sense of all the darks and lights. +1 and thank you<br>
&lt;dael> astearns: Prop: Add the color-scheme property with updated grammar to a spec instead of supported-color-scheme<br>
&lt;dael> TabAtkins: Yes. Not sure if there's an existing spec that fits. Maybe colors but I'm not sure. Either Colors or a new spec<br>
&lt;dael> AmeliaBR: THis goes into larger discussion. Debated last week where adjust for forced colors goes. Maybe in same place as new color-scheme<br>
&lt;dael> TabAtkins: Yes. High contrast stuff should be same place as light/dark. That should be either Color or a new spec<br>
&lt;dael> florian: Feels coherent enough to be a sep spec and feels it will move faster<br>
&lt;dael> fantasai: Discussion was appendix to MQ until we figure out where it goes<br>
&lt;dael> AmeliaBR: Other property these are related to is appearance. It's turning on or off default UA styles. Not sure what spec that's in<br>
&lt;dael> florian: That's CSS UI L4. It's a bit of a stretch but only a little one<br>
&lt;dael> TabAtkins: Can we make a color adjust spec?<br>
&lt;dael> fantasai: Sure<br>
&lt;fantasai> s/make/just make/<br>
&lt;dael> Rossen_: We can always have one more spec :)<br>
&lt;fantasai> s/color adjust/color-adjust/<br>
&lt;dael> astearns: Obj to start a new Color Adjust draft?<br>
&lt;dael> RESOLVED: start a new Color Adjust draft<br>
&lt;dael> astearns: Who will edit?<br>
&lt;dael> TabAtkins: fantasai and I<br>
&lt;dael> astearns: Who else<br>
&lt;dael> Rossen_: Rune and I should put time on this and put our edits<br>
&lt;dael> tantek: sgtm<br>
&lt;dael> s/tantek/Tab<br>
&lt;dael> astearns: I'm appointing Rune and Rossen as editors, TabAtkins and fantasai can provide feedback. Let's spread out editing<br>
&lt;dael> Rossen_: Resolutions for MQs?<br>
&lt;dael> astearns: Let's resolve on color scheme. Obj to Add the color-scheme property with updated grammar to Color Adjust spec instead of supported-color-scheme<br>
&lt;dael> AmeliaBR: Meta tag too?<br>
&lt;dael> astearns: Yes<br>
&lt;dael> dbaron: I think I said what I didn't like last time we discussed this.<br>
&lt;dael> florian: Don't think resolved<br>
&lt;dael> dbaron: My concern is we have a set up where all pages on web work with light form controls. Many pages break with dark. On systems where browser can choose they tend to light.<br>
&lt;dael> dbaron: This is designing around a few recent OS changes rather than say a general system them change a user has made. It's not clear to me this is impl across OS themes. It's a step forward and backward. All pages work with light, many broken in dark. this allows pages to say work with dark, but also allows broken in light and i"m not happy about that<br>
&lt;dael> dbaron: Want to have a page say I'm happy with a dark theme. Not happy about page overriding user choice<br>
&lt;dael> AmeliaBR: You okay taking this up in spec discussion? Sounds like you're concerned about the only keyword interacting with list of preferences. I'm not sure that blocks actual concept<br>
&lt;dael> dbaron: Once there's a spec it will ship. WE need to discuss before<br>
&lt;dael> fantasai: Well it shipped w/o a spec<br>
&lt;fantasai> already<br>
&lt;dael> astearns: Would concern be addressed if we did grammar such that you could not exclude supporting a light scheme?<br>
&lt;dael> dbaron: I believe so. I'm not up on semantics of current proposal.<br>
&lt;dael> TabAtkins: Ignoring future compat with other schemes. IT's saying I'm fine with light or dark or I'm only fine with light or only fine with dark. If at the moment 'only' works on light you can say I only do light or you can say I allow dark and if user wants that give it to me<br>
&lt;dael> astearns: That does seem more widely implementable<br>
&lt;dael> dbaron: I think that would help<br>
&lt;dael> dbaron: Still some edge cases where we couldn't do that<br>
&lt;dael> florian: Neither light nor dark systems?<br>
&lt;dael> dbaron: Or we don't know. We can just draw a control.<br>
&lt;dael> astearns: Another way addressing this is to have an implicit auto where there is a browser default that this prop cannot opt out of.<br>
&lt;dael> astearns: If the color scheme is set to only dark if browser only has one set of form controls it can display with those auto controls<br>
&lt;dael> AmeliaBR: THat's clear in Rune spec. It's a matter of if browser has >1 color scheme the only is asking author pref to override user. BUt it presumes >1 color scheme<br>
&lt;dael> TabAtkins: Per current processing if you only have 1 color scheme it selects that. Only filters to values unless the set would be empty<br>
&lt;dael> dbaron: Nice spec says that but reality is if 99% browsers have both the 1% will have to do something b/c otherwise pages break<br>
&lt;dael> florian: That's the situation today. If your UI is orange on pink too bad for you.<br>
&lt;dael> dbaron: I'm concerned about Linux. Most users have light form controls. Edge case will expand from set of Linux users with dark controls to all Linux users<br>
&lt;dael> TabAtkins: On pages that are only dark and break in a bad way with a light form control<br>
&lt;dael> TabAtkins: Those don't exist now so it's theoretical future pages<br>
&lt;dael> astearns: How about this. Resolve on putting color scheme in the spec with an issue noting we are concerned about backwards compat and need some way of expressing that it is okay to display things with the controls you've got<br>
&lt;dael> florian: Prefer to start with restricted grammar. Then if we relax later it's easier.<br>
&lt;dael> AmeliaBR: Restricted grammar is do not allow dark only. You can say light only or light and dark but you can't say an only that doesn't include light.<br>
&lt;dael> florian: Yes<br>
&lt;dael> fremy: I still don''s removing a possibility that's a legit use case. We are assumign this new feature that doesn't work well on an OS that can chnage. If this becomes a problem Linux can do what every other system does and fix it.<br>
&lt;dael> florian: Compat problem. It's about writing a web page that says it doesn't work on existing OSs<br>
&lt;dael> fremy: That happens all the time. You need a webcam to do a skype call. I don't like spec around limitations of one system<br>
&lt;dael> astearns: CSS is long lived. I can see a new OS that's very concerned about its controls and it will never show a dark mode.<br>
&lt;dael> Rossen_: Are we solving anything? Feels like we're rambling<br>
&lt;dael> astearns: Current suggestion is we put color-scheme in with a change to grammar such that you can only express the only keyword for the light theme<br>
&lt;dael> astearns: Heard concerns it's too restrictive. But it can relax in future<br>
&lt;dael> fremy: If you have a toggle on website that says I want dark theme you can't have dark form controls.<br>
&lt;dael> florian: You can ask for dakr, just not on OSs that can't do it<br>
&lt;dael> fremy: Doesn't work. If you have a website with a toggle and user clicks I want dark theme if the OS has a light you get light<br>
&lt;AmeliaBR> For clarification, I am not supporting the "restricted grammar". But I am very supportive of adding the property to the spec with an open issue.<br>
&lt;dael> fantasai: We're either adding this or not. Apple has shipped. Might be able to get away with not adding only, but we can debate on another day<br>
&lt;dael> fremy: So you can still do dark light for what I want<br>
&lt;dael> resolved: Add the color-scheme property and meta with updated grammar and no 'only' property  to Color Adjust spec instead of supported-color-scheme<br>
&lt;dael> fantasai: MS had what they called high contrast MQ and high contrast adjust but they said same is used for low contrast so calling it high contrast is confusing<br>
&lt;dael> fantasai: TabAtkins and I suggest calling it forced-colors<br>
&lt;dael> fantasai: MQ for forced-color-adjust. Rather than diff keywords color scheme relying on dark mode switch so only none or active in the MQ<br>
&lt;AmeliaBR> Strong +1 to the forced-colors name<br>
&lt;dael> astearns: Concerned it's too abstract. contrast-adjust might be better<br>
&lt;dael> fantasai: Not adjusting. This is fixed colors and we're forcing on you<br>
&lt;fantasai> s/fixed colors/fixed set of colors/<br>
&lt;fantasai> @media (forced-colors: none | active) {...}<br>
&lt;florian> I like forced-colors<br>
&lt;fantasai> forced-color-adjust: auto | none<br>
&lt;dael> Rossen_: Forced color desc well. Another name is user-color-scheme. That implies user choose that and only problem is too close to prefers-color-scheme. Forced-colors is fine<br>
&lt;dael> astearns: Other concerns?<br>
&lt;dael> florian: Question- earlier talked about interact with prefers-color-scheme have prefers-contrast, interact?<br>
&lt;fantasai> "The (prefers-contrast) MQ is unrelated and unchanged."<br>
&lt;dael> fantasai: prefers-contrast is same and nothing changes<br>
&lt;dael> TabAtkins: It's orthogonal which is why want to get away from work contrast<br>
&lt;dael> florian: But if forced color scheme has something dramatic you can infer prefered contrast<br>
&lt;dael> TabAtkins: Prefers contrast is different.<br>
&lt;dael> AmeliaBR: Important to keep naming clear. Have set of prefers MQs that tells author user expressed a preference. forced-colors is very different so it's important to have a very different name that emphasizes the override. Also really important that it doesn't make any assumptions about what hte colors are<br>
&lt;fantasai> TabAtkins^: prefers-contrast is about letting author adjust things to match the contrast preferences. This is about you're using this set of colors, too bad.<br>
&lt;dael> AmeliaBR: Key feature for authos is that you're not going to know what colors will be used<br>
&lt;aja> fwiw, implementers, consider support for :has along with the meta, eg :root:has(meta) {--set-some-variables-on-root}}<br>
&lt;dael> florian: Not opposed. Little confused why you can infer prefer high if it's dark but can't infer prefer light<br>
&lt;dael> fantasai: What about lime green on pink. What does that mean? Is it high or low?<br>
&lt;dael> florian: Weird contrast ^-^<br>
&lt;dael> fremy: Agree with florian . Should be in spec. UA can decide to do these things, but we shouldn't spec it. User is allowed to decide they want high contrast. You can put a note saying you can be smart. I like proposal of not forcing this but UA can do smart things<br>
&lt;dael> florian: I'm sold<br>
&lt;dael> Rossen_: Can we go back to forced-colors and not talk contrast?<br>
&lt;dael> astearns: Is high contrast prop in a spec?<br>
&lt;dael> Rossen_: Which? One we prop?<br>
&lt;dael> fantasai: One you prop. There's enough explainers we can write a spec.<br>
&lt;dael> astearns: Prop: Add a forced-colors MQ into the new draft?<br>
&lt;dael> Rossen_: Or MQ, whichever<br>
&lt;dael> fantasai: In MQ<br>
&lt;dael> TabAtkins: Forced-color MQ into MQ spec<br>
&lt;dael> astearns: Objections to adding forced-colors MQ to MQ spec<br>
&lt;dael> RESOLVED: Add forced-colors MQ to MQ spec<br>
&lt;dael> astearns: forced-color property in the new spec<br>
&lt;dael> TabAtkins: Indicates on a sub tree don't force colors I know what I'm doing.<br>
&lt;dael> Rossen_: Should go in color adjust<br>
&lt;dael> Rossen_: Fitting to be in color adjust spec<br>
&lt;dael> florian: Presumably the adjust thing on print goes with it?<br>
&lt;dael> fantasai: We should move it, yeah<br>
&lt;dael> astearns: Obj to adding forced-color-adjust property as an opt to into new spec?<br>
&lt;dael> RESOLVED: Add forced-color-adjust property as an opt to into new spec<br>
&lt;dael> AmeliaBR: In draft from Rossen_ and melanierichards lots of issues about interaction between author and UA will go. Is that into new spec?<br>
&lt;dael> TabAtkins: Yes<br>
&lt;dael> AmeliaBR: fremy had diff prop for same thing so that discussion would happen in this spec?<br>
&lt;dael> TabAtkins: Yep<br>
&lt;dael> astearns: We'll have continued discussion for this new spec, what goes in , and changes<br>
&lt;dael> fantasai: Reoslve to move print-color-adjust?<br>
&lt;dael> astearns: Obj?<br>
&lt;dael> resolved: Move print-color-adjust property into the new spec<br>
&lt;dael> astearns: I'll leave agenda+ on the new items<br>

GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at using your GitHub account

Received on Wednesday, 17 April 2019 17:01:33 UTC